Every week I talk to a senior engineer with the same story: great performance reviews, real technical depth, six-plus years of experience — and no movement. No promotion, inconsistent interview calls, vague feedback. The instinct is to sharpen technical skills. It's almost always the wrong fix.
I've sat on both sides of this. As the engineer wondering why the next level wasn't coming, and later as the hiring manager and calibration-room voice deciding who got it. From that second seat, the pattern is obvious in a way it never is from the first.
The stalled senior engineer is rarely the weakest engineer in the room. Often they're among the strongest. Their code is clean, their systems hold, their teammates trust them. And yet, when the promotion conversation happens, the case is somehow thin. When they interview, they clear the coding rounds and stumble somewhere fuzzier — the debrief says “not enough signal on scope” or “unclear leadership”.
That gap between how good you are and how legible your goodness is — that's the stall. It has three causes, and none of them is technical.
Your narrative still describes the engineer you were two levels ago. Your resume lists tasks. Your LinkedIn says “built features”. In conversations, you talk about the thing you shipped, not the decision you made or the outcome you moved.
Positioning debt accumulates quietly because nobody asks you to fix it. Your manager knows what you do; your team knows. But promotion committees, hiring loops, and skip-levels don't — they see the artefacts. If the artefacts describe a mid-level engineer, you get treated like one.
This is the impact nobody above your manager can see. You unblocked three teams last quarter; the org saw a shipped feature with someone else's name on the launch mail. You made the architecture call that saved a rewrite; the doc has no author. Senior work is disproportionately invisible work — glue, judgement, prevention — and prevention has no launch date.
The fix is not self-promotion. It's making the work legible: writing the one-page decision record, presenting the trade-off, being the name attached to the outcome. Legibility is a skill, and most engineers were never taught it.
Staff or manager? Stay or move? Deep or wide? Ambivalence about the next step reads, from the outside, as lack of ambition. A promotion case for someone who hasn't decided what they're growing toward is hard to write — for you and for your manager. Interviewers pick it up too: the candidate who can't say what they want in three sentences is a risk.
Unresolved decisions leak into everything: what projects you take, what you say in 1:1s, how you answer “where do you see yourself”. Resolving the decision is often the single highest-leverage move.
When you're stalled, grinding problems feels productive — and it is measurable, which is comforting. But it spends your scarce evening hours on the one thing that isn't the bottleneck. Worse, it reinforces the identity of the individual contributor who proves themselves by solving puzzles, exactly the identity your next level asks you to grow out of. I don't do DSA prep with clients. There are excellent resources for that; it's just not what's blocking them.
A useful diagnosis names one bottleneck, not five. In a Career Diagnostic session I look at three things: how you're currently positioned (the artefacts), where your impact is invisible (the map of who knows what you did), and which decision you're avoiding. Nine times out of ten the stall is concentrated in one of the three. You leave with that named, in writing, and a next step you can act on this week.
If you recognise yourself in this — strong reviews, no movement — the fix is not to become a better engineer. You already are one. The fix is to become a legible, decided one.
The Career Diagnostic is one high-intensity session to name your specific bottleneck — positioning, visibility, or narrative — plus a written summary and a clear next step. $149. I reply within 24 hours.