How many years to senior engineer?
It's mid-year review season and my manager asked "Hey Swiz, what do you think how many year's it take to be a senior engineer?". You might be curious too.
Now I don't think my manager was asking for guidance, that's not my job, they were gathering opinions. Get a feel for the vibe from experienced people in the org and see how it aligns with their thoughts.
This is a common decision-making tactic. Ensures you're not a crazy person :)
Here's what we discussed:
Years isn't it
Years is a bad metric. It can be a decent proxy, if you have no other information, but what you're looking for is some sort of wisdom. Experience.
Someone with 1 year of experience 10 times, does not a senior engineer make. And in the right environment, an engineer can suffer through 10 years of experience in 1 year.
The latter is rare, the former all too common.
We both agreed on this. But how do you measure experience? How do you know it when you see it? 🤔
Measuring experience
I think this is tough, if not impossible.
But it shines through in how you approach problems and the questions you ask. Experienced engineers ask really weird questions that help them prune that decision tree (or solution design space) in their mind in large swathes.
They aim to ask the fewest possible questions to design the solution. Fun side note: You need sqrt(N) yes/no questions to decide how you'll build something that initially has N possible solutions.
This process can be frustrating to everyone around you. Might even make you look stupid.
Another tell is that as you gain experience, your language shifts from abstract to concrete. You go from "Such and such design principle ..." to "This one time I tried ...".
You make decisions and suggestions based on personal hard-won experience, not lofty ideals from a book or tutorial. Pay attention next time you talk to someone and you'll notice the difference. Are they quoting books and articles or direct experience?
The best engineers (and PMs, and business leaders, and managers) support their experience with research. The Skin in The Game approach to wisdom – follow your experience, but verify and look for patterns.
The minimum amount of experience
I think the minimum to be a senior software engineer is that you have:
- worked in at least 2 companies (or vastly different teams)
- worked on 1 codebase for at least 3 years
Working in multiple companies teaches you the difference between general principles and company/team/codebase specifics.
Working on the same [production, commercial] codebase for a few years teaches you the difference between software engineering and programming – what works over time.
It is important that both of these come with real stakes. Fiddling with a side project that your livelihood does not depend on doesn't count.
Followup post with reader questions and comments 👉 More on how many years to senior
Cheers,
~Swizec
PS: yes side-projects count a little. I give them a 25% multiplication factor, 50% if there's paying customers. Having real stakes changes how you make decisions.