WTF is A "Senior" Developer
May 06, 2023 3:01 pm
One question I get asked often during a 1 on 1 call is:
"How can I become a senior developer"
Normally my newsletters focus on the "human" aspect of being a developer, but this week let's talk about a more technical topic. I feel like there is a lot of bull s**t information about this.
_______________________________
To save you a long-winded explanation:
Junior developers:
- Know enough to write code
- Understand the technicals of a task
- Regularly need to be guided on a task
Senior developers:
- Can operate on complex tasks independently
- Have a deep understanding of programming concepts
- Occasionally mentor junior developers and help them develop their skills
That's about it. So let's talk about an interesting nuance.
_______________________________
For people who want to become senior developers, I think there are two domains to consider:
General and Relative
General
This is your general programming expertise. Do you know:
- What data structures to use
- How to build a system that scales
- General good and bad security practices
- How to teach these things to other people
- What tools are good for certain coding tasks
These things are all "general" knowledge. No matter where you go they are useful.
Relative
This is your relative (to the company) expertise. Do you know:
- A high-level view of how the system works end to end
- Information about working with common internal systems
- The nuances of why certain design decisions were made
These are "relative" knowledge. The things that aren't generally useful to people outside of your current company.
So how does this play into your career?
Let's take a look at the graph below. It will help us visualize what I'm about to discuss:
This is how I have often seen it play out in the industry.
There are a few things to note here:
1. Going from junior to senior on the general scale is harder than going from junior to senior on the relative scale.
This means it will be harder to be a high-value general engineer than it will be to be a high-value engineer relative to your company.
You can learn the tech and systems specific to your company, get good, and operate independently, but still be in a reality where you would need assistance with other types of projects outside of the company.
2. There is a realm of confusion where you are unsure whether somebody should be junior or senior
As mentioned above, there is a realm of confusion where somebody who is an independent rockstar within their company might struggle with projects and tech stacks outside of what they are used to.
True senior devs have a variety of experiences they can pull from to make them generally useful in more scenarios.
3. When you switch companies, you go back to calculating your value on the general scale
Once you leave your company your general skills are what matters. You will be back to 0 with your knowledge within the new company, so your general skills will be the metric that matters most.
The reason I bring all this up is that there are two different types of seniority I see.
Both of these scenarios are still "senior" engineers to me:
1. An engineer who joined the company recently and has lots of questions about the system early on, but immediately contributes value based on their past experiences.
2. An engineer who has been at the company for a while, can independently take on any tasks with the systems, and mentor others about it. Even though they might not have a great depth of knowledge when it comes to many other tech stacks.
I mention this because it's important to remember:
life is not linear
Life is nuanced, fluid, and never black and white. As sexy as it would be to boil it down to either or it just isn't that simple.
Hope this helps you get an idea of where you're at in your journey, and what your next steps might be.
___________________________________
Thank you all for reading this week's newsletter.
I appreciate all of you who read to the end.
As always:
Email me at swdlodonnell@gmail.com with any questions
Or schedule a free call with me if you want to chat face to face
Until next week!
I hope you all have a great weekend.