Or, aren’t you too young to be a Senior developer?
I never had the title of Senior Developer until about 3 years ago. By that time, I already have 15 years of experience in creating, deploying and fixing software. This is not counting the years I spent freelancing for various tech companies while I was in college. I have worked in startups and big companies, led teams, launched several products on my own and failed, and numerous times I had to learn stuff not related to coding just to get that freaking software out the door. Suddenly, I feel so old and it feels so jurassic now to remember my Visual Basic program running on Windows 95 - ah the good old days!
I imagine these are more than enough to earn a senior title. On the other hand, I’ve worked with developers with a senior title who produced amateurish work. It made me wonder when should companies give the “senior” title to someone. More importantly, when can a developer, call oneself a senior in this field?
In the early stages of a project, the team usually has a number of technical options. A senior developer can articulate the pros and cons of a technical decision - the why and when, not just the how and what. This could be as simple as avoiding early optimizations, highlighting roadblocks the team will face, or avoiding unnecessary work.
An effective signal to know someone is truly a senior developer (or in that mindset regardless of title) is when the developer looks at context when applying a theory. What problem are we solving? What is important and what is not? When to start and when to stop. How often have you seen over-engineered systems that are flexible in ways that don’t matter and inflexible in ones that do? This is simply because developers want to try the latest cool thing they’ve read.
There is also, looking at the big picture. Not every moment in software development is spent working on change-the-world tasks. It’s quite the contrary. Majority of your time is spent on boring tasks that must be completed to the same quality as any other potentially more interesting tasks. Have you met a developer who planned on resigning if he get to work on a legacy project, regardless if that project generates millions of dollars of revenue? I did. It made me think now, if he was more interested in showing off in his resume rather than adding value to the company.
If my thoughts above would be considered, does this mean a developer with 3 years of coding experience and brings tremendous value to the team, can now be called a senior developer? How about someone with 10 years experience but in reality is just experienced the same year 10 times?
Realization. It’s never about time - it’s the maturity.
On the other hand, how realistically can you gain maturity in a short amount of time? Can you compress 10 years worth of experience into 1?
Success in software development goes beyond technical skills. If you want to learn how to manage a crisis, you have to experience a crisis. If you want to have a high performing team, you have to learn to work together, which takes time. Hey, even when superstar athletes play together they rarely get success in their first two years.
Can we now agree that years of experience is misleading? Worthwhile experiences simply do not happen every day. You can try compressing it similar to what schools do, or read books that’s ideally based on the author’s years of experience. Still, while these are helpful, they are not good enough to deal with messy problems. In actual work, there are lots of compromises and very few assumptions. And you have to rely on your previous success and failures when dealing with new problems.