Climbing the follow-up ladder: a mechanism, a number or a signal on every rung
Follow-ups are how depth is measured: climb each rung with a mechanism, a number or a signal, never your first answer again.
Predict first
Before you read: predict
Chat design round, minute 24. You said each message takes the next number from a counter row kept per conversation in Postgres, in the same transaction that saves it. The interviewer asks “Why?”, you answer, and she follows with: “And what breaks?” You begin to wonder whether the counter was a mistake.
What do you do next?
The 30-second version
Expect five rungs after a design choice: why, what breaks, what at ten times, how you would know, and what you would change. A follow-up is the interviewer's instrument, not a verdict. Climb each with something new: this system's reason, the first failure and its trigger, the arithmetic, the signal and its threshold, one concrete change.
Follow-ups are how depth is measured: climb each rung with a mechanism, a number or a signal, never your first answer again.
How it works
Step 1 of 11
Analogy: The fire-safety inspector's questions
A fire-safety inspector visits a concert hall. The duty manager says the hall empties through the two side exits. The inspector climbs the same questions every visit. Why those exits? They open straight onto the street; the foyer stair does not. What breaks? If the left exit is blocked, the whole hall uses the right one. And a sold-out crowd ten times tonight's? Each exit clears a fixed number a minute, so emptying takes ten times as long, past the limit. How would you know? The stewards' count at the assembly point against the ticket scan. What would you change? Open the foyer route and rehearse it. A manager who answers "the plan covers that" has restated the plan. The questions are the inspection, not a sign it failed. (The exit rates are the scene's own, not a fire code.)
| At the hall | In the interview |
|---|---|
| "Why those exits?" | Why: this system's reason |
| The left exit blocked | What breaks: the trigger |
| Ten times the crowd, a fixed rate per exit | At ten times: the arithmetic |
| The stewards' count against the scan | How you'd know: a signal |
| Open and rehearse the foyer route | What you'd change: one change |
Breaks down when: an inspection reads from a code and has a pass mark; an interviewer has no single right answer and shapes each rung from what you just said. Wrong inference: "there is one correct reply to memorise for each rung."
In real terms: expect the five rungs, keep your design, and climb each with a cause, a figure or a measurement.
Try it
Answer first, then check. Nothing is saved.
Question 1 of 7
Chat design round. You said the unread badge shows a number kept per member and conversation, bumped on each new message, rather than a COUNT(*) over the messages.
The interviewer asks: “Why?” Which answer climbs that rung?
Question 2 of 7
Chat design round. Your largest group room has 500 members, and at peak each member posts one message every 250 seconds. Every message is pushed to every other member, and the push worker sends at most 1,500 pushes a second. The interviewer asks: “What happens at ten times?”, meaning ten times the members in that room, each posting as often as today.
Rounding to two significant figures, which answer is right?
Question 3 of 7
Chat design round. The requirements you agreed say group rooms of up to 500 members, and your design pushes each message to every member.
The interviewer asks: “What if one room had 50,000 members?” Which answer climbs that rung?
Question 4 of 7
Chat design round. Each new message waits in a queue until the search indexer takes it, and the indexer handles at most 400 messages a second; ignore the indexing time itself. The product rule: a message must be searchable within 30 seconds of being sent.
The interviewer asks: “How would you know you were breaking that rule?” Which answer climbs that rung?
Question 5 of 7
Chat design round. Your design stores read receipts as one row per member per message, so a message in a group shows “Seen by 12”. The interviewer will climb the ladder on this choice.
Write your five answers, one per line, each starting with its label: Why:, Breaks:, At10x:, Detect: and Change:.
Question 6 of 7
Chat design round, a week later. Each message the app sends carries an id the phone makes up, and the server ignores a second message with an id it has already saved.
The interviewer asks: “What happens if we remove that id?” Which answer climbs that rung?
Question 7 of 7
Chat backend at today's peak: 3,000 messages are sent a second. Each message is one API request, two Postgres writes (the message, and the conversation's last-message field) and, on average, four pushes. Capacities: the API tier 40,000 requests a second, Postgres 20,000 writes a second, the push service 100,000 pushes a second.
The interviewer asks: “What happens as traffic grows?” Rounding the multiple to one decimal place, which answer is right?
Go deeper
Pro tip
After a mock, list the follow-ups you were asked under the five rung names. A rung that never appears is one you should raise yourself next time; a rung that appears twice in a row means your first answer to it added nothing.
Related lessons
- Read first: The conceptual answer shape: say it, show how, then stop
- Read first: The trade-off sentence: what it gives, what it costs, why you'd pick it, when you'd switch
- Related: Proactive deep dives: lead the next investigation
- Related: I don't know, but here's how I'd reason
- Related: The debugging narrative: say what each check would mean, then what it ruled out
- Related: Back-of-envelope estimation
Checked against the tools and docs as of 2026-10-07.