Where to Start
Once you’ve settled into your job and feel that you are ready for the next step, it can be hard to figure out what to do next to get a promotion to advance your career.
The advice I’m going to give here is about the steps to take regardless of level, so I won’t talk so much about specific actions (i.e., learn to use X language, or to use Y technique) but more about the meta of how to figure out what you should be doing to get your next promotion. In the ideal world we hope that if we do the work and do it well, the promotion will just follow. But that isn’t always the case so let’s talk about the steps to working towards your promotion.
The Importance of Your Manager
The first thing that is important to understand is the importance of your manager. Though there are some exceptions (notably Google, where the process was employee driven at the time I worked there) at most companies the person who will put you up for, and defend, your promotion will be your manager. If your manager doesn’t think you are ready for a promotion, why would they ever put you up for promotion? This naturally brings us to our first step…
Align With Your Manager on Your Current Level
Your first step should be to be on the same page with your manager on the expectations of your current level. To manage your career effectively you should be regularly asking for feedback, but if you haven’t been so far, now is your chance! The last thing you want is to think you are ready for the next level, but your manager thinks you aren’t meeting the expectations of your current level. If you do get some feedback that you aren’t ready to level up yet, that’s okay. Work on filling those gaps and check back in until you are consistently meeting all expectations of your current level. It’s generally not sufficient to have just one project or milestone where you perform well, consistency is key.
Align With Your Manager on Expectations of the Next Level
Once you are sure there are no gaps in expectations at your current level, find out what the expectations are of the next level. At most companies you aren’t promoted when you are performing consistently at your current level; it’s when you perform at the next level regularly. Some companies will have a list of qualifications for the next level written down in some kind of career guide, but often that is not sufficient. There are a few mitigating circumstances that make things a bit more complex (particularly at larger companies). For example, since there is often a fixed promotion budget only so many people can be promoted. This means even if you meet all of the requirements, that may still not be enough because performance is relative to your peers. Situations like this is why it is especially important to align with your manager, since they will have insight into just how high the bar is.
Know the Opportunities for Promotion
Once you know the expectations of your level, and the next level, the next important piece of information to know is when you can actually get promoted. At a smaller company this may be whenever you are ready, but big companies often have promotion schedules. In more extreme cases, the end of the fiscal year may be the only time companies do promotions. In other cases, they can be done every quarter. Knowing when promotions occur can help you create a plan of when to be ready.
Find a Project That Shows Your Level of Impact.
Regardless of your level, nothing sets you up for promotion better than having a high impact project. This can be anything from a big refactor, a feature, a project to drive unit testing, or improving team process. Ideally the project should be just enough of a stretch for you to show impact at the level you are trying to target, but not so much of a stretch that you fail or burn out. The last thing you want is to get to the next level completely exhausted and unable to continue performing.
Nothing makes my job easier as a manager than when I can point to a recent, high impact project that an individual has worked on, mic drop, and then walk away. It’s hard to argue against results (as long as you didn’t leave dead bodies along the way). One of the reasons it is important to know the timing of promotions is because of recency bias. Ideally you should always care about the quality of your work, but in some places, recency matters, and it is important to make sure a project lands just in time for promotion (and not after). As unfortunate as it is, I have been on teams where the entire first half of the year was often forgotten, and everyone focused on what happened in the last months and recent performance. I have often also been on teams where promotions were denied so that they could wait to see a big project complete. Timing can be important especially at companies that have infrequent promotion cycles.
Focus on What Matters
It’s important to really focus on what matters for your level. I have seen engineers focus on their coding skills, when the level they are aiming for says they should be working on the design and architecture skills, and I’ve seen engineers who have awesome program management skills but gaps in their testing abilities. Those extra skills can be a bonus, but if you don’t have the fundamentals down it’s going to be hard to make it to the next level. Try not to spread yourself too thin, and make sure you are doing things that actually count.
Take Notes
Nothing is worse than going to write up your review or promotion justification only to realize you don’t remember what the heck you were doing 6 months (or days in my case) ago. Keep a running document of your big achievements and projects so that you don’t forget any. If you are feeling extroverted, it can also be a great idea to occasionally ask for feedback and put that into the running document as well. In general, writing up the details after each project keeps the ideas fresh in your mind and allows you to elaborate on the details of your impact accurately. If you have a successful project or someone finds something you have done helpful ask for quote and put that in the doc as well. This makes it easier to have concrete examples during review time without the pressure of trying to remember what happened.
Keep Talking
The most important theme throughout all of this is to keep talking and communicating with your manager. Having constant feedback is the only way to adjust your performance to make sure there aren’t any surprises. Make it clear to your manager that you feel you are ready to take on the next level, so that they can support and advocate for you. A great manager will make sure you know where you are performance-wise but unfortunately most managers will wait until the review period to deliver feedback, at which point it’s too late to make changes.
What Happens If I Don’t Get Along With My Manager?
If you don’t get along with your manager and can’t resolve your differences, you should probably find a new team. If that’s not possible, your next best choice is to try and build a relationship with your skip level manager, or one of your manager’s peers. However, your life will be difficult with a manager who isn’t advocating for you. Unless there are other aspects of your team that you really feel are irreplaceable, your career may stagnate if you don’t have someone advocating for your success. More often than not people will hold onto a job (for various reasons) longer than they should. Remember, at the end of the day your career is your responsibility, and you have to do what is best for the long term even if that causes discomfort in the short term.
Conclusion
These are the steps I have generally followed in my own career and used to help the people I’ve managed progress steadily through their careers. Skills matter and nothing replaces just plain being awesome at your job, however it is also important to think about impact and visibility to make sure you get the right people on your side advocating for you at the right time. Unsure about the career stages in software development? Check out my post on the topic.