The myth of the self-solving problem
Scene
It's week three of a five-week project. Priya has hit a wall. The design she was given depends on a service that another team owns — and that team is unresponsive. She has pinged them twice on Slack. Nothing. She figures she'll try once more on Friday. Meanwhile she's blocked. Meanwhile the deadline isn't moving.
Her manager asks in standup: "How's it going?"
Priya says: "Making progress. Few things to sort out."
Week five arrives. The project is late. The post-mortem asks what happened. Priya explains the blocker. Her manager, trying hard not to sound frustrated, says: "Why didn't you tell me sooner?"
Priya doesn't have a good answer.
This scene plays out in every engineering org, at every level, every week. And it's not a story about a bad engineer. Priya is smart, conscientious, and genuinely good at her job. The problem is a belief she never examined: that escalating means failing.
Most engineers carry this belief invisibly. They absorbed it from school, where asking for help was weakness. From a culture that celebrates the lone hero who figures it out. From a fear of looking incompetent in front of their manager. So they wait. They try one more thing. They send one more Slack message. They hope the problem dissolves.
Problems don't dissolve. They compound.
The hard truth: waiting too long to escalate is not professionalism. It is a failure of communication dressed up as self-sufficiency.
But here's the flip side — and it matters just as much. Escalate too early, too often, or with the wrong framing, and you earn a different reputation: the engineer who can't handle ambiguity, who needs hand-holding, who turns every speed bump into a crisis. That's equally damaging.
The skill isn't "escalate" or "don't escalate." The skill is knowing when, how, and in what frame to escalate. Done right, escalation is one of the most visible, trust-building things a senior engineer does. Done wrong, it's noise.
The engineers who get promoted aren't the ones who solve every problem silently. They're the ones who know exactly when a problem needs more leverage — and ask for it cleanly, confidently, and with a plan already formed.
When to escalate — and the cost of getting it wrong both ways
There's a simple test. Ask yourself: "Is there anything my manager could do in the next 24 hours that would meaningfully unblock me?"
If yes — escalate. Today. Not Friday.
That's the core signal. But most engineers apply a much murkier heuristic: they escalate when they feel uncomfortable enough. Which is too late. By the time discomfort becomes pain, you've already lost two weeks.
The two failure modes
- Deadline slips by the time help arrives
- Manager is surprised — surprises erode trust faster than almost anything
- You look like you hid the problem
- You lose time you can never recover
- Post-mortem puts you on the wrong side of the narrative
- You look like you can't tolerate ambiguity
- You waste your manager's time on solvable problems
- You train people to expect hand-holding
- You burn trust credit on low-stakes issues
- You lose the "independent" label
Notice that both failure modes damage trust. This is why the middle path matters so much — and why it needs to be a deliberate skill, not a gut feeling.
The three conditions for escalation
Escalate when any one of these is true:
-
You are blocked and can't unblock yourself in a reasonable timeframe"Reasonable" means: you've tried at least two approaches independently, and it's been at least 24 hours. Not two hours. A good rule of thumb: if you've lost more than half a day, the clock has started.
-
A deadline is at riskThe moment you can see a scenario where a committed date slips, your manager needs to know. Not when it's certain. When it's possible. This is not panicking — this is giving the org time to make a decision. Time is the most precious thing you can give your manager. Don't hoard it.
-
A decision needs authority you don't haveYou've hit a genuine trade-off — a technical vs. product tension, a security vs. speed decision, a resourcing conflict — and the people who need to sign off aren't responding to you because you don't have the org weight to compel them. This is a classic case where escalation isn't failure. It's the correct tool.
"I'll try once more and see what happens." This sentence has killed more projects than bad architecture. Define in advance: how many times will you try on your own, and for how many days, before you escalate? Write it down. Stick to it.
The framing that separates complainers from leaders
Two engineers walk into their manager's Slack. Both have the same problem: a dependency on another team that's unresponsive. Watch how differently they frame it.
Engineer A
"Hey, I'm blocked on the auth service team. I've pinged them twice and they haven't gotten back to me. Not sure what to do here. It's starting to affect the timeline."
Engineer B
"Hey — flagging a risk. I need a response from the auth service team on their token refresh API by Thursday to hit our Friday milestone. I've pinged them Monday and Wednesday with no response. I see two paths: (1) you or their EM could loop in to unblock at the team level, or (2) I implement a short-term workaround that we replace in Q3. I think option 1 is faster. What do you want me to do?"
Same problem. Completely different signal. Engineer A is describing their emotional state. Engineer B is managing a project.
Engineer A leaves their manager with work to do: figure out the problem, figure out the options, figure out the timeline, figure out what to decide. Engineer B does all of that work before typing the message. The manager's only job is to pick one of two clearly described options.
The senior engineer's escalation sounds like a recommendation. The junior engineer's escalation sounds like a complaint. The content is identical. The framing is everything.
The anatomy of a clean escalation
Every escalation has four parts. In order:
-
The flagState clearly that you're raising something. "Flagging a risk," "Heads up," "Need input on a blocker." This sounds obvious but it isn't — many engineers bury the signal in narrative. Your manager is scanning dozens of messages. Make yours easy to triage.
-
The facts, compressedWhat is blocked, since when, what you've already tried. Three sentences max. Do not narrate your journey. Your manager doesn't need to relive your week — they need to understand the current state.
-
The optionsTwo or three concrete paths forward. Each option should have a one-line trade-off. "Option A is faster but carries X risk. Option B is safer but needs a week longer." If you can only see one path, say so — but make clear you've looked for others.
-
Your recommendationTell them what you think they should choose. Junior engineers often skip this because they're afraid of being wrong. But giving a recommendation — even a tentative one — signals that you're a thinking engineer, not just a messenger. Your manager can override it. That's fine. The point is you have a view.
Don't escalate by venting. "This other team is terrible" or "no one is communicating" or "this process is broken" — even if all true — make you sound like a problem, not a solver. Keep emotion out of it entirely. State facts. Present options. The facts will speak for themselves.
Don't escalate to blame. The moment your escalation sounds like you're assigning fault, it stops being an escalation and starts being a political move. Everyone in the room will go defensive. Nothing will get resolved.
Managing up without being political
"Managing up" has a bad reputation because people confuse it with flattery, self-promotion, or playing games. It is none of those things. Managing up is simply this: helping your manager do their job better by giving them the information they need, when they need it, in a form they can use.
Your manager has a job. Part of that job is resource allocation, risk management, and making sure their team delivers. They cannot do any of that well if they don't know what's happening. When you withhold information — even with the best intentions — you are making their job harder. Managing up fixes that.
What your manager actually needs from you
Here's what most engineers don't realize: your manager is probably managing five or six other engineers simultaneously. Each of those engineers has their own blockers, risks, and status. Your manager is running a portfolio of work, not a single project.
In that context, what they need from you isn't updates — it's signal. The difference:
- "Worked on the auth module, still in progress"
- "Had a few meetings, getting aligned"
- "Made some progress, will continue tomorrow"
- "Things are mostly on track"
- "Auth module: on track for Friday. No risks."
- "Alignment call done. Agreed on approach X. Unblocked."
- "75% done. One open dependency on team Y — watching it."
- "Risk: team Y hasn't confirmed capacity. Flagging."
Signal is brief, concrete, and actionable. It respects your manager's time. It makes them look good when their manager asks them for status. When you consistently give signal instead of noise, something valuable happens: your manager starts to trust your judgment. They stop micromanaging. You get more autonomy. This is the managing-up flywheel.
The "no surprises" contract
The single highest-value commitment you can make to your manager is this: I will never surprise you in a meeting. Never let your manager find out about a problem, a slip, or a risk from someone other than you. Not from their manager. Not from a stakeholder. Not in a status review.
Surprises feel like betrayals, even when they're not. They destroy the mental model your manager has built about you. Every time you let your manager be surprised, you subtract from a trust account that took months to build.
Give them a 30-second Slack message first. Then they walk into the meeting already knowing. They can even help shape the narrative. You've turned a vulnerability into a collaboration.
Your manager's success depends on the information you give them. When you manage up well, you are not being political. You are being a good partner. The engineers who get the most autonomy are the ones their managers trust the most — and trust is built on a foundation of never being surprised.
The escalation ladder
Not every problem needs the same escalation channel. Using the wrong channel for the wrong problem is like treating a sprained ankle with surgery — you'll fix it eventually, but you'll cause a lot of unnecessary damage getting there.
There are four rungs on the ladder. You almost always start at the bottom.
-
Rung 1: Async message (Slack, email)For blockers that are real but not yet urgent. You've been stuck for a day. You've tried independently. You need input but there's no immediate deadline pressure. The message follows the Flag-Facts-Options-Recommendation structure. This handles 70% of all escalation situations.
-
Rung 2: The documentFor complex blockers that require context your manager needs to internalize before they can help. A one-pager: what's happening, what's at risk, what you've tried, what you recommend. This isn't bureaucracy — it's a gift. You've done the thinking. They can read it in five minutes and show up to any conversation fully armed. Use this when the problem is real, the stakes are medium, and you need a decision in the next two or three days.
-
Rung 3: The meetingFor blockers involving multiple stakeholders, genuine trade-offs, or where misalignment is the root cause. A meeting forces synchronous decision-making. But do not call a meeting without sending the document first. "Let me share context — here's a doc I wrote up — and I'd love 20 minutes to align." This way people arrive informed, the meeting moves fast, and you look like someone who respects people's time.
-
Rung 4: The skip-levelReserved for situations where your direct manager is the blocker, or where an organizational issue needs senior leadership attention, or where you've exhausted the first three rungs and nothing has moved. Use sparingly. Going to your skip-level for ordinary problems signals poor judgment. Going to them with a well-documented, escalated-properly issue signals maturity. Always tell your manager you're doing it. Never blindside them. "I want to flag this with [skip] since we've been stuck for two weeks — I wanted to give you a heads up first."
Jumping rungs. Going to your skip-level when a Slack message would have done it. Calling a meeting when a doc would have done it. Every time you jump a rung, you burn social capital and signal poor judgment about what a situation requires. Respect the ladder. Start at the bottom. Move up only when the rung below has been tried and failed.
Word-for-word scripts that work
Theory is useful. Templates are better. Here are exact scripts for the five most common escalation scenarios. Adapt the details — keep the structure.
Script 1 — Blocked by another team
"Flagging a blocker. I need [specific thing] from [Team X] to move forward on [Project]. I've reached out [N] times over [timeframe] with no response. If this isn't resolved by [date], we risk [specific consequence].
Two options: (1) You or their EM could apply some pressure at the team level, which I think is the fastest path. (2) I can work around it by [doing X instead], which adds [N days] but keeps us independent. I lean toward option 1.
Let me know how you want to handle it."
Script 2 — Deadline is at risk
"Heads up — there's a scenario where [Milestone] slips. We discovered [specific issue] yesterday. It's not certain, but I want to flag it before it becomes certain.
Current status: [what's done, what's not]. If [dependency X] doesn't resolve by [date], we lose [N days]. Options: (1) Descope [feature Y] and ship on time. (2) Keep scope and slip [N days]. (3) Add [resource Z] to pull it in.
My recommendation is option 1 — [feature Y] can ship in the next cycle. Happy to discuss."
Script 3 — You need a decision that's stalled
"We've been waiting on a decision about [topic] for [timeframe]. The team is blocked on [specific work] until we have it. I want to make it easy to decide — here are the options as I see them:
Option A: [description]. Trade-off: [short description].
Option B: [description]. Trade-off: [short description].
I think Option A is the right call because [single clear reason]. If I'm wrong, I'm happy to be corrected. But I need a decision by [date] or I'll proceed with Option A to keep the project moving — and I'll document the choice."
Script 4 — Going to your skip-level
To your manager first:
"I want to give you a heads up — I'm going to loop in [Skip] on the [issue]. We've been
stuck for [timeframe] and I think it needs their visibility. I don't want to surprise you.
Would you rather do the outreach, or is it okay if I do it?"
To the skip-level:
"Hey [Name] — I want to flag something that I think needs your attention. I've looped
[Manager] in, and I've attached a short doc with context. The short version: [two
sentences]. I think the path forward is [your recommendation]. Happy to chat if
useful — or the doc has everything you need."
Script 5 — Disagreeing with a decision and escalating the disagreement
"I want to flag that I have a strong concern about the direction on [decision]. I've raised it [twice], and I understand the reasoning for the current path. I'm not trying to relitigate it. But the specific risk I'm worried about is [precise risk], and I think it's worth one more round of consideration before we commit.
I'm happy to write up a short doc on the risk and alternatives if that would help. If the decision stands after that, I'll commit fully and we'll never hear about this from me again."
Notice what all five scripts have in common: no blame, no emotion, clear facts, clear options, clear recommendation, clear ask. The person reading them knows exactly what they're being asked to decide and why.
Clarity is a form of respect. When you escalate clearly, you are telling the other person: I value your time enough to do the hard thinking before asking for yours.
The one rule to remember
Everything in this chapter can be compressed into a single principle. If you remember nothing else, remember this:
A problem with no recommendation is a burden. A problem with a recommendation is a conversation. One makes your manager's job harder. The other makes it easier. One signals that you need to be managed. The other signals that you are someone who manages things.
And here is the deeper truth behind all of this: escalation, done right, is an act of leadership. It is how you demonstrate that you understand the full scope of a problem, that you've considered multiple paths, and that you have the judgment to know when you need more leverage than you have alone. That's not a weakness. That's exactly what Staff-level engineers do.
The engineers who get promoted aren't the ones who never escalate. They're the ones who escalate so cleanly, so calmly, and so rarely that every escalation lands like a trusted signal — not a cry for help.
Pick one thing you are sitting on right now — a blocker, a risk, an unresolved decision — that your manager doesn't know about yet. Write the escalation message using the Flag-Facts-Options-Recommendation structure. Don't send it if you don't need to. But write it. Notice how much clearer the problem becomes when you're forced to compress it into four components. That clarity is the point.