Promoting Engineers Fairly
Promotion recognizes a level someone is already operating at, on evidence others can see.
A promotion should ratify reality, not gamble on potential. The healthiest way I have found to think about it: by the time you promote someone, they should already be operating at the next level, and the promotion simply makes the title match what the work already shows. That framing keeps promotions fair, keeps them grounded in evidence, and protects both the engineer and the team from a title that outruns the capability behind it.
Promote into a level someone already occupies#
The trap is treating promotion as a bet on what someone might become with a bigger title. Titles do not create capability; they recognize it. So the question I ask is not "could this person grow into the next level?" but "is this person already, consistently, doing the work of the next level?" If the honest answer is yes, the promotion is overdue. If it is "not yet, but soon," the right move is to name what is missing and support them toward it, not to promote on hope and hope it works out.
Anchor the decision in demonstrated capability across dimensions#
Promotion judgments need a shared language, or they collapse into politics and recency bias. I anchor them in a growth framework with multiple dimensions and proficiency levels, the same one I use for everyday growth conversations; see the six-dimension framework for engineer growth. The progression criteria are expressed in terms of that framework rather than in tenure alone.
Moving up to a senior level, for instance, means an engineer is at minimum demonstrating across all the dimensions and clearly leading in at least one. Moving up to a principal level raises the bar further, leading in the craft dimension and in the team-and-values dimension, plus at least one more, not just leading in one isolated area. The specific thresholds matter less than the principle behind them: promotion tracks breadth of demonstrated capability, not a single standout skill or a single good quarter.
Use tenure as a floor, never as the reason#
Time in role has a place, but only as a floor. It is reasonable to expect, say, a minimum tenure in the current role and a minimum total experience in the craft before a given promotion is even on the table, because some capabilities genuinely take reps and time to develop. But clearing a tenure floor is necessary, not sufficient. Promoting someone because "it has been a while" is how you end up with titles that do not mean anything. The tenure check answers "are they eligible to be considered?"; the capability evidence answers "should they be promoted?"
Corroborate with peer and lead signal#
Self-assessment and a manager's read are both valuable and both biased. The cross-check is the view of the people who actually work alongside the engineer. A simple, powerful question to ask: do other engineers already see this person as operating at the next level? If the peers who pair and review with someone every day do not yet see them there, that is real information, and it usually means the promotion is early. Pull in direct feedback from the people closest to the work, including whoever leads their delivery and their technical direction, so the decision rests on more than one vantage point.
Make the evidence concrete#
"Trust me, they're ready" is not evidence. There are a few practical ways to make capability visible and discussable:
- Have the engineer review the dimensions and self-evaluate where they think they sit, then use that as the start of a conversation rather than the conclusion.
- Let them demonstrate craft directly, through a code kata or real work they are doing, so the craft dimension is shown, not asserted.
- Pair with them on a kata focused on the specific capability in question, so a leader sees the skill first-hand.
- Encourage them to gather documented feedback from the people they work with, so the corroboration is written down and not just remembered.
The common thread is that the case for a promotion should be something you can point to, not just feel.
Avoid the two classic failures#
Two failure modes do the most damage. The first is the surprise: an engineer who has been doing senior-level work for a year and finds out at review time that nobody noticed. Continuous, transparent growth conversations are the antidote; a promotion should be the unsurprising next step in an ongoing dialogue. The second is the reach: promoting someone on potential or tenure, then watching them and the team struggle under a title that outpaces the work. Promote into demonstrated reality, corroborate it with the people around them, and the promotion will hold, for the engineer and for everyone who has to rely on what the title now claims.