DEV Community

Cover image for 5 Things You Need To Become A Senior Developer
Emma Bostian ✨ for Ladybug Podcast

Posted on

5 Things You Need To Become A Senior Developer

In this week's Ladybug Podcast episode we chatted about the skills it takes to level up from a junior to a senior developer.

play pause Ladybug Podcast

Before jumping into this topic I want to preface this with the fact that every single employer has different qualifications for what constitutes a senior developer, and just because you're a senior developer at one company doesn't necessarily mean you'll be a senior developer at another company.

Nothing frustrates me more than seeing "I became a senior developer in six months after joining the tech industry" blog posts. Not only do they instill a sense of inferiority in developers who take longer than six months, but there are many factors that go into a promotion. 

Having a computer science degree, having a social media following, having a backlog of content to showcase your skills, and having excess time outside of your 9–5 job are all examples of privilege that facilitate your ability to become a senior developer. 

As an industry, we must stop perpetuating this idea that if you hustle hard enough, it only takes "X" months to become a senior developer. It may take you sixth months, or it may take you six years. Don't let anyone influence your idea of how long it should take you to achieve a promotion. 

Talk with your manager. Find out which boxes you need to check off before becoming a senior developer, and block out the noise that is present on social media.

But despite each company having their own definition of what it takes to become a senior developer, there are a few characteristics which all senior developer exhibit. Today we'll take a look at five of these characteristics which will jumpstart your progress towards becoming a senior developer.


Autonomy

Independence or freedom.

One of the primary qualities of a senior developer is having autonomy, or being independent. As a senior developer, you're expected to deliver work without needing much assistance. This doesn't mean you can't ask questions(in fact, you should ask questions), but it means that if you're given a task you're able to construct a solution and you know what questions to ask if you get stuck.

Autonomy is one of the characteristics I have struggled with for several years. Early on in my programming career, I felt lost. It's absurdly nerve-wracking to pair with senior team members and watch them seamlessly navigate their way through the code. How do they know where to start? How did they know this bug was originating in this file? How did they know to ask this specific person for help? 

I'll let you in on a secret: all of these questions can be answered with "it just takes time and experience." It's safe to bet that your team members also felt this impending sense of impostor syndrome when they joined the company. And no matter how much programming experience you have, joining a new company with a new tech stack and new colleagues will always require time to acclimate.

When I joined Spotify this July, my manager and colleagues told me it would take at least six months to feel self-sufficient and productive. It's important to set appropriate and realistic expectations for yourself when joining a new company (especially as an entry-level developer).

But if your goal is to be promoted to a senior developer role, you must start exhibiting autonomy with your work tasks.

Initiative

The power or opportunity to act or take charge before others do.

Before promoting you to a senior developer, your manager wants to see that you take the initiative to find challenging tasks and help team members in need. 

If you finish your task early, actively seek out other tasks or bugs that you can work on. If you see a team member struggling with their task, offer your assistance. If you see additional areas outside of your team to get involved, like helping to plan an internal conference or mentor a new team member, go for it!

You should also keep a list of your accomplishments. This will make it easier to reach the next level as you won't be scrambling to remember what you accomplished the past year.

Don't wait around for someone to give you work: actively seek out new and challenging work and write down your accomplishments.

Communication

The imparting or exchanging of information by speaking, writing or using some other medium.

Ahh "soft skills", every programmer's favorite area to excel in. I personally don't understand why "soft skills" are taught as a lesser skill for programmers. The higher up the ladder you climb, the more important your communication skills become.

The ability to write and speak effectively has many benefits. Whether it's impressing your colleagues during a technical presentation or writing up an internal blog post, communication is key.

To become a senior developer you must be good at explaining not just what you're doing, but why. This is especially important when mentoring more junior team members.

Understanding and conveying the why behind tasks will solidify the skills you're learning as well as the skills you're teaching.

Problem Solving

The process of finding solutions to difficult or complex issues.

Problem solving is an undervalued skill for all developers because it's not necessarily a skill developers are taught in bootcamp or degree programs. The ability to solve complex problems will arise throughout your career and will scale in complexity the longer you spend in the industry.

Learning how to problem solve early-on in your career will put you at an advantage when looking to achieve a promotion. I won't delve into the specifics of problem solving in this post but let's take a look at the general process.

First, you must identify and clarify the problem. Problems are often more nuanced than we initially perceive. What are you trying to solve? Are there dependent sub-problems that must be solved along the way?

Once you understand the problem you should list the possible solutions. What are the different ways you can solve the problem?

Now you're ready to evaluate your options. What benefits and drawbacks does each solution present? Are there performance implications for a solution? What about accessibility concerns?

You're now ready to select an option and build it. If you realize along the way that your solution isn't technically feasible or you encounter an unforeseen issue, you can always go back to step three and reevaluate your options.

Lastly, you can document your solution so that your team members can understand why you selected the solution you did.

Problem solving process defined above

Problem solving is an invaluable skill and it's undeniably one you'll need to become a senior developer.

Mentorship

A period of time during which a person receives guidance from a mentor.

One of the biggest factors in becoming a senior developer is the ability to mentor another team member. Mentorship is often though of as a formal relationship wherein the mentor has all the answers to the mentee's questions. This is an archaic definition of mentorship.

Mentorship is a symbiotic relationship where both parties are gaining knowledge. While most of the information will flow from the mentor to the mentee, the mentor should also be open to learning from their counterparts.

Mentors also shouldn't give out answers to the mentees' questions. Asking a question and receiving an answer has short-term benefits. Instead, a mentor's job is to guide the mentee towards the solution. By providing boundaries for your mentee to ideate and learn, their problem solving skills and confidence will grow more quickly.

As a senior developer you're expected to mentor more junior team members. It doesn't need to be formal (although a formal mentorship will serve your promotion more easily than an informal mentorship) but the act of supporting another team member will make strides towards your desired promotion.


The biggest piece of advice I can give to those looking to level up from a junior developer to a senior developer is to exhibit the characteristics of a senior developer before you have the title. If your company provides a chart with senior developer qualifications, make sure you're achieving the senior developer requirements before applying for a promotion. 

And lastly, be patient. Being promoted to a senior developer can take months or years so don't compare yourself to other developers outside of your company.

Top comments (22)

Collapse
 
ecyrbe profile image
ecyrbe

Senior developper means experience.

Seeing senior developper and 6 month experience is antinomic.
You can be a lead dev within 6 month in an inexperienced team, but that does not mean you are senior. It just happens you are the most talented.

If some managers want to call this position senior, good for them. But it does not make it true .

Collapse
 
alainvanhout profile image
Alain Van Hout • Edited

True enough. On the other hand, having 10 years worth of experience doesn't automatically make you a senior developer (if the term is to denote more than just the number of days you've been staring at a screen).

Collapse
 
andrewbaisden profile image
Andrew Baisden

Agreed well said.

Collapse
 
menaiala profile image
Menai Ala Eddine

I add :

  1. Knowledge in every topic in your field.

  2. Being able to mentor juniors.

  3. Understand the business around you ( not just the code ).

  4. Handle pressure in a creative way.

  5. Solve complex problems with easy manner.

Collapse
 
alainvanhout profile image
Alain Van Hout

I know some seniors indeed do this, but in what way is it a necessary requirement for being considered a senior developer?

Collapse
 
patrykmilewski profile image
Patryk Milewski • Edited

Do we really need to waste time on those namings? It's just a name, if I'm getting paid enough and it doesn't limit me in my day-to-day work, then I'm fine getting called junior my whole life, even with 10 years of professional experience. Some of people pay attention to that, but that's just naming. Some of the companies compensate bad salary/atmosphere/projects with titles, which in the end are just about prefixing your title with a single word on LinkedIn. Is it really worth it?

I don't really like that, that's why I would be happy to call everyone developers or software engineers etc. It simply fixes a problem with correct naming and finding out, who is senior developer, which in the end doesn't really matter, because everyone has his own definition (as you can see in discussion here).

Collapse
 
szilardszabo profile image
SS • Edited

Very edifying article, It reflects the current expectations from a senior developer very well. Also shows where this industry is going which is not necessarily a good thing. In the past there was no such position like "senior" developer. Seniority in the classical sense is simple a matter of age, maybe meant that somebody who was on a job for a long time and had the experience to do it well. Nowadays it is getting more and more not clear what does it mean to be a "senior". Actually I do not think that somebody after 1 month experience could possibly become a senior even if it has the best soft skills possible. This the new trend in this industry and actually nowadays the soft skills that makes somebody senior after 1 month and not the real hard tech skill. You can decide if it is a good or bad tendency. Also I really do not agree with a lot of soft skill that we need to possess now. Before development was more about doing and less about talking and actually I liked it better that way Software development is highly technical area, I would say it needs a lot of hard technical skill, and classically software developers were good at that and not talking which is in opposite a soft skill. Nowadays you have to explain the why too much for people, maybe it is because there are more and more people who need explanation to often and it is maybe because of their lack of right education in the area, and huge lack of hard technical skills that is really needed to do this job. Writing books and talking public is very different from writing code. Before people understand this more when there was only machine code to write software. Nowadays with these high level program languages the classical way of doing this job is dying out and gets replaced with people who only good at soft skills, but actually you can see what kind of software is the output of this process. I would give these people more chance to write software in machine code to get to know more computers and machines which is actually this job is all about. Let them replace some soft skills with some hard one.

Collapse
 
tmohammad78 profile image
mohammad taheri

What about software engineer ? I see in LinkedIn some people with low experience (2 years )call himself as software engineer , is it true? Is it depends on number of language that he know and level of language proficiency , or other things ?

Collapse
 
korbraan profile image
Cédric Rémond

Software Engineer is a job title, and in my opinion there is no contradiction being a Junior Software Engineer.

When a baker starts his carrier he's probably at its lowest in term of skills, he's still a baker though.

Collapse
 
tmohammad78 profile image
mohammad taheri

Thanks, good explanation

Collapse
 
raphaelgabbarelli profile image
Raphael Gabbarelli [codercave.tv]

That's a good list, even though I assume that "problem solving" is a basic skill at any level. Devs without problem solving won't stay devs for long...let alone become seniors.

Some time ago I put together "5 mistakes stopping you from becoming a senior dev" video on youtube. What do you think? Does it make sense? youtu.be/LjrLBkxHUFg

Collapse
 
ssimontis profile image
Scott Simontis

I would add two things:

Reliability/Accountability: You need to have a track record of getting things done when you promised they would be done, showing up when you say you will, and not screwing things up. Senior engineers nuke deployments sometimes (rarely), but they know how to roll back within the deployment window or resolve things, whereas a more junior developer would not even be trusted to deploy to such systems. At the end of the day, you need to get your work done.

Along with communication, being able to convey business value is indispensable. If I tell a team we need to use (INSERT NEW JS FRAMEWORK HERE) because it is trending and all the cool kids use it, no one cares above me. I need to make a business case that adopting this technology will benefit the business - increased productivity, larger talent pool, killer competitive advantage, etc. Understanding the needs of the business and their risks is crucial. You may need to spend a weekend making a proof of concept on your own time if it means a lot to you.

Collapse
 
murjam profile image
Mikk Mangus • Edited

Thanks for the article, it was a good read!
One thing I would point out that you did not touch is the fact that being titled as "senior" does not always mean the same. There are different companies with different needs for talent and different assessments on you. So being a senior in one company does not necessarily make you a senior in other company's terms.
This is also the first impression I get when I'd hear someone becoming a senior in 6 months -- that is just the title, which most probably has been a premature promotion.

Collapse
 
kononenkoam profile image
Anton Kononenko

I feel that Communication and Mentorship quite subjective expectations from developers.

I'm not saying that it's bad or useless skills, however, I know really great and experienced developers which are not good at this, but it doesn't make them worse. On other hand, I know Juniors who are great at explaining and have this ability to mentor others even when they are Juniors on their's own.