Asher Cohen
Back to posts

Senior Software Engineer Track: Insights and Suggestions

Guidance on progressing toward a senior software engineer role, emphasizing meaningful experience, problem-solving, and critical thinking.

Becoming a senior software engineer is more than just counting the years—it’s a journey of accumulating meaningful experience and wisdom.

"How many years does it take to be a senior engineer?"

The answer isn’t a straightforward number; it’s about the quality of experience gained.

Rethinking the Metric of Years:
Years alone are a flawed metric. A person with one year of experience repeated ten times isn’t on the path to seniority. Conversely, in the right environment, an engineer can compress a decade of experience into a single year. Unfortunately, the former is more common than the latter.

Measuring Experience:
Experience reveals itself in problem-solving approaches and the questions we ask. Seasoned engineers pose unique questions that efficiently prune the decision tree in their minds.

This process might be perplexing to those around them and may even make them appear less knowledgeable, but it’s a distinctive sign of experience.

Another indicator is the shift from abstract to concrete language.

Instead of discussing lofty design principles, experienced engineers share stories of personal trials and triumphs. Do they quote books and articles, or do they draw from direct experience? The best professionals complement their experience with research, embracing the Skin in the Game approach—follow your experience but validate it and look for patterns.

Addy Osmani, Software Engineer at Google, emphasizes that software engineering transcends mere coding. It is fundamentally about problem-solving and critical thinking: understanding problems, conceptualizing solutions using decomposition, pattern recognition, and abstraction, and applying critical thinking during design, implementation, and testing.

Suggestions for Aspiring Senior Engineers:

  1. Diversify Your Experience:

    • Work in different companies or teams to understand the nuances beyond general principles.
  2. Commit to a Single Codebase:

    • Spend a substantial amount of time on one codebase. It’s the difference between mere programming and true software engineering.
  3. Embrace Real Stakes:

    • Engage in projects where the outcome matters for your livelihood. It changes how you make decisions.
  4. Multiply the Impact of Side Projects:

    • While side projects count, give them a 25–50% multiplier if there are paying customers. Real stakes transform decision-making.

In essence, becoming a senior software engineer isn't a linear progression but a rich tapestry of experiences. It's about asking the right questions, shifting from abstract to concrete language, and embracing real-world stakes. The journey values wisdom over years.

Bonus: Don’t Feel Too Attached to Your Code
Sometimes, urgent cleanup or refactoring is required, even erasing large portions of previous work. While emotionally challenging, the focus should remain on lessons learned, efficiency, and team collaboration. Human bonds and shared victories are as important as the code itself.

Recommended Books:

  • Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

    • Practical guidance on writing maintainable code.
  • The Pragmatic Programmer: Your Journey to Mastery by Dave Thomas and Andy Hunt

    • Career growth advice and practical wisdom.
  • Soft Skills: The Software Developer’s Life Manual by John Sonmez

    • Broad range of essential skills beyond coding.
  • The Effective Engineer by Edmond Lau

    • Insights on increasing impact in engineering roles.
  • Accelerate: The Science of Lean Software and DevOps by Nicole Forsgren, Jez Humble, and Gene Kim

    • Practices for high-performing software organizations.

Recommended Articles:

  • What Does a Senior Software Engineer Do? by Sarah Mei
  • How to be a great software development team lead by Swizec Teller
  • Senior Engineering—What Does It Mean? by Charity Majors
  • The Pragmatic Engineer’s Path to Becoming Tech Lead by Gergely Orosz

Check Medium, LinkedIn, and personal blogs for additional insights. Diverse perspectives provide a well-rounded understanding of the path to senior software engineering.