The Career Path Of A Software Engineer

Search for a command to run...

Wow so interesting as always i dont have the experience to discuss this ahaha but what are u in all that ? Senior i guess
What a great article again Maddy. Thanka for sharing. ❤
You know I read your article, when you see you have all the 10 emojis on your post. 🤣🤣🤣
Interesting perspective I would say that you are more a less correct. A lot of people want to level up fast and think they can have all this experience within a year.
In reality you might be able to get up to speed with a technical stack in that time. But it does not equal real world experience which only happens after a few years.
I'm with you. Also, seniority is not just about the technical stuck. It's also about understanding the architecture, system design, business domain, communication skills (both written and verbal).
I'm not sure how someone can learn all of these within a year or two.
Anyway, thanks for reading my article! 😊
Are you learning how to code and looking for ways to get some real-world experience? This article will introduce you to exploring different options for real-world experience. Let's start. Open-source projects I've never tried this one, but I'm aware ...
AI has transformed how I work as a technical writer. Large tech companies are developing and sharpening these tools, but some of them are better than others depending on what you want to accomplish. T

I've been writing professionally for 3+ years, and on this personal blog for 5+ years. Throughout this time, I've built a large network made of developers, other technical writers, solutions engineers

I’ve been writing online for almost five years, with a professional focus on technical writing for over two years. If you struggle to create technical content that is easy to digest, this article is for you. Where do I start? If you don’t know where ...

LinkedIn is the only social networking site purposely built to help job seekers. Over the years, LinkedIn has evolved by offering two types of experiences: Job searching Content creation This article will describe how to maximize your LinkedIn fo...

In the last 12+ months as a technical writer, I've worked on several projects highlighting three technical writing elements. This article will introduce you to: Information Architecture Docs-as-code Content strategy Information Architecture (IA)...

Are you considering the idea of advancing your software engineering career, but don't know "what's next"?
This article is for you.
I'll lay down the software engineering career pathway.


A software engineer starts their career as a junior software engineer, also known as an "associate" software engineer. Some companies prefer to use the word "associate", which is simply a different way to define an engineer with little to no real-world experience.
A graduate software engineer is also a junior software engineer.
A junior software engineer usually has 0 to 2/2.5 (someone would even say up to 3) years of experience.
Notice that being a junior software engineer has nothing to do with age but more about the experience.
A junior software engineer is an engineer who has never worked on a real-world project and someone who is figuring out what software engineering is as a whole.
An associate software engineer needs close supervision from someone more experienced, and they're more likely to spend time pair-programming.

A mid-level software engineer is a software engineer who has between 3 to 5 years of experience.
A mid-level software engineer needs less (but not zero) supervision from more experienced software engineers.
They have a good understanding of the codebase and are also more likely to take on more responsibilities.

A senior software engineer is an engineer that has 5+ years of experience.
Senior software engineers are leaders.
They have the responsibility to train and mentor junior and mid-level software engineers.
They have excellent problem-solving skills, deriving from the years of experience accumulated.
From what I've understood, a principal engineer is an engineer who has the same (or more) experience as a senior software engineer but has expertise in some areas.
A principal engineer is more concerned with software architecture.
A truly valuable principal engineer makes their whole team better by advocating for best practices, gently reminding people of why the processes we have exist, and helping the less experienced engineers find ways to ‘level up’. [...]For an engineer to get to the principal level, there needs to be cross-organizational, collaborative signals, and there needs to be a clear understanding of architecture and design decisions that go far beyond the immediate technical area of expertise.
(Silvia Botros, "The reality of being a Principal Engineer")

A technical lead is a highly-technical engineer with 5+ years of experience.
Technical leads are also leaders.
A technical lead has stellar system design skills. They have strong code reviewing skills. They are responsible for settings the standards for the team.

An engineering manager is (usually) a previous software engineer who now wants to be responsible for managing people.
However, I've met engineering managers who have never written a line of code but can still understand the tradeoffs of software engineering because they work closely with software engineers.
Engineering managers are also leaders.
They are responsible for unblocking engineers and ensuring they reach their full potential.
Engineering managers have strong project management skills.
I came across this insightful [article](17 reasons why becoming an engineering manager is not what you thought it will be), claiming that engineering management is not career progression but rather a career pivot.
A software engineer’s natural career progression is to become a senior, then a staff, then a principal, and so on. Becoming an engineering manager is a change of career track. It’s more closely related to going from an engineering role to a product manager role. You’ll need to develop a bunch of new skills you didn’t know it even existed.
To me, an engineering manager works for the team. Not the way around.
Other considerations to make:
There are even more advanced positions than being a Principal or Technical Lead that I've seen so far in my career.
These positions are, for example:
Head of Engineering: they are responsible for the entire engineering department, and their main focus is to deliver the best possible customer experience.
Technology Director: they are responsible for the company's information, strategy, and business.
A software engineer can start with one stack (for example backend) and specialize in another stack.
A software engineer can decide to take a completely different path. It's less common, but some software engineers decide to become a Scrum Master or an Agile Coach, instead of continuing with core, hands-on engineering. Or even switching to a completely different field, such as data science, data engineering or cyber security.
I've also seen software engineers switching to DevOps engineering and Quality Assurance engineers switching to core software engineering.
And this is the beauty of being a software engineer: knowing how to program and understanding how to create software are skills you can transfer to other fields.
Related: 5 Alternative Career Options For Software Engineers
You've learned about the software engineering career path in this article.
Software engineering is broad and a career that can open many doors.
Do you agree with the framework above? Let me know in the comments below.
Until next time! 🙋🏾♀️
ADDITIONAL RESOURCES