The engineer's guide to saying no
Refusing work badly is a career problem. Refusing it well is one of the most valuable things a senior engineer does.
Most engineers are bad at saying no. They either cannot do it — and end up with a commitment they cannot meet — or they do it in a way that reads as obstruction, and get routed around.
Both failures come from the same mistake: treating "no" as a verdict rather than as the opening of a conversation about trade-offs.
what the request actually is#
When someone asks you to build something, they are not asking for the thing. They are asking for an outcome, and the thing is their guess at how to get it.
That means the highest-value response is frequently not yes or no. It is a better guess.
"You are asking for a real-time dashboard. What decision are you going to make from it? If it is 'should we page someone,' an alert is better than a dashboard and it is a day of work instead of a month."
That is a no to the request and a yes to the outcome, and nobody experiences it as obstruction.
Ask what the outcome is before you evaluate the request. Half the time the request evaporates.
the four honest noes#
"Not this, that." The alternative approach that achieves the same outcome for less. This is the best one and it requires actually understanding the problem.
"Yes, and here is what it displaces." Not a no. A statement about capacity, which is factual and is the other person's decision to make.
"I can do that in this cycle. It means the API migration slips to next quarter. Which do you want?"
This is enormously more effective than "we do not have time," because it hands the prioritization decision to the person whose job it is, with the information they need.
"Yes, after X." A sequencing objection. "We can build this on top of the new data model. Building it on the old one means we build it twice."
"No, and here is the risk I am flagging." The real no, reserved for correctness, security, legal, or ethical problems. Use it rarely so that it lands when you do.
"I am not going to implement this the way it is specified because it stores plaintext credentials. I will implement it with a token exchange, which takes three extra days. If that is unacceptable, I want the decision documented and made by someone who can accept the risk."
That is a hard sentence to say and it is the sentence the job sometimes requires.
the ones that do not work#
"That is not possible." Almost always false, and the person will find someone who says it is. Say "that would take six months" instead, which is the real constraint and is checkable.
"That is a bad idea." Without an alternative, this is just friction.
Silence. Not responding is a no that damages trust, because it looks like you did not care rather than that you disagreed.
"Sure" followed by not doing it. The worst one. It destroys your reliability, which is the only currency you actually have.
the timing#
Say no early. The cost of a no rises with every day of planning that assumed a yes.
An objection raised in the design review is a discussion. The same objection raised two weeks before launch is a crisis, and people will remember that you could have said it earlier — correctly.
If you have doubts, voice them while they are cheap.
the part about capital#
Every no spends something. Every yes earns something. If you never say yes, your noes stop landing, because you have become the person who says no.
Deliver reliably on what you agree to. That is what makes the refusal credible when it matters. Engineers who are trusted to ship get enormous latitude to push back, and engineers who are not, do not — regardless of whether they are right.
the hardest case#
Sometimes you are overruled on something you believe is wrong, and it is not a correctness or ethics issue — it is a judgment call and someone with the authority made a different one.
Disagree and commit is the right practice here and it is genuinely hard. Say your piece once, clearly, in writing. Then build the thing well.
Do not build it badly to prove a point. Do not relitigate it in every standup. Do not say "I told you so" if it goes wrong — the written record already said it, and gloating costs you the ability to be listened to next time.
You will be wrong about some of these. That is the actual reason to commit gracefully: you are not always right, and a culture where disagreement is followed by good-faith execution is one where being wrong is survivable for everyone, including you.
— Dom, February 28, 2026