In this episode of Java Maple Leafs, I had the privilege of speaking with Gerald — a senior software engineer with more than two decades of experience and a unique perspective shaped by multiple languages, architectures, and industries.
Here are the key highlights from our conversation.
1. A Career Rooted in Fundamentals and Curiosity
Gerald began his journey in Computer Engineering at the University of Waterloo, ON, Canada, in 1996, later completing a master’s in software engineering. His early co-op roles at Texas Instruments and Microsoft exposed him to professional software long before graduation.
Reflecting on his formative years, he recalls trying to understand “what I’m going to do with myself in this world… in the software world”.
2. Polyglot Thinking: Different Languages, Different Mindsets
Gerald has worked with Java, Python, .NET, JavaScript and more — each helping him think differently about problem-solving.He noted that in Python “there should be one obvious way to do a problem… Java it’s a little different”.
These experiences shaped his adaptable approach to software design.
3. The Shift From Long Releases to Continuous Delivery
When Gerald joined his current company over a decade ago, development cycles were three to three-and-a-half months long, followed by weeks of manual regression testing (00:10:24–00:10:44).
Today, many services deploy every two weeks:
“We are basically delivering… every two weeks… predictable and consistent.”
This shift brought teams closer to customers and required new discipline around feedback, ownership, and burnout prevention.
4. From Monoliths to Microservices
Gerald has seen the architectural landscape evolve dramatically.
The old model:
- One large monolithic system
- Single deployable artifact
- Slow, heavy release cycles
The new model:
- Smaller independent microservices
- Team-level ownership
- Faster, safer deployments
As he explained, “everything is kind of decomposed down into smaller problems… and that becomes easier to deploy every two weeks”.
5. The Fundamentals Still Matter
Despite decades of new frameworks and tools, Gerald stresses the timeless importance of foundational engineering skills:
- Data structures
- Algorithms
- Performance thinking
- System architecture
These, he said, are like physical core strength:“Your core is what enables you to do most of what you do… the same way for engineering fundamentals.”.
6. Soft Skills: Humility, Ownership, Asking Better Questions
Gerald emphasized that technical skills aren’t enough. Engineers grow through:
- Curiosity
- Humility
- Openness to feedback
- Taking initiative
- Peer-to-peer learning
He shared that junior engineers often know things he doesn’t — and that’s a strength, not a threat
7. Staying Up to Date Through People and Practice
To keep learning, Gerald relies on:
- Conversations with teammates
- Book clubs
- Following system design content
- Company hackathons
- Side projects that “scratch your own itch”
He admits: you can’t learn everything — you pick based on context.
8. The Future: AI Will Change How Engineers Work
“You will not be replaced by AI. You will be replaced by someone who knows how to use AI better than you do.”
Gerald believes AI will drastically reshape engineering roles:
- More AI-generated code
- More human-led code review
- Stronger architecture + orchestration skills
- Better translation of requirements for LLMs
He also raised a profound concern:
“How do you review code if you don’t write code yourself?”
This is a challenge the entire industry will need to solve.
A Thoughtful, Future-Focused Conversation
Gerald’s career reflects adaptability, curiosity, and continuous learning — values every engineer needs as technology evolves faster than ever. We ended the conversation agreeing to revisit these predictions in a year or two to see what came true.
If you want a grounded, seasoned view of modern software engineering, this episode is worth your time.

