June 03, 2021

Many people in our world have to face at some point on their career the exciting posibility of being promoted. We all start from junior/intern positions and make our way up to positions with more responsibilities. It’s always nice to feel that your company appreciates you and your work, and one of way to compensate that is through new career opportunities. That’s a natural evolution of our jobs but it’s definitely easier to say than to actually perform that climb. This is because of several factors:

  • Orgs have different ways of estimating if you are ready to promote. Sometimes, even teams in the same org have different measurements. This is always a source a controversy, and can lead to situations where you can be considered a strong senior developer in some companies but not in others.
  • You have to feel ready to hold a wider variety of tasks under your umbrella. Sometimes what we love about our job is maybe too related with the actual code development, but in most cases, the more you are promoted the more non-code related tasks you will be assigned, and that’s something you have to feel ready to accept. There are some companies that try to keep people on their career paths based on their favourite skills, while still give promotion opportunities without derailing your preferences, but that’s not usually the case.
  • Orgs need to have an open position for you to be promoted. A variant of this is that your team needs this position your are looking for open for you.
  • Your company needs to know about you. Like it or not, you will probably have to work on your self-promotion to show your peeps why you deserve this promotion. I don’t particulary like this, and ideally companies should know about you if you are out outperforming and the promotion should come naturally, but that’s not always the case.

As you can see, there are different factors that come to play on your promotion. This is totally acceptable (there have to be processes for these things), but going through this process can be psychologically harder than it seems, and these are some examples of feelings you may experience along the way (by the way, I’m going to use “senior” as an example, but this can apply to all the levels):

  • Your consideration of what is required from a senior developer may difer from your company’s. You may think that a senior must just code very well and they may think it also requires attending to more meetings.
  • Independently of what they expect from you, chances are that you will have more responsibilities, which usually comes with more preassure.
  • You may be more than ready to be promoted but there may be a simply budget issue and it could be not the best moment.
  • Your team may think you are awesome and more than ready to promote, but sometimes your manager will have to defend your promotion against other candidatures from other teams and it may be hard for him/her to prove than you deserve it more than the others. Ideally all workers should receive what they deserve, but the reality is that we depend on the company’s money to opt in.

As you can imagine, all this can become really frustrating and exhausting, and you need to be mentally ready for it. The reason why I’m saying all this is because most of us think (specially in our early years) that promoting is a synonymous of success, and sometimes that can lead to a clear case of Peter's principle_, so think twice if that’s really what you want.

One last thing I want to mention here is the perspective of what a employer may see in you with your new shiny role. I think this may help understanding some of the points I noted before about what they will expect from you. At the end, they are investing in you (in the same way you are investing your time in them), and they will probably expect bigger outcomes from you from now on. As a rule of thumb, I mentally apply the following rule when I have to think if somebody (or myself) is ready to move on:

  • A junior developer should have an impact his/her personal growth.
  • An intermediate developer should have an impact on his/her team.
  • A senior developer should have impact on his/her department.
  • Upper roles (staff, principal, etc) should have impact on the company.

I know I’m oversimplifying, but that’s what I use to know if I’m ready to move or to even know if I’m doing what I should be doing.

As all of my articles, this is a personal opinion and it’s completely biased, so I expect you to take all this with a grain of salt and I hope can find something useful from it. At the end, anybody’s career growth have a different pace with different outcomes. Don’t try to compare yourself with anybody and focus on enjoying what you do everyday.

.. _Peter's principle:,a%20level%20of%20respective%20incompetence

Profile picture

Written by Ivan Company, a guy who likes to code Follow me on Twitter