Why the Better Engineer Did Not Get the Promotion
The engineers who keep getting promoted aren't always the best coders in the room. They're the ones who can walk into a meeting with three competing opinions and a skeptical VP and walk out with a decision everyone can live with. Most engineers treat that like a skill that belongs to someone else.
Most engineers hear this idea and immediately get defensive.
You spent years grinding through data structures, distributed systems, language internals, and architectural patterns. The idea that some soft skills could matter as much as all of that feels like a betrayal of the deal you thought you signed up for.
Here is what nobody tells you early enough. The engineers who keep getting promoted are not always the best coders in the room.
They are the people who can walk into a meeting with three competing opinions, a vague product requirement, and a skeptical VP, then walk out with a decision everyone can live with.
That is a learnable skill. And most engineers treat it like it belongs to someone else.
When Technical Skill Stops Being the Differentiator
Getting hired is mostly a technical bar to clear.
You pass the coding screen, survive the system design round, and get the offer. Technical ability is what gets you through the door.
But once you are inside, something changes.
At the senior level and above, almost everyone around you is technically capable. They can write clean code. They understand tradeoffs. They have opinions about databases, deployment strategies, and architecture.
The technical bar has already been cleared by everyone in the room.
So when a staff role opens up, or leadership is deciding who owns a critical initiative, they are not sitting around debating who writes the most elegant abstractions. They are asking a completely different set of questions.
Who do people trust? Who can take a messy problem and make it legible? Who can align multiple teams without creating a political disaster? Who can explain complexity without making everyone else feel lost?
Technical skill stops being the differentiator the moment everyone around you has it too. Most engineers hit this wall and spend years wondering why nothing is moving. They keep getting better technically, and nothing changes. That is usually why.
Why the Less Technical Person Got the Staff Role
This is the one that stings.
You have watched it happen. Someone gets promoted to staff or principal, and your honest assessment is that you are the stronger engineer. Maybe you are right. And yet there they are, in the bigger role, getting pulled into the conversations that actually matter.
Many engineers quietly interpret this as politics.
The reality is that organizations promote people who reduce confusion, not just people who produce output. Those are not the same thing, and most engineers spend years assuming they are.
That person probably made their thinking visible. They wrote design docs that were clear, not just technically thorough. They gave updates that told people what mattered without burying the lead in implementation details. When disagreements arose, they pushed back in ways that moved the conversation forward rather than grinding it to a halt.
Over time, leadership stopped just trusting their output. They started trusting their judgment.
Meanwhile, you may have shipped excellent work that nobody fully understood. Your PRs were strong. Your architecture decisions were sound. But when the VP asked for a quick explanation of the tradeoffs, you gave a ten-minute technical walkthrough that left everyone more confused than when you started.
Not because you are bad at your job. Because nobody ever told you that translating your thinking is part of the job, too.
Eight years as a senior engineer is not always a story about technical stagnation. More often, it is a story about communication never being treated like a skill worth developing.
The Moments That Actually Matter
Promotion decisions are not made during performance reviews.
They are made in dozens of small moments spread across months and years, and most of those moments are communication moments.
There is the design doc that either builds confidence or creates more uncertainty. The Slack message that either unblocks someone immediately or sends them into a thirty-minute rabbit hole. The meeting you ran that ended with clarity and next steps versus the one that ended with everyone quietly wondering what just happened.
There is the moment you disagreed with a product decision and either made a compelling case that changed the outcome, or vented frustration in a way that got you quietly removed from future planning conversations.
None of these moments feels career-defining when they happen. But they compound.
Leadership is constantly building a mental model of who they trust with ambiguity, hard decisions, and high-stakes work. Every time you communicate clearly, you strengthen that model. Every time you make people work too hard to understand you, you weaken it.
The engineers who get invited into the room when something important is being decided are not always the most technically impressive people available. They are the people who have repeatedly demonstrated that they can be understood and bring others along with them.
Communication Is Compression
This is the part most engineers misunderstand.
Communication at senior levels is not about sounding smart. It is about reducing cognitive load for everyone around you.
The best staff engineers can hold enormous complexity in their heads and then explain it in a way that feels simple without becoming inaccurate. That is not dumbing things down. That is compression.
Anyone can make a problem sound complicated. The people organizations actually depend on are the ones who can preserve important details while removing unnecessary friction in how others understand the problem.
That skill becomes incredibly valuable as the scope increases. Because eventually your job stops being about writing the code yourself and starts being about helping entire groups of people make better decisions together.
This Is Not a Personality Thing
The word "communication" makes engineers think of charisma, extroversion, and people who love presenting to large groups.
That framing lets a lot of people off the hook. "I'm just not a people person" becomes a permanent excuse to avoid developing a skill that would fundamentally change their career.
But communication in engineering is mostly written. It is the design doc that gives enough context for someone to understand the problem before diving into the solution. The incident summary explains what happened, why it happened, and what changes resulted. It is the Slack update that is two sentences instead of two paragraphs because you respected the fact that the person reading it already has twelve other things going on.
It is also knowing how to disagree without turning disagreement into damage. Making your case clearly, acknowledging what is valid in the opposing view, pushing back without torching the relationship, and helping the room reach a decision rather than a stalemate.
Engineers who can do this become incredibly valuable. Engineers who either never push back or push back in ways that make everyone defensive become liabilities at senior levels, regardless of how good their code is.
If you cannot explain a tradeoff to a non-technical stakeholder without making them feel stupid, that is just what the role requires above a certain point. The sooner you treat it that way, the better.
Yes, You Still Have to Ship
A great communicator who cannot ship is useless. Nobody is arguing that communication replaces technical competence.
But that is not the problem most engineers actually have.
The engineers who stall out are usually not stalling because they write bad code. They are stalling because nobody understands how they think. Because when ambiguity increases, and pressure gets high, nobody feels confident in their judgment. Because they cannot bring a room to a decision.
The technical skills are already there. They have been there for years. The missing piece is making them legible to the people who decide what you get trusted with next.
Start Treating It Like One
The engineers who end up running things almost universally treat communication as something worth getting better at. Not a personality trait they either have or do not have. A craft.
That means writing more and asking for feedback on the writing. Paying attention to whether your design docs create clarity or confusion. Noticing when a meeting you ran ended well versus when it drifted, and asking yourself why. Practicing the two-sentence explanation of a complex problem until you can actually do it without losing the important parts.
None of this feels as satisfying as solving a hard technical problem.
But it is the work that separates the engineers who plateau from the ones who keep moving.
Good Developer. Stuck Career. is for engineers doing solid work who can't figure out why it isn't translating into momentum. If this post landed, that's the right next read.