← Back to Articles

Lessons Learned in 2025

December 31, 2025
Lessons Learned Software Engineering Mindset

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.

Wrestling with a technical challenge?

I help companies automate complex workflows, integrate AI into their stacks, and build scalable cloud architectures.