I've been teaching since 2019.
It started as an evening commitment at the TecNM campus where I studied. It has become one of the things I most respect about my own work — and probably the part that has made me a better engineer.
What I teach
Advanced programming at the undergraduate level in Computer Systems Engineering at TecNM Campus Nuevo Laredo. The courses cover the territory where students transition from "learning syntax" to "designing systems":
- Architecture patterns and trade-offs
- Data structures and algorithmic thinking applied to real problems
- Software engineering practices: version control, code review, testing as a habit
- Reading and writing code that other humans will inherit
Mentorship
Beyond the classroom, I advise students on their professional residency projects — the capstone where they build something real for a partner organization. This is where students first encounter the full lifecycle: requirements ambiguity, stakeholder management, scope creep, and the unique satisfaction of seeing their code used by people who aren't grading it.
I keep my office door open (literally and over Slack) for graduates and students who want a second pair of eyes on a problem — career decisions, technical reviews, post-mortems on first jobs.
Why I keep doing it
Teaching forces me to be honest. You can write code that works without fully understanding why. You cannot teach code that works without explaining why. Every semester I rediscover gaps in my own understanding because a student asked the question I never had to answer.
It also reminds me that the most important thing I can pass on isn't a technique — it's a posture toward the craft. Be careful. Be curious. Be the kind of engineer the next person inherits work from with relief, not dread.