Pushing Back on a Design or Implementation

The skill isn't being right. It's disagreeing in a way that changes the outcome and keeps the relationship.

This is the behavioral question in the code-review track, and it's really an influence question wearing a technical hat. Anyone can leave a “this is wrong” comment. The senior move is to disagree in a way that actually moves the decision, doesn't burn the author, and holds up when you turn out to be partly wrong yourself. The interviewer wants a real story where you pushed back on a design or implementation you believed was a mistake — and they're grading how you did it: whether you led with data, proposed alternatives, separated blocking concerns from taste, escalated cleanly when needed, and committed once the call was made.

Flow of pushing back well: understand first, lead with data, separate blocking from taste, propose alternatives, escalate cleanly, disagree and commit, preserve trust
How to disagree well: understand and steelman their view, lead with data over opinion, separate blocking from taste, propose alternatives, escalate cleanly when stuck, then disagree-and-commit — with the relationship intact.

What this question is really testing

Whether you can hold a technical bar without being a jerk or a pushover. It probes your ego, your judgment about which hills to die on, and your ability to build alignment rather than win arguments. The trap answers are the two extremes: the person who never pushes back (no bar) and the person who pushes back on everything and can't let go (no judgment, damaged relationships). The signal is a story where the process of disagreeing was clean, the outcome improved, and the working relationship survived — ideally got stronger.

How to answer What the interviewer is looking for

A worked example (CARL)

CARL = Context, Actions, Results, Learnings. Spend most of your words on Actions — the specific moves only you made — and never skip Results or Learnings.

Context

A senior engineer on a partner team proposed a redesign of our ad-events ingestion path to cut end-to-end latency. The core idea was good, but the design dropped the per-stage instrumentation and the dead-letter handling that the existing pipeline had, in the name of “keeping the hot path lean.” It also assumed the upstream producer delivered events exactly once, so it removed the dedup step. The design doc had momentum — a director had praised the latency numbers — and the author was well respected. I was the reviewer on the first implementation diff and I believed shipping it as drafted would trade a latency win for a reliability and debuggability regression we'd pay for in a SEV.

Actions Results Learnings

Common follow-ups

Tell me about a time you pushed back and turned out to be wrong.

How to answer

How do you push back on someone more senior than you?

How to answer

What if, after all that, the decision goes against you?

How to answer

How do you keep pushback from damaging the relationship?

How to answer
Where to get your data (Meta)