The word "senior" in a title can be a bit fluffy. Ask one person, and it differs from company to company. Ask another, and they will say it will be offered freely if the company is in a pinch.
Ask another, and maybe they will say that mastery and autonomy are the key.
Look around and maybe you will see people leaving companies in the pursuit of titles, and even sometimes going back to their initial company with a title change.
But what does all that mean, and how can you progress yourself?
From various sources, the below seem to be reasonable, to be senior, for a software engineer.
It is worth noting that one does not don't need to meet all of these to be senior, they're all different skills that makes the difference between senior, mid and junior. A lot of these skills come with experience but not everyone makes the effort to learn them so years of experience aren't always a good measure.
The core needs seem to be:
- technical skills - can you pick up almost all tasks and get them done with minimal support? Note that this is support and not discussion - you might need to work with other seniors or team members to decide on the approach, but you understand the issue, bring some ideas of your own, and probably have specific questions rather than vague “how to…” type ones.
- project skills - can you get given something broad and not deeply defined and get it shipped? This would involve everything from discussing with product people to nail down requirements, to breaking down tasks, to being the technical lead, etc. This area varies a lot from company to company. Some places have business analysts, scrum masters, or their team lead gets very involved with this part. So the exact requirements here depend on that. But there would be at least some work here for all seniors.
- people skills - mentoring junior members, influencing leadership to make good technical decisions, working with team members, and probably a bit across teams.
- being practical and customer focussed - making sure the work you do contributes to your company’s bottom line, balanced with the technical and people skills to make sure the company isn’t building up too much technical debt, and can sustain itself long term.
In other roles, senior might also involve mentoring others - there's an endless list of things that can be added.
A practical way to gauge seniority, although subjectively, can be to simply ask the people around you, if you are senior.
You can also read up online - for example this excellent talk which I have seen in person.
Despite people's best efforts to define all of this, the process to progression to senior is still quite a black box at most companies. It's not a secret to talk about the process, but it's certainly mysterious and secret-like.
In an industry such as software, the stereotype of a rock star ninja developer probably hinders defining what a good developer actually is. There are stories of places where people really had to really "prove themselves" to get to the next level of seniority. That sounds like a recipe for burn out.
Moreover, the people making decisions may not be experienced enough. Red flags for this include:
- being told that you should not care about titles, as it should not be your main pursuit in your career.
- being told that others haven't been promoted so the process is unclear.
- being told that apparently many people do not meet it their title once they achieve it - which sounds like an error on the part of management. This is all beginning to sound like an industry wide problem where two levels of engineer are simply not enough. Some places have more granular structures which seem more reasonable.
- if a role is not met, then apparently company "performance improvement plans" can have legal implications like an employee having to meet certain performance by a set date, to risk not being let go.
On a more positive note, to define "senior" you can reach out to the people team for guidance, but it should be your manager's job to know this.
In the absence of people knowing things, you can reach out to mentors, peers and contacts for their opinion.
If you aren't getting clear answers and are past the usual timeframe, then by process of elimination there are two options:
- something is extremely wrong with your performance, and you should have been told if this is the case
- or, the standards are unknown and/or possibly too high. If the standards are unknown, they should be made clear to you.
Or possibly a third option - that you are on your way for a title change. Since generally nobody will directly tell you that you are getting a promotion. Although at some companies this does happen.
From all of this analysis and reflection, all that can truly be said is that everything is subjective.
But that is a bit bleak. There is hope, if you have a decent team, to define various things, like for example via career matrices, or breakdowns like in this link, which are structured and detailed. Details should always be made clear, to make the process of acquiring experience less subjective, and more objective.