Question presented to candidate: "Someone on the team rewrote the support assistant's system prompt, and separately we want to move to a newer model version. Both look better when we try a few examples. How would you make sure neither change quietly breaks something that works today?"
What a strong answer should cover:
- A fixed, versioned golden set run on the baseline and the candidate with everything else pinned (model snapshot, judge, temperature, retrieval index), compared case by case as a paired comparison, not as two separate averages
- Measuring the noise floor first: run the baseline against itself, run each case several times, and only call a difference a regression when it is larger than that noise (a paired sign or McNemar test, or confidence intervals on the difference)
- Per-slice results and flipped-case diffs, because an unchanged average can hide one slice that collapsed; plus must-pass cases that block on any failure
- Model upgrades are bigger than prompt edits: pin dated snapshots, re-run the full suite, re-check the LLM judge, compare format adherence, refusals, length, tool calls, latency and cost, and expect to re-tune the prompt
- Offline evals are necessary but not sufficient: shadow or canary traffic with live quality signals before full rollout, and every regression found becomes a permanent case
Clarifying questions expected:
- How large is the golden set, and is it sliced by the categories that matter (language, product area, customer tier)?
- Is the current model pinned to a dated snapshot or an alias that can move?
- What is the cost of a regression compared with delaying the change?
Code / implementation expected: Optional β a regression gate that compares baseline and candidate per slice with a noise check and a significance test.