Disagreeing with a tech decision from your lead
How to handle disagreement with a senior or principal engineer's technical direction β the communication framework, when to escalate, and how to make your case without damaging trust.
Why This Question Matters
"Tell me about a time you disagreed with a technical decision" is one of the most revealing questions in senior/staff interviews. The interviewer is testing: Do you raise concerns or stay quiet? Do you do it constructively or destructively? Do you commit once a decision is made, or continue lobbying?
Most candidates answer this wrong in one of two ways:
- Capitulation story: "I disagreed but went along with it." (No signal.)
- Confrontation story: "I proved they were wrong." (Wrong takeaway.)
The right story shows you influenced a decision through evidence, understood the other side's constraints, and committed to the outcome whether or not you got your way.
The Cognitive Frame You Need
Technical decisions are almost never purely technical. Your lead chose that approach because of:
- Constraints you may not know about: political pressure, migration cost, team skill set
- Experience you don't have: "We tried the other way two years ago and it failed here's why"
- Risk tolerance they're calibrated on: they may know the org's tolerance for breaking changes better than you do
Your disagreement might be technically correct and still wrong in context. The question "Am I right?" is less useful than "What are we each optimizing for, and why do they differ?"
The Communication Framework
Step 1: Understand before advocating
Before stating your position, make sure you understand the reasoning behind theirs:
"Can you help me understand the reasoning behind this approach?
I want to make sure I'm not missing something before I share a concern."
This signal is huge. It shows intellectual humility and often surfaces constraints that change your view entirely.
Step 2: State your concern in terms of outcome risk
β "I think using a single-node Redis for this is wrong."
β
"I'm worried that a single-node Redis here creates a SPOF for the
checkout flow β if Redis becomes unavailable, users can't complete
purchases. Can we talk about the failure mode?"
Lead with the risk to the outcome, not your preference. "I think" invites debate about opinions. "This creates a failure mode" invites discussion about facts.
Step 3: Propose alternatives, not just problems
β "This approach is going to have problems."
β
"I see two options that might avoid the failure mode:
(1) Redis Sentinel with automatic failover β adds ~2 hours of setup
(2) Making the checkout flow degrade gracefully without Redis β adds a sprint
Are either of these worth the tradeoff given our timeline?"
Always bring alternatives. If you can't propose an alternative, you're identifying a problem without helping solve it.
Step 4: Commit once the decision is made
Once you've made your case and the decision is made β whether or not your view won β commit fully. Half-hearted commitment undermines team cohesion and creates a self-fulfilling prophecy where the approach fails because you stopped caring.
"I still have some reservations, but I understand the constraints.
I'm committed to making this work. Let's make sure we have good monitoring
on the Redis availability metric so we catch any problems early."
The "Disagree and Commit" Nuance
The Amazon "disagree and commit" principle is often misunderstood. It doesn't mean "swallow your objections silently." It means:
- You raised your concerns clearly, with evidence.
- The decision was made by the appropriate person with that context.
- You now execute with full effort, not diminished effort.
The key: "commit" only applies to reversible decisions. If the decision is irreversible and potentially catastrophic (data loss, security vulnerability, legal risk), escalation is the right path β not silent acceptance.
Escalation: When Is It Right?
Most technical disagreements should resolve between the two people. Escalation is appropriate when:
- The decision creates irreversible risk: data loss, regulatory non-compliance, security vulnerability
- You've had the conversation twice and can't resolve it
- The scope of impact extends beyond the immediate team (platform, infrastructure, multi-team)
When you escalate, frame it as seeking input, not appealing a ruling:
"I want to make sure I'm thinking about this correctly. We're aligned on
the approach being single-node Redis, but I'm still concerned about the
checkout failure mode. Can we get [tech lead / principal / architect] to
weigh in on the failure mode risk?"
Story Structure for the Interview
The disagreement (30s): What decision, what technical concern, and why did it matter?
How you raised it (1 min): Did you understand their reasoning first? What was your framing?
The resolution (1 min): Did they change course, or did you come to understand their constraints? What was the final decision?
The commit (30s): What happened after? Did you execute fully? What was the outcome?
Red Flags the Interviewer Is Watching For
| Behavior | What It Signals |
|---|---|
| Asked too many clarifying questions before raising concern | Passive-aggressive |
| Raised concern in a group meeting to embarrass the lead | Politically unaware |
| Never raised the concern at all ("I just did what I was told") | Won't advocate for quality |
| Kept lobbying after decision was made | Can't commit; will undermine execution |
| Had no alternative, just a complaint | Problem-identifier, not problem-solver |
Quick Recap
- "Technical disagreement" questions test whether you advocate for quality, communicate constructively, and commit once a decision is made.
- Understand before advocating β surface their constraints before proposing your alternative.
- Frame concerns as outcome risk, not personal preference.
- Always bring at least one concrete alternative with the tradeoff quantified.
- Disagree and commit β but know when the severity of risk requires escalation rather than acceptance.