When you first get a new job you are usually busy learning the ropes, getting to grips with the domain and trying to show everyone you know what you are doing.
Once you are comfortable though, most developers will have their sights set on a promotion. Whether it be that coveted Senior title or the Staff and Principal levels, there is always something to aim for.
Climbing up the career ladder as a software developer is often easier than other professions, especially at the lower levels. You don't have to wait for someone to leave to get promoted, it's based on a combination of skill and experience.
Over the years I have helped several developers get promoted and there is a process to it that anyone can follow.
🔬 Understand how promotions work at your company
The promotion process at companies varies quite a bit depending on the size and maturity of the company.
Small companies will likely have an informal review process where it is usually up to the manager to decide whether you get promoted or not.
As companies get bigger though they generally need more structure to the review process. Promotions are usually decided by a committee of managers rather than left to the discretion of a single manager.
Most companies will carry out a review process either annually or biannually. In the latter case, promotions are usually limited to once a year, although there are always exceptions to this.
If you are pursuing a promotion it is important that you understand what you are up against so that you can prepare.
🤑 Why do you want a promotion?
This might seem like an odd question to ask in an article written to help you get a promotion, but it is important.
Most engineers looking to get promoted are doing it for one reason only - money 💰.
More money is always good, isn't it?
Usually, unless you are being paid below market rate, no company will give you more money to do the same amount of work.
There will always be more responsibilities at each level, and it is important to make sure that you are comfortable with what they are before pursuing a promotion.
At the lower levels, this might include:
- Mentoring others
- Being more active in the technical direction of the product
- Being part of the interview process for new engineers.
At the higher end, this will include being a line manager, taking responsibility for deliverables and answering to the business when deadlines aren't achieved.
The expectations increase as you go up the career ladder. In some cases, the expectations at the Staff level are so high that developers get stuck as a Senior for the entirety of their careers.
If your decision to go for promotion is about more money but you otherwise enjoy your job and responsibilities, then it might be worth looking at other options to increase your income beyond a promotion.
Such as:
- Starting a side hustle
- Investing
- Switching companies
There are many ways to increase your earnings beyond taking on more responsibility at work. Make sure you subscribe to my newsletter if you haven't already as will be covering more ways for developers to make money in the future.
🗺️ Plan for your promotion
If you are adamant that you want that Senior or Staff title and the responsibilities that go with them, then you need to plan for it in advance.
Most companies have what they call competency profiles which show the expected experience and responsibilities at each level.
Take a look at your current level and work out where you think you stand.
It is important that you are honest with yourself here. There are no prizes for inflating your abilities. If you want that promotion then you need to be realistic about the areas where you are lacking.
For each of the areas on the competency profile, you need to come up with at least one example of how you have achieved that requirement.
If you can't think of any examples then it is likely that you haven't reached it yet and this is an area you need to improve on.
Once you have gone through your current level, the next stage is to do the same again but for the level above.
Promotions are given to those that are exceeding the expectations of the current role. So you should be able to tick off and give examples of most of the next level up as well.
Don't worry if you can't tick off everything, this is what you are working towards. What is important is that you identify the gaps that you need to fill in the coming months before the next review cycle.
💬 Discuss with your manager
Whether your promotion is at your manager's discretion or it is down to a committee that your manager is a part of, you need to have your manager on your side.
Discuss with your manager your goal of being promoted. Go through the competency profile with them and see if they agree with your current level and examples.
There is often a bit of creative interpretation when it comes to ticking off the requirements. Your manager should know whether you have done enough in the eyes of the review board to mark it as completed.
With your manager's help, you should be able to put a plan together on the areas that you need to improve on and what you can do to achieve that.
Hopefully, you already have a regular 1:1 with your manager, if you don't, ask for one. This should be at least every couple of weeks and it gives you a chance to review your progress and get feedback on what you can do to improve.
🥇 Keep a log of your achievements
There is nothing worse than sitting down to write your self-assessment and just staring at a blank page, not knowing what to write.
It happens to the best of us. No matter how busy the last few months have been since your last review, you just can't think of what you have achieved.
This is why it is incredibly important to keep a log of everything you have accomplished throughout the year. Whether it be a presentation you gave to the team, a new feature that you took the lead on or a junior engineer that you took under your wing.
If you don't write these things down when they happen, chances are you will forget when it comes to writing your review. You will want to kick yourself later when you remember after submitting it.
When you are writing down your achievements, try and match them up to the competency profile of the next level. Look for any areas where you are lacking examples and think about what you might be able to do over the next few months to achieve them.
Now put yourself in the shoes of your manager. If you can't remember everything you have achieved over the last 6 months how do you expect your manager to? Especially when they might have another 8 reviews to write for the other people on your team.
Writing a list of achievements will not only make your life easier, but it will also make your manager's life easier when they are trying to fight your corner to get you that promotion.
😎 Be realistic when comes to getting a promotion
I have seen a lot of highly ambitious software developers in my time that just want to climb that career ladder as quickly as possible.
They aren't happy climbing one rung at a time they want to take bigger steps and jump several levels in one leap.
It is important to be realistic when it comes to progressing your career as a software developer.
Yes, when you are junior, the promotions do tend to come around quicker. At some companies, if you are good, it is possible to get promoted every year up to senior engineer.
Once you go beyond senior though, it gets harder to get promoted to the next level. The jump from senior to staff or engineering manager isn't based on your abilities.
The higher levels come with more responsibilities but in most cases, there has to be a need for someone to have those responsibilities.
You can't become an engineering manager if there isn't a team for you to manage. Even staff engineers are expected to work across multiple teams and you don't always need multiple staff engineers on one team.
There are often budgetary constraints at the higher levels as well, which may decrease your chances of getting promoted. This can be especially true if promotions come with additional stock options as well.
Many companies also have an unspoken quota for promotions.
If they have too many people up for promotion once the review process has been completed, then a few may get knocked off the list. Even if you are exceptional, if you already received a promotion last review cycle then you will likely have to wait till the next review cycle.
👋 Get yourself noticed
When I say "get yourself noticed", I don't mean wearing brightly coloured shirts every day or streaking through the office 🙈.
However, if you want to increase your chances of getting promoted people need to know who you are. This means speaking up in meetings, volunteering for work when you get a chance ("Who wants to lead today's standup? ....") and engaging with other teams in the business.
This might be controversial but going into the office so people can see you in person can also help as well.
Consider the following 2 people:
- George - works 100% remotely, is highly skilled, and works exceptionally well.
- Simon - works 2 days in the office, and 3 days at home, is highly skilled, works exceptionally well, and has spoken in person to most of the managers over Friday drinks.
If they had to pick between George and Simon to get promoted, all things being equal, Simon is more likely to get the new job title and pay rise.
If you are serious about getting a promotion you have to be willing to play the game that others are playing. It is not about being false but just about being sociable. People can't help but have a bias towards people that they know and like. It is just human nature.
😊 Be helpful and kind to other people
One of the best ways for people to like you at work is to be helpful. As they say, you never know who is going to end up being your boss in the future.
On your way to the top, don't elbow other people who get in your way. Life is not a zero-sum game, even if someone else gets the promotion you wanted, there will be other opportunities for you in the future.
What some engineers forget, is that a big part of the review process is the peer review. If any of your colleagues write an unfavourable review it is unlikely that you will get a promotion.
Try and go out of your way to be helpful even if you haven't anything to gain. You will enjoy your job a lot more if isn't a big competition and a race to the top.
🥸 Fake it to you make it
OK, I don't mean you should be "fake", remember what I just said about being kind.
By "fake it", I mean act as if you already have that promotion you are striving for.
- What would a senior engineer do in your position?
- Are there any more responsibilities you can take on?
- Can you lend a hand when an issue arises even if it is "not your job"?
If you have already been working at a senior level, then it is going to be a lot easier for your manager to recommend a promotion when the time comes.
👎 Promotions aren't guaranteed
Notice the title of this article isn't: "Software Engineering Promotions - Guarantee that Next Promotion".
There are no guarantees when it comes to promotions. It is not like an exam that if you pass you will get promoted. There are other factors outside of your control that affect whether you get that new title or not.
If a manager says that your promotion is guaranteed, they are lying.
These are some of the things that could affect your chances of a promotion that are outside of your control.
- 📉 Company performance - if the company is performing badly they are unlikely to promote people and increase its expenses.
- 💼 Stagnant job market - companies often promote engineers to ensure that they don't jump ship and go work for a competitor. If there is a lack of opportunities due to a slowed job market then the incentive isn't quite the same, as they know employees will be reluctant to move.
- 🤝 Lack of opportunities - at higher levels you often need to have shown that you can lead a team or work across multiple teams. There isn't always a suitable opportunity to do this which makes ticking that last box in some cases impossible.
The saying "enjoy the journey" has become a bit of a cliche but there is some truth to it. You need to enjoy the work that you are currently doing.
If you aren't yet an engineering manager or staff engineer, try and enjoy the craft of programming, as you won't be doing as much of it when you do get to the top of the ladder.
Those of us who have become managers often miss the simple life of writing code, rather than protecting the team from the fallout of some business failure or internal politics.
Enjoy your work and your positivity will shine through and you will be closer to that promotion without even realising it.
❤️ Picks of the Week
📝 Article - Why AI Won't Cause Unemployment. Interesting thoughts from Marc Andreessen on why AI isn't going to cause mass unemployment anytime soon. Although his argument doesn't really apply to software development which is part of the blue lines on his chart.
📝 Article - How to Draw Invisible Programming Concepts: Part I. I plan to add some hand-drawn diagrams to my newsletters although trying to draw programming concepts is as hard as it sounds. This is a great read from Maggie Appleton. To be fair her whole blog/digital garden is a feast for the eyes.
👨💻 Latest from me
🎬 YouTube - Domain Driven Design: What you need to know. In this week's video, I have tried to cover the main concepts behind domain-driven design enough to use it in your next project.
📚 Book - Homo Deus Book Notes. I am slowly getting around to publishing my book notes. If you are thinking of reading Homo Deus by Yuval Noah Harari but haven't got around to it, check out my book notes for a summary.
💬 Quote of the Week
Unless you're using social media to earn a living, drive traffic to something more meaningful, build a brand, or effect real change in the world, you should ask yourself what social media is doing for you.
From Someday Is Today (affiliate link) by Matthew Dicks. Resurfaced with Readwise.
Even though I am trying to grow my YouTube channel and social following, I have a love-hate relationship with social media. I love that I can interact with my favourite authors and have them reply. On the other hand, most of my Twitter feeds are people trying to sell something.
I am looking forward to getting access to BlueSky, at least like a newsletter it is a decentralised following that can't be taken away from you. Time will tell though whether it ends up being as spammy as Twitter.
📨 Are you looking to level up your skills in the tech industry?
My weekly newsletter is written for engineers like you, providing you with the tools you need to excel in your career. Join here for free →