Lessons Learned in 2025
Dear reader,
What you’re about to read is a living document—updated each Friday (or whenever the week teaches something worth passing on). I began this habit years ago while managing a team of Commercial Credit Analysts. Every week, I’d slow down to ask: What truly mattered? What did we learn that we shouldn’t forget?
The team found clarity in those reflections. They helped people zoom out, understand the bigger patterns behind the work, and learn from examples they hadn’t personally experienced.
When I transitioned into software, that ritual came with me. The topics simply evolved. Now the lessons come from building products, leading engineers, navigating incidents, balancing speed with stability, and stepping through the complicated space where tech, people, and business meet.
Think of this as a mentor’s notebook—shared openly. If something here helps you grow a little faster or avoid a mistake you didn’t need to make, then it’s already done its job.
1. “Everything compounds.”
In software, compounding shows up as:
- Code quality compounds into velocity (good early decisions reduce future drag).
- Writing tests compounds into reliability.
- Documenting decisions compounds into onboarding speed.
- Attending meetups or reading one RFC creates opportunities years later.
Engineering translation:
Small habits → huge leverage over time (refactoring, reading PRs, learning frameworks incrementally).
2. “Bet on yourself.”
In software careers:
- Learn new frameworks before you need them.
- Build side projects.
- Try for roles slightly above your current level.
Translation:
Your career accelerates when you treat yourself like a startup.
3. “A career prevents you from going broke.”
Tech careers especially:
- High income stability.
- Transferable skills.
- Always in demand.
Translation:
Even average software engineers have strong job security. Use this stability to take smart risks (startups, contracting, specialization).
4. “Communication puts you on top.”
Engineering isn’t just writing code:
- Clear PR descriptions
- Good RFCs
- Ability to explain trade-offs
Translation:
Senior engineers are mostly communicators, not coders.
5. “Life starts once you’re out of survival mode.”
Same with engineering:
- You only become creative once you aren’t fighting fires.
- Tech debt, bad process, unclear product direction keep teams in survival mode.
Translation:
Great engineering cultures eliminate chaos so teams can innovate.
5. “Life starts once you’re out of survival mode.”
Same with engineering:
- You only become creative once you aren’t fighting fires.
- Tech debt, bad process, unclear product direction keep teams in survival mode.
Translation:
Great engineering cultures eliminate chaos so teams can innovate.
6. “Never allow yourself to only talk about work.”
Creativity in software depends on cross-pollination:
- UX inspiration from travel
- Domain modeling from hobbies
- Product ideas from life experiences
Translation:
Broader interests → better engineering creativity.
7. “The people you associate with shape you.”
On engineering teams:
- High-performing teammates pull you up.
- Complacent environments flatten your growth.
Translation:
Choose teams with high standards---the environment is more powerful than motivation.
8. “You can tell seriousness from the questions they ask.”
Great engineers ask:
- “Why are we doing this?”
- “What’s the constraint?”
- “What’s the SLA?”
Mediocre engineers ask:
- “What’s the exact line of code?”
Translation:
Good judgement shows through questions.
9. “Learn social skills, marketing, sales.”
Critical in engineering:
- Selling your design proposal
- Promoting a new internal tool
- Getting buy-in for refactoring
Translation:
Influence is a differentiator for senior & staff engineers.
10. “Save life-changing material.”
In software:
- Save engineering blogs, architecture diagrams, PRs you learned from.
- Build your own internal knowledge library.
Translation:
Personal documentation = accelerated growth.
11. “How you approach small problems becomes how you approach big ones.”
In engineering:
- Sloppy quick fixes become systemic failures.
- Clean code on small modules → scalable codebases.
Translation:
Micro craftsmanship → macro architecture.
12. ”20s are about balancing multiple things.”
In software:
- Coding
- DevOps
- Architecture
- Product thinking
- Leadership
Translation:
Full-stack thinking early diversifies your leverage later.
13. “Learning never stops.”
Software evolves nonstop:
- AI agents
- Serverless frameworks
- New cloud primitives
Translation:
Perpetual learners dominate tech.
14. “Luck can be engineered.”
Software example:
- Contribute to open source
- Post on GitHub
- Write on LinkedIn
Translation:
Visibility creates opportunities.
15. “Connections matter.”
In tech:
- Referrals are 10x more powerful than resumes.
- People hire people they’ve seen ship.
Translation:
Build relationships with engineers you admire.
16. “Learn to ask questions.”
In engineering:
- Problem understanding beats code writing.
- Good questions prevent months of rework.
Translation:
Quality questions > quantity of output.
17. “Writing things down changes your life.”
In tech:
- Write design docs
- Write hypotheses
- Write decision logs
Translation:
Writing = thinking.
18. “Learn how to sell yourself.”
Think:
- Portfolio
- GitHub highlights
- Resume storytelling
- Talking about outcomes
Translation:
Engineers with strong personal narratives advance faster.
Related Articles
AI Model Selection: Choosing the Right Model and Application Pattern
February 3, 2026
Not all tasks need the most powerful AI model. Learn how to match model intelligence to task complexity and stop overpaying for sledgehammers when you need scalpels.
Enterprise Best Practices for AI-Assisted Software Engineering Teams
February 1, 2026
AI tooling can speed up enterprise engineering teams, but only with the right guardrails. A practical guide to prompting, context management, governance, and parallelization across Claude, Copilot, and CLI tools.
Modern Design Patterns: Beyond the Bookmarks
January 24, 2026
Classic design patterns still solve modern problems, but only if you use them to fix real friction. Here is how I use them to build maintainable systems without the architecture astronaut fluff.
Wrestling with a technical challenge?
I help companies automate complex workflows, integrate AI into their stacks, and build scalable cloud architectures.