How Software Engineers Get Promoted – Career Advice

Software engineering is a synonym of constant learning. There is always something new to learn regardless of whether it is on your technical, leadership, soft skills improving your expertise in the field without you realizing about it. However, there is a point in your career when you feel you are ready to take the next level and be promoted, but you are not sure how that path looks like. In this article, we are going to talk about how long does it take to get promoted, how software engineers can get promoted and how that can play a major impact on your career.

How Often Do Software Engineers Get Promoted?

While there are many factors that come into play when determining a promotion of a software engineer, typically software engineers get promoted every two to three years in their career. However, this can change based on the person’s ability to take their skills to the next level.

It is possible to be get promoted as soon as after one year of working for a company. On the other hand, it could take longer for others to be promoted even after working four years in the same company. The reality is nobody knows when you are going to be promoted, or in the worst scenario if you are going to be promoted at all.

I’ve been fortunate to get several promotions in my career: four promotions in about five years of working as a software developer and then as a software engineer. That’s a promotion every 15 months on average. While I’ve been blessed by being considered constantly for promotions, at the end of the day it is the reward of the effort and dedication I put on for this profession, combined with managers who see the value I can provide to the company.

Although the purpose of this article is not to talk about me, I wanted to share a real case of how frequently a software engineer is. Remember, your path will certainly not be the same as others. Without knowing you and working with you for some time, the reality is, nobody knows how good of a software engineer you are to be considered for a promotion.

Tips to Get Promoted as a Software Engineer

Let’s be honest, who doesn’t want to be promoted? It is tempting to say everyone wants a promotion, but there might be scenarios where people wouldn’t. Typically, with a promotion, there are more responsibilities, more compensation, forcing you to learn new skills you didn’t anticipate learning.

After knowing you are going to do more, let me ask you again, do you still want to be promoted? There is good news for you if your answer is yes. I’ve compiled tips that have helped me achieve multiple promotions in my career for any software engineer out there who wants to get to the next level much sooner.

Why Do You Want to Be Promoted?

Asking yourself why you want to be promoted should be the first step. Fooling yourself by saying you want to be promoted because you are looking for growth and improvement in your career is a mistake. While certainly there are people who are after career growth, that is not always the reason why people are looking to be promoted.

Some of the reasons why people want to be promoted are:

  • Being recognized for their work
  • Career Growth/Advancement
  • Ability to make impactful work
  • Getting a higher salary
  • Getting better benefits
  • Enjoy taking on more responsabilities

Understanding the reason will give you a better idea of why it is important for you to be promoted. It will also make you consider other alternatives such as looking for other job opportunities or going back to school to pursue a master’s degree or a Ph.D. degree in software engineering.

Understanding the Software Engineer Levels at a Company

How can you get promoted if you don’t know all the different software engineer levels in a company? For those who don’t know, setting different levels allows a company to distinguish not only the technical skills but also experience working for a company.

You might have heard big companies such as Google have multiple different levels for software engineers. In the case of Google, starting from L3 or SWE II until L10 or Google Fellow, or Facebook starting from E3 all the way until E9 level. You might find a list of software engineer levels of big tech companies here or check out the image below.

Software Engineer Levels at Large Tech Companies

Not everyone works for Facebook, Apple, Microsoft, Amazon, or Google, and finding information about the software engineer levels at a company might require a conversation with the human resource department or with your immediate manager. However, if you are looking for levels typically found in companies for software engineers, you can see the standard level or have a look at the image below.

Standard Software Engineer Levels

As you see, the levels are in the following order:

  1. Entry Level Engineer
  2. Software Engineer
  3. Senior Engineer
  4. Staff Engineer
  5. Principal Engineer
  6. Distinguished Engineer

Some companies will have Staff Engineer level at the same level as Principal Engineer level, being this the highest engineering position at an organization in terms of software engineering. Some companies will have the Senior Engineer level as the highest level possible. The important part is for you to understand if you are at the highest possible level.

If you are already there, congratulations!

However, if you are not and work for a company like Google, making it to levels such as Google Fellow, the last level at Google, is a true challenge and almost a mission impossible task as only a few have the benefit to be ranked that high for such company.

Talk to Your Manager

Many people fail to share with their managers their desire to take to the next level and grow in their careers. Having an honest conversation with your manager will give you a better idea of where you are and what you need to get a promotion. For some, this might be an uncomfortable situation as managers will point out not only your strengths but also your weaknesses that are preventing you from getting promoted.

You might agree or not with your manager’s points of view. However, you will learn what people at higher positions see on a software engineer and the skills they consider are important to take someone into consideration for a promotion.

On the other hand, talking to your manager could help you set a clear roadmap of what you need to do as well as have a better timeframe of when you could get a promotion. Remember, it is not possible to know if you are going to get a promotion the next month, the next year, or after three years. Nevertheless, having an idea helps you make better decisions regarding your career future, especially if what you are after a promotion is a salary increase as you might be better off looking for new jobs that will pay better without the need of waiting too long for a promotion.

Talk to People in the Position You Want to Be

Have you heard to surround yourself with people you want to be like? It works kind of similar as not always you want to be like the person is in a higher position, unless that person is a role model in your life that truly inspires you to be like them, not only professionally, but also personally.

