Engineering

Lessons Learned in 2025

Sharing lessons learned as a Senior Software Developer.

Engineering lessons visual showing a path of decisions, feedback loops, and accumulated judgment.

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.

Questions this article answers

Frequently asked questions

What themes shaped the lessons from 2025?

The same few ideas kept showing up: small habits compound, communication changes careers, good teams raise your standards, and writing things down saves people from relearning the same lesson. The examples come from engineering, but most of the advice is about judgment and how you carry yourself.

Which habits carried the most weight?

Writing tests, documenting decisions, reading other people's code, and reflecting on the week all pay off slowly. That's why they're easy to skip. Nothing dramatic happens when you miss one week, but the difference is obvious after a year.

How should these lessons change next year?

They should get more specific. Keep the lessons that still show up in real work, drop the ones that only sound good, and add examples from new mistakes. A living notebook is useful because it can admit when an old rule stopped working.

Collin Wilkins
Collin Wilkins
Lead Engineer · AI & Automation
Lead Software Engineer at Morningstar with 12 years across Ford and enterprise software. I write about what actually works when engineering teams adopt AI — and what breaks when they don't set up the context layer first.

Notes from production.

Every other week: working playbooks on AI coding tools, convention files, and automation architecture.

No spam. Unsubscribe anytime.