A key reason you aren’t getting promoted as a software engineer
And how to avoid getting stuck in the trap of unclear 12 month career goals
If you're like many software engineers, you might assume that producing excellent code will automatically lead to a promotion and a pay raise.
But how can you be sure that your significant contributions will be appropriately recognized and lead to your promotion and raise?
Relying on this assumption leads to frustration and disappointment when your efforts aren't recognized or rewarded as you expect.
I want to suggest a different way to think about this common scenario, which should give you more control over whether you're promoted.
Set specific goals, and preferably one overarching goal at a time. Instead of hoping for a promotion, define the direction you want to take and the specific outcome you want to achieve in the next 12 months.
Understand and articulate your reasons for wanting this outcome.
Think again about the scenario above that I'm betting you've already experienced in your software engineering career.
Let's call this the "code and hope" approach to being promoted. You come into work each day, you try and do your best work using all the latest techniques and software tools you've been learning about on the internet, and you hope that eventually, but hopefully not after too long, you'll receive recognition and be promoted!
My response to this approach is: good luck. Yes, it sometimes just happens, but why give the company you work for so much control over when you get to move forward in your engineering career and when you get a raise?
Thinking that this is the only way to move forward is not your fault either. Many technology companies do not clearly define their promotion criteria and process, leaving engineers like you in the dark, fending for yourself and feeling frustrated.
And because everyone's so busy and only “interested” in your career during annual reviews, it's easy to get stuck in this frustrating reality!
You might ask, what are my viable alternatives to this? After all, you're not the manager of your team, part of the HR department, or the CEO of the company.
Your alternative is to construct a well-thought-out goal that's specific, and to figure out if it's achievable in your current role and with your current manager. Your goal must be far more specific than "I hope to be promoted and work with more interesting technologies on more interesting products."
To set a clear and effective promotion goal, tailor it to the specific direction that you want to head in or a specific outcome that you want to achieve in the next 12 months of your career.
If you don't know a direction you want to head in yet, then try volunteering for new kinds of software tasks until you've come across something specific that you're excited to dive into deeper.
After you've articulated your specific 12-month overarching goal, you also need to determine if you can realize this goal on your current team with your current manager and find alignment with your manager's team goals over the next 12 months. Finding this alignment is something I'll cover in a future article.
If you can't set a clear and specific goal right now, there's no need for concern. Specific and effective goal-setting is not easy, but it is a skill you can improve over time with intentional practice.
I'll illustrate clear goal-setting related to a promotion by combining examples I've heard from my coaching work with clients (details altered to respect privacy).
Non-specific example goal: I want to be promoted because I've been a mid-level software engineer for a number of years and I want to do much cooler stuff like architecting useful software and working on greenfield products, and of course, I think I'm underpaid - so I'm overdue for a raise anyway!
Can you relate to feeling this way in your own career and maybe you've set a career-direction goal like it?
Do you see what its limitations are to achieving a promotion?
It's not stated specifically enough to be actionable, therefore it's not an achievable outcome, and therefore it's not a goal.
Here are important questions that can help us turn it into a more specific and achievable goal:
What exactly are you working towards and how would you know if you got there, or are already there, today?
Is it necessarily true that a certain number of years practicing as a mid-level software engineer means you're ready to be promoted? What specific skills (technical or soft) might you be practicing daily that are necessary for your new responsibilities after promotion?
You want to do "cooler stuff" like "architecting useful software." Do you understand what you’re asking for - this is potentially a huge set of new responsibilities. Is there something specific about architecting that seems exciting to you? Is there something specific that comes with being the "software architect" on your team that you really want to be responsible for? Can you describe a more narrow version of "architecting useful software"?
Have you spent any of your own time architecting software outside of work? It's important to get a taste for architecting real software so you have greater confidence that you'll enjoy being responsible for doing it.
How do you know you're currently underpaid? Yes, you can look up the industry average pay for the region you live in. But are you ready to tell a compelling story to your manager about why you should be paid the same or above your region's average? Go beyond the mentality of just because I deserve it. You probably do, but it won't get you a raise.
Be mindful not to shortchange yourself by skipping these kinds of questions to examine your specific situation.
You may realize that you don't yet have enough experience to know if you'd enjoy software architecture as your primary responsibility.
The best way to come to know is by doing software architecture. So you may consider reserving intentional time to build your own project where you get to practice being the architect and making these kinds of decisions. Don't know what to build? Join someone else's project or contribute to an open source project you love using.
You may come to realize that what you're really looking for are new opportunities to take the lead on designing and implementing significant new product features (a common thing I hear from engineers). You've grown really bored of fixing bugs and doing more mundane work on your team and you really would enjoy this kind of senior engineer opportunity. This is a great first step to being responsible for architecting software systems.
Great, what comes next?
I encourage you to review your latest performance review, especially your manager's suggested areas of improvement. You want to look for any areas that your manager wanted you to work on that may be related to leading a new product feature.
Perhaps your manager emphasized your need to improve on finishing the work that you are assigned and more consistently driving these tasks to completion as often as you can. And in a recent 1:1 they've also hinted at you being ready for a more significant role on the team once you're able to consistently demonstrate this.
We can work with this. I'll assume your manager also included a few specific actionable areas to focus on improving. If not, politely hold your manager accountable to providing these for you.
After taking some time to reflect on your manager's review suggestions and having had a follow-up 1:1 conversation with them, you feel much more confident that you can articulate what areas to strengthen and why you want to strengthen them.
A more specific version of your original goal that also clearly states your motivation:
I want to be promoted to senior engineer on my team so that I'm in a position to make design and implementation decisions on significant new product features and decide which parts I want to work on myself. I've enjoyed the few small opportunities that I've had to design and implement new product features and I feel ready for a new level of challenge.
To demonstrate your readiness, over the next 12 months I'll place special focus on consistently practicing the following during every team sprint:
I won't sign up for tasks before I've had a chance to become familiar with the work ahead of time (i.e. asking better questions during team refinement discussions and making sure these are well-written and informative user stories)
When I'm assigned a new task, I'll ensure the definition of done is well-defined and I understand every word of it ahead of diving in
When I don't understand, I'll practice asking clarifying questions to my team's product stakeholder who I'll also work on getting to know better by grabbing coffee together
When I do get stuck, I understand that I still own completion of the task, but I'll intentionally collaborate with other engineers on your team to drive it to completion
I'll proactively and straightforwardly communicate to my team when I think the task is too complex to complete by the target date and provide thoughtful reasoning
It's time to prepare for another important career conversation with your manager and is something I'll dive into in a future article. As a quick preview, this is something I refer to as co-creating a promotion plan with your manager that you both agree to and something we’ll do in Part 2 of my Refactor SE program.
But even before having this conversation, understand what you have in front of you in your clearly articulated goal.
You have your center of gravity, your main focus in everything that you'll prioritize first and relate as much of your work to as you can over the next 12 months.
And you can have much greater confidence that everything you do related to this goal is bringing you closer to where you want to be, what you want to be stronger at doing and you understand your motivation behind it.
This demonstrates the power that setting one main overarching goal at a time can bring to you and your career.
Articulating a clear goal for your promotion is really important and tricky for most engineers. In fact, clear goal articulation is such a recurring theme working with engineers that it's become the most fundamental skill we work on when you work with me in coaching.
If you're not great at articulating goals for yourself in your engineering career, that's ok - it takes practice.
I'd love the opportunity to help you set clear 12 month career goals to achieve your next promotion.
This is something I help you to master in every single session when we work together in my Refactor SE coaching and mentorship program.
Feel free to book an intro call if you’d like to learn more about how Refactor SE can increase the likelihood of you being promoted. This is an investment in yourself that pays for itself. I've helped engineers achieve one-time pay raises with their promotions ranging between $10k - $75k.
If you already know that you want to get started you can simply book your first session starting with Part 1 and we’ll get started right away with articulating your goal(s) for your next promotion.
I can’t wait to meet you!
-Jim
P.S. Have a specific question about setting effective overarching goals for the next 12 months in your career? Feel free to ask them in the comments or private message me here on Substack!