The path to seniority in software
How to become a Senior Software Developer?June 08, 2022 - 958 words - 5 mins Found a typo? Edit me
We all have been junior developers at some point. This is easy to know because it is at the very beginning of your carrier. Your responsibilities were narrowed down by other peers who were looking after you.
Suddenly, at some point, after some months or years, you got your promotion or another job, where you weren’t a junior anymore, but an intermediate.
An intermediate (also known as middle) is something between junior and senior. You know now that you are not a junior anymore, you know how to deliver value but yet you also have mixed feelings about seniority. You want to be a senior, but you don’t know how. There is no clear path to achieving this goal.
Wait for a second… there are actually two easy ways to get the senior title! You can get promoted as such in your company, or you can start a new position as a “senior” in another company, easy right?
Marketing and politics
Unfortunately, the “seniority” level is very much polluted by marketing and politics. First, what does it mean “senior” in this context? In all the companies where I have been working (if not all) I have always been surrounded by people who claimed to be “seniors” when in reality only a few I would consider such.
Our senior industry is falsified by companies’ need of having experts on paper more than in reality, and this is a problem we need to deal with and speak about.
Seniority generally means more experience, but how do you calculate this? It is easy from a company’s point of view: more years in the industry. But, is the number of years you have been working really relevant in an industry that is constantly changing and evolving? Actually, this wouldn’t be a big issue if you have the software fundamentals well interiorized, but funny enough, I have seen these fundamentals just in ~10% of all seniors during my almost 10 years of experience and 7 companies I have worked with.
The fact that you have been working for 10 or more years doesn’t necessarily mean you are a “senior” with software. What else can we measure in order to identify if you deserve indeed this title?
It is not all about the money
Let us be honest, senior titles are better paid than junior or middle positions. If you have the chance to get a higher salary because you got the “senior” in your job title, well, it wouldn’t be clever to reject it. But, independently of politics and marketing, we must address some seniority fundamentals to understand better what the word “senior” means in this context.
It is not all about the money, but also about the responsibilities that come with seniority.
Being senior in our software industry is not about “the number of years of experience” but:
- How well can you transmit your knowledge to others? Sharing your knowledge is an important task for a senior person.
- How well can you collaborate with other people? Including the PM/PO and other teams. Collaboration is crucial to creating a constant feedback loop.
- How well can you work together with your peers? Pair-programming embraces team cohesion and helps the team become better.
- How well are your testing skills? Testing is highly related to the quality of your work, and a senior should aim for an incremental design.
- How well is your understanding of delivering value constantly in small chunks? The sooner you deliver value, the sooner you get feedback about it.
- How well is your technical knowledge related to quality software and the trade-offs to get there? SOLID principles, clean code, TDD, refactoring as part of your daily job, low coupling, high cohesion, appropriate data structures, and choosing the right solution (KISS, YAGNI…).
- How well are you capable to adapt and cope with changes? Change is inevitable, and therefore we must learn how to deal with changes, especially the ones that we cannot control.
- How developed is your entrepreneurial thinking? Always keeping the organization’s goals in mind.
As you can see, there is no mention of concrete technology or years of experience. Why? Because technology is just an “implementation detail”, and experience comes by practicing and attitude, not by letting the time pass by.
Attitude is important
We’ve got two persons:
A) a person who is working for 15 years, doing relatively the same every day, and without caring about his own skills. He just does what others tell him to do.
B) a person who is working for 5 years, challenging herself every week, trying different approaches when dealing with problems, and sharpening her own skills constantly.
Can you see the main difference? No, it’s not the 10 years difference of “experience” between them, but their attitude.
We wrongly understand that a year of experience must come with learning and knowledge, so we tend to use time as a measurement of seniority. But I argue that the “attitude factor” is equal or even more important. I have been surrounded by many people who call themselves seniors with 3, 6, 10, and more years of “experience” but lacking attitude, and you could clearly see this problem on a daily basis.
You need this combination to build yourself as a truly senior developer; time, experience, and most importantly: attitude towards improving your own skills and the ones that surround you.