Let me start with a classic caveat: I cannot bestow upon you the title of senior developer. I have no special insight into how companies these days are hiring and promoting people to senior developer roles.
What I can tell you is what qualities I think would make for a heck of a senior developer. I can tell you how I think about the distinction between senior developers and those who aren’t quite there yet. Should I, one day, be in charge of a legion of developers where it was my call what level they were at, this is what I would think about.
There is no way around this one. You aren’t going to roll into your first job a senior developer.
You probably won’t roll into any new job a senior developer. Even if I was pretty sure a person was going to be a senior developer and previously has been, I’d probably wouldn’t start them there, just because there is no guarantee they can be just as effective in a completely new environment. Even if the tech is the same, the people aren’t.
Development isn’t only about writing code, it’s about making choices. Good choices are researched, discussed, and influenced by instinct and experience. When you make a choice, you are demonstrating your judgment to everyone watching. If you make it clear that your judgment is informed, ethical, and as transparent as it can be, that’s a good thing. If you do that over and over, that makes you senior.
If the only thing you contribute to a team is coding chops, you probably aren’t a particularly good candidate for a senior developer. Code isn’t written in a bubble. Good code, anyway. Good code is a reflection of a team, a product of a cohesive vision, and a foundation for an organization’s goals. To participate in good code, and demonstrate your ability to be a senior developer, you don’t isolate yourself, you sit in the middle of the table (metaphorically).
Soft skills are no joke. A senior developer can write clear emails, rope people in around ideas, lead meetings, and just clean the damn soup explosion in the microwave before it turns into a productivity-draining war of passive-aggressive post-it notes (metaphorically).
Say a co-worker comes up to you and asks you something, and you have no idea what the answer is. Does that mean you aren’t ready to be a senior developer? Absolutely not. It’s all about how you answer that question that makes you senior or not. Can you help suss out why they are asking to get more context and be more broadly helpful? Can you offer to help find the answer together? Will you do some research afterward and follow up with them?
Even if you do know the exact answer, just delivering it and spinning your chair back around to continue typing is a worse answer than digging into the question together with your co-worker.
Being a senior developer doesn’t mean you have to know everything, it means you can help find out anything.
This is my favorite one by far.
There are developers who are, on paper at least, multiple times as effective as others. Twice the commits, twice the lines of code written, twice the bugs closed. You can absolutely aspire to be a developer like that, but it doesn’t automatically give you the senior card.
The best (and most senior) developer on a team is the one who multiplies the effectiveness of their fellow developers. Perhaps that amazing developer on your team is able to be that way because someone else is freeing up their day to make that possible. Because someone else has created a rock solid dev environment that fosters productivity. Because someone else taught them and gave them the keys to be that way.
A developer who is a force multiplier for the entire team is absolutely a senior developer.
I can’t promise that doing these things will make you a senior developer.
I have no power to tell the chain of command at your office to think about these things and factor them into their decision-making. I can say that this would be my advice to them, should they be seeking it, on how to promote developers.
Are you in the position to promote developers? Have you? Share your thinking with us!