You should look to talk to those who are where you want to be as this will help you get a better picture of what you need to accomplish to increase your chances of being promoted. Just like a kid wants to know the secrets of a professional soccer player to eventually become a professional player one day, you could apply a similar principle as they might know a trick or two that not many people know about.

In the case of new graduates or junior engineers, talking to senior engineers is a good option for them to avoid mistakes as well as understand what skills they need to focus on to reach one day a seniority level. It is also a good alternative for those who are afraid of talking to their manager to discuss a career promotion.

Be Honest and Critical with Your Current Skills

Everyone thinks they do a good job, everyone thinks they deserve to be promoted. Is that really true or are you tricking yourself without knowing? Sometimes, you don’t realize how good or bad your skills are until someone tells you there needs to be an improvement on them.

Being honest with yourself about your current skills can be hard for those who always think they deserve something and never get it. In the end, there is a reason why you are not getting what you think you deserve you should get.

Once you are able to see what you are good at and whatnot, along with understanding the requirements from the company to achieve a higher software engineer level, will help you put more emphasis on those skills that you lack that are necessary for those who want to be promoted a specific role.

If assessing your current skills is complicated, getting continuous feedback from your peers and tech leads about your abilities and performance can be a good starting point, as people can see things that you are not able to see in with a more critical perspective, especially your managers.

A good starting point to be considered for a promotion is to see whether you are doing well at your current level. If you are struggling where you are right now, there might not be a high chance for you to be promoted. On the other hand, excelling at your current position gets you at least in the pool of candidates that could be considered for a promotion.

Work as If You Were Already Promoted

There is a reason why software engineers get promoted: they demonstrate they are performing at their current level, but also meet objectives of the next level without being on the next level. However, many engineers fail on thinking they can do more work than what they already do and end up working on a lot of things and never delivering, which is the most important part.

A good indicator to tell whether you are working as if you were already promoted is by asking your manager the following question:

Am I underperforming, meeting, or exceeding expectations?

If the answer is underperforming, you shouldn’t worry about getting promoted but make sure you improve your skillset to avoid reasons to be fired.

If the answer is meeting expectations, you are on the right path but you might start considering taking on more work as soon as you are able to finish your tasks.

If the answer is exceeding expectations, there is a high chance your name is mentioned during company promotion delegation meetings.

Deliver Impactful Work

Software engineers who are able to accomplish a lot of work don’t always get promoted. Why is that happening? A good way to think about it is whether the work they do makes an impact on the company. Don’t get me wrong, everything software engineers do have an impact on any organization, just like any other employee. However, there are certain things that have an effect on the development time, finances, structure, and business of an organization.

There is a reason why software architects are highly desirable and have high salaries. Their job involves making decisions that are not only best for the development of a product but also what is best for the company. For example, if they are able to migrate the usage of virtual machines to run their applications to serverless solutions for applications that are not used only 3 hours a day on average, can you imagine all the savings it could have in a company’s finances?

Now, not every software engineer is in the position of making important decisions like software architects. However, they can still make an impact with their programming skills. For example, there are pieces of code that are constantly used by many engineers which are not easy to read and make others take more time implementing new solutions.

One good way to make an impact is by refactoring those pieces of code that reduce development speed to reduce hours of development time per each engineer who interact with the same code. Can you think about how many hours you are saving the company of software engineer salary, which is usually high?

Have a Good Relationship with Managers and/or High Level Software Engineers

Building a good relationship with your coworkers is essential to make your job more enjoyable. However, having a good relationship with managers or higher-level software engineers is critical for those who are looking to get to the next level.

The reason?

Typically, people in charge of delegating promotions look for feedback on more senior engineers and/or tech leaders. Having a good relationship with them doesn’t necessarily mean they will mention your name whenever they are asked about people who make a positive impact in the organization, as you have to make sure you are getting the job done. However, they will fight for you to get that promotion if you are friends with them, as at that point they want not only the best for the company but the best for people they enjoy working with.

Help Others Succeed

When was the last time you helped other engineers get their job done? It is funny how it works, but those who are able to give a hand to their peers are well-positioned to be promoted. Team collaboration is part of the job description for almost any software engineer, yet not all are good at collaborating with other team members.

Thinking about helping others for the sake of looking to be promoted is not the right approach. In fact, those who use some of their time to provide assistance to coworkers do it because they enjoy helping others. There is a hidden benefit that comes with helping others: getting additional knowledge in different areas of the business and software development as it is often complex to understand every single logic behind an application.

On the other hand, it is recommended to spend time helping others as long as engineers are capable of getting things done. Otherwise, how can you help others when you cannot help yourself first?

Conclusion

Promotion often comes as a surprise by many to recognize their work and the impact they have in a company. However, is that really a surprise? In theory, is an adjustment of someone’s title that provides a better context of what they do in an organization. When software engineers are promoted to senior software engineers is because they already do work that senior engineers typically do.

There is a difference between expecting a promotion and working towards getting a promotion. Things don’t happen by surprise in life. You need to understand all the steps needed to be part of the next promotion in a company and work towards them, just like when you apply for a job, you need to demonstrate you are capable of taking your career to the next level or continuously exceed expectations.