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.
Continue reading: These lessons became the foundation. See what changed in Lessons Learned in 2026 — where AI became a daily coworker, the generalist advantage grew, and the old career playbooks started showing cracks.
Get posts like this in your inbox
Bi-weekly emails on automation, AI, and building systems that run without you. No fluff.
No spam. Unsubscribe anytime.
Related Articles
Lessons Learned in 2026
February 15, 2026
A generalist's field notes from 2026. AI changed the game, execution still wins, and the engineers who connect dots nobody else sees are the ones getting ahead.
AI Code Review: Approaches, Trends, and Best Practices
February 27, 2026
AI is writing more code. Here's how to review it faster — local agent patterns, CI/CD integration, and the vendor landscape including Greptile, CodeRabbit, and GitHub Copilot.
Context Engineering for AI Coding Tools: Why Your Codebase Structure Matters More Than Your Prompts
February 19, 2026
Most developers over-invest in prompt engineering and ignore context. Here's the four-layer framework that makes every AI coding session better.
Wrestling with a technical challenge?
I help companies automate complex workflows, integrate AI into their stacks, and build scalable cloud architectures.