Published
Last modified
This is a note. Notes are work-in-progress thoughts and ponderings that I choose to share “out loud”, subject to change and revision.
I have spent the better part of this year trying to answer the following question:
What exactly is a senior developer responsible for?
I know that a senior developer is required to have a lot of knowledge and domain expertise. I know that a senior developer is one who has enough experience under their belt to catch mistakes quickly. So in short, I know a lot about the technical skills a senior developer is supposed to bring to the table.
But what is a senior developer responsible for?
Here’s part of the answer I’ve arrived at:
I believe a senior developer is responsible for not just their own productivity but the productivity of their team.
That a senior developer’s measure of productivity and success no longer means how productive and successful she has been, but how productive her whole team has been.
As a senior developer, you not only have advanced technical chops, you should also have good people skills, which you use to mentor, empower, and support your fellow teammates.
As a senior developer, you become responsible for the big picture and not just your little piece of the pie. Your job is to take all your knowledge and experience and become a force multiplier for your team, so that what you achieve collectively is greater than the sum of its parts.
At some point in your career, you have to start taking a step back and thinking holistically about the work you’re doing. This doesn’t come naturally to everyone and not everyone sees the point or cares enough. However, at some point, to become a more effective contributor you must do this. Understanding the full picture is one of the best ways to identify hurdles and gaps, and then figure out ways to solve for them.
A senior developer is also often required to execute advanced and complex work. But your responsibility isn’t to produce all of the work yourself, your responsibility is to bring the work about in a way that is effective and empowering.
What does that mean? It means determining what parts of the advanced and complex work you must do yourself so it’s executed correctly and effectively and what parts can be broken down and worked on by someone else, for example. Perhaps there’s a component of the work that a fellow developer needs to practice and get better at doing or understanding. While you do some complicated work that takes time, they have the time and space to work on that piece and also have you to support them.
It means identifying the gnarly pieces of work you’re doing and then taking the time to document it in a way that helps your teammates level up and learn alongside you.
Because as a senior developer, you can write lots of amazing code, but the code you write is only part of your responsibility, only part of your success criteria. As a senior developer you can be amazingly fast at certain things, but your responsibilities are not often about speed, they are about effectiveness, empowerment, and support. Sometimes speed may be required of you, that’s true, but never let it become your primary mode – your code output is part of the picture, not the full picture.
Did you like this article? Get articles like this straight in your inbox for easy reading. 🙂