DEV Community

Cover image for How to become a Senior Software Engineer and beyond

Posted on

How to become a Senior Software Engineer and beyond

This article is a written take on the Podcast episode of 404answernotfound, on Spotify. If you would like to listen to the episode directly, go to this link: 404answernotfound Podcast

Image courtesy of @sigmund

So what are the key differences between Junior and Senior level software engineering roles and how can we achieve professional growth?

If you are coming from a more “nerdy” background like I am, I often thought about growth as one does with role playing video games. You have a hero, yourself, and you have to level up and gather better gear to work towards your objectives til endgame.

It is kind of a fantasy style rally to the throne waiting for you to the end of the game, but at the same time one must figure: is it really like this?

The question doesn’t matter as the answer is pretty much stated in the sarcasm of the way we present it.

No, the answer is “of course not”.

When I was at the beginning of my career as a software engineer I thought that I would acquire new skills, new shiny items and augmentations that would allow me to go up the ladder.

It wasn’t like that and it took a lot of effort and change of perspective.

One of the things that we must think about when we fix on changing roles or achieving better results, especially career wise, is the fact that not everything is mathematically proven to work.

Ever heard of soft skills? People skills?

These skills are usually achieved through experience because most of the times you can hear about them but they also cannot be taught like you would any engineering skill.

So how do we differentiate between junior, mid and senior level roles?

If you are listening to this podcast and you are part of a HR department or at a Staff Engineer level you already know a lot about this so I’d highly value your feedback on the matter.

For those of you that are curious, I’d say that a Junior Dev, even if genius, is still thinking in “first person”, that’s my key view on this.

When you get better as a programmer both in technical and soft skills you should acquire a more defined sense of team, structure and value.

Junior engineers, usually, tend to be a little more selfish, which is not an offense, they just lack the experience to scrub away the “I” to empower the “we”, that’s why most of the times people that reach Staff Engineer levels, like Architect, Tech Lead, Engineering Manager and the like, have a strong attitude towards people’ skills.

So, as a Junior you might wonder, how do I make sure that I’m taking care of the “right things” to grow into a more senior role?

First and foremost, it should come natural but you can surely strengthen up a bit on the soft skills side. You are in a good spot if you value your team’s opinions and can be supportive of them even if they are not choosing the tech stack you want, as an example. The important thing here is communication and team play. Your technical skills can grow tenfold if you start to act like a senior before becoming one and that opens you up for more senior roles as well.

So, does knowing 10 different programming languages and building your own version of the meta verse make you a senior engineer?

It does prove that you have deep talent and technical knowledge, sure, but can you lead a team?

Can you take accountability for your choices, both technical and non technical?

Can you consistently deliver what produces business value for your company?

If I were a colleague of yours, would I come to you asking for advice?

Do you have a proven record of people looking up to you as a leader figure, not only technically, again, but in a more humane way?

That’s what I’d consider for a senior role if I were to interview you.

Now, don’t get me wrong, technical assessments are still definitely a thing and they will weight on your future interviews but if you developed your soft skills accordingly you will know that not everything is a whiteboard and the people recruiting you are there for you, not against you, and that puts you in a good spot because you are all working towards the same goal, in a way:

The company needs to hire someone that is good at their job and you want to work at that company. It’s a win-win situation if you let go of the “I” and start thinking with a broader scope.

And you are probably asking yourself: how would that help?

It would, because the recruiter is now your “friend”, in a way and they understand and will be very happy to help you achieve your best results in the interviews you will take part in.

If you take that shift of mindset and work hard on all these skills, there’s nothing stopping you from achieving better results for yourself which translates into better results for your team and for your company. That’s also added value, isn’t it?

To end this episode I’d like you to think of a movie that you might have seen: Marvel’s Avengers Infinity War.

If you have not seen the movie you don’t want to listen to this, spoiler alert!

At the end of the movie you might remember Benedict Cumberbatch in the role of Doctor Strange. At that moment he envision and sees into all possible futures dependent on the actions that people would take.

That’s how I imagine a Technical Leader thought train.

Knowledge, experience and support. That’s all it takes.

Discussion (0)