With a heavy but grateful heart, I share that this will be my final semester teaching at Universidade Potiguar (UnP). It’s a decision I made with care, reflection, and excitement for what lies ahead.
Porto Alegre was calling
Since the start of my journey as a developer, I’ve always been driven by technical challenges. That drive took me into communities, languages, and projects beyond the ordinary. And it was that same curiosity that made me fall in love with the tech scene at PUC-RS in Porto Alegre.
Visiting the city and seeing companies solving global problems with diverse, technically mature teams sparked something in me. I couldn’t ignore it. It was time to step out of my comfort zone and dive into something new.
A heartfelt goodbye
Across many semesters, I learned from my students, exchanged ideas with fellow professors, and worked to make the classroom a space that was practical, critical, and inspiring. Each group taught me something — patience, improvisation, creativity, resilience.
I’m deeply thankful to UnP for trusting me with this opportunity, to Gedson Nunes for his continued support, and to all the teachers I had the pleasure to collaborate with. And to the students: thank you. For your questions, your presence, your last-minute Calculus exam excuses, and most importantly, your honesty and energy.
The road ahead
I’m not leaving education behind. I carry all this learning into my next chapter — where I hope to continue sharing knowledge, just in new formats and different spaces.
Maybe we’ll cross paths again at events, in a community, or in another classroom.
Thank you. Truly. See you soon.
Series Conclusion
This concludes our comprehensive 19-part journey through Software Engineering fundamentals. From foundational principles to advanced practices, and from technical skills to the human aspects of teaching and learning, we’ve covered:
- Why Software Engineering? - Understanding the purpose and scope
- Taming Complexity with Process - Managing software complexity
- The Waterfall Model - Traditional sequential approach
- Evolutionary Models - Iterative development approaches
- The Agile Mindset - Embracing change and collaboration
- Scrum and Productivity - Framework for team productivity
- The Scrum Cycle - Sprint-based development rhythm
- XP: Quality and Courage - Extreme Programming values
- XP: Principles and Practices - Core XP methodologies
- Applying XP in Practice - Real-world XP implementation
- Domain-Driven Design - Modeling complex business domains
- Requirements and Validation Through Tests - Testing as specification
- Software Testing - Comprehensive testing strategies
- Test-Driven Development - Tests-first approach
- Unit Testing with JUnit - Practical unit testing
- Advanced TDD: Thinking in Tests - Mature TDD practices
- Version Control: Essential Foundation - Don’t code without it
- The Classroom as a Learning Ground - Reflections on teaching and learning
- Closing a Chapter: Gratitude and New Paths - The journey continues (Final)
This series represents more than technical content—it’s a journey through the evolution of software engineering thinking, from rigid processes to adaptive methodologies, from individual coding to collaborative engineering, and ultimately to the recognition that great software engineering combines technical excellence with human wisdom.
The classroom taught me that software engineering is fundamentally about people: understanding their needs, working together effectively, and building systems that truly serve. Whether you’re starting your journey or reflecting on years of experience, remember that our field uniquely blends analytical thinking with creative problem-solving, systematic approaches with adaptive learning.
As this teaching chapter closes, the learning continues. The principles, practices, and human insights from these lectures will influence the next phase of my journey, carrying forward the commitment to quality, collaboration, and continuous growth that defines our profession.
Keep learning, keep teaching, and keep building software that makes a difference.
This post is Part 19 of 19 in the series “Lectures on Software Engineering”
Previous: The Classroom as a Learning Ground: Reflections from a Semester (Part 18)