Interview Coach
An exam room you can open at seven in the evening, anywhere, with a senior interviewer waiting and an honest scorecard at the end.
v1.2 — Lantern palette
System Design · Coding · PM Sense
Case Math · Behavioral
Senior · Staff · Director

Canvas & ink

Void#0B0D0F
Canvas#14171A
Surface#1B1F23
Rule#232830
Secondary#B7BDC6
Primary#E6E9EE
Paper#F5F1E8
Paper 2#ECE6D6

Lantern — the one accent

Lantern#E6B450
Lantern deep#B88934
Lantern soft#F4E1B5
Lantern glow15% / 230,180,80

Rubric ordinals — printed rubric mark, not traffic light

Below bar#A3554D
Approaching#6B6A66
At bar#4F7A5A
Above bar#B88934

Type ramp

Display / serif
Design Twitter's notification fanout
44 / 500 / GT Sectra
H1 / serif
System Design — Staff
30 / 500 / serif
H2 / serif
Framing
22 / 500 / serif
H3 / sans
What a strong answer would have done
16 / 600 / sans
Body
The candidate spent forty-one seconds clarifying scope before stating any quantitative read of the workload. Strong candidates land a read/write ratio inside the first ninety seconds.
14 / 400 / sans
Quote / serif italic
"So I guess my first thought is, like, we'd want some kind of pub/sub here, maybe Kafka, but I'd want to clarify what the read pattern looks like first."
15 / italic / serif
Mono
12:48 · DURATION 28m · SESSION #042
12 / mono

Transcript — the page is a place to read

Drill 042 Design Twitter's notification fanout for one billion users.
Interviewer · 00:00

Take a minute. I'd like you to design the notification fanout for a service at Twitter's scale. Roughly a billion users, a mix of celebrities and ordinary accounts. Start wherever you like.

Priya · 00:14

Okay. So before I go anywhere, I want to clarify the read pattern. Are we optimizing for fanout-on-write — push notifications into a per-user inbox at the moment a tweet is posted — or fanout-on-read, where the inbox is materialized when the user opens the app?

Interviewer · 00:38

Good question. Assume both will be present in the real system. Tell me where you'd draw the line.

Priya · 00:51

The line I'd draw is at follower count. For accounts under, say, ten thousand followers, fanout-on-write into per-user inboxes is fine — that's the ninety-five percent case and the inbox write is bounded. For accounts above that — the celebrity tier — we flip to fanout-on-read and merge their tweets in at read time. The threshold is tunable

Buttons

RECORDING · 02:17
PRESS SPACE TO SPEAK

Inputs & controls

We use this to weight the prescription engine. Never shared.

Pills & tags

Drafting Prescribed for you STAFF SENIOR System design Case math PM sense Behavioral

Rubric pills

Below bar Approaching At bar Above bar
Below bar Approaching At bar Above bar

Drill row — the library is a list, not a card grid

Design Twitter's notification fanout
Read/write asymmetry, celebrity tier, push vs pull, idempotent delivery.
System design STAFF 35m last attempted 4d ago
Estimate revenue for a coffee chain in Lisbon
Top-down sizing, segmentation, sanity check against tourist vs resident traffic.
Case math SENIOR 25m never
Tell me about a time you disagreed with your manager
STAR framing, signal on judgment vs deference, recovery from the disagreement.
Behavioral STAFF 15m 2 weeks ago

Prescribed strip

Prescribed for you · based on your last three sessions
Restate the read/write ratio inside ninety seconds
Framing drill · 12m
Design rate limiting for Stripe's public API
System design · Staff · 30m
Recovery — finishing on a confident recommendation
Behavioral · 15m

Cards

Stripe onsite — June 18
Two system-design rounds, one behavioral, one hiring manager.
18 DAYS · 9 SESSIONS THIS PREP
Last session — Notification fanout
24 May, 7:48pm · 28 minutes · 4 follow-ups
At bar Framing

Paper — the reading surface for drill detail & scorecard

Scorecard · Dimension 1 of 5

Framing

Approaching 2 OF 4 STEPS ON THIS DIMENSION

You opened with a clarification — a strong move — but you spent forty-one seconds before stating a quantitative read of the workload. Strong candidates land a read/write ratio inside the first ninety seconds. Without that anchor the rest of the answer drifts; the interviewer has nothing to push you on except the absence of the number.

00:14 → 00:42YOU SAID

"Okay. So before I go anywhere, I want to clarify the read pattern. Are we optimizing for fanout-on-write — push notifications into a per-user inbox at the moment a tweet is posted — or fanout-on-read, where the inbox is materialized when the user opens the app?"


What a strong answer would have done

State the ratio upfront. "At a billion users with a power-law follower distribution, this is read-dominated — call it twenty reads per write at the median user and a hundred at the celebrity tier." Then clarify. The number is the anchor that lets the interviewer trust the rest.

Session history table

Drill Track Bar Duration Framing Signal Recovery Date
Notification fanout (Twitter)System designStaff28m24 May
Rate limiting Stripe's APISystem designStaff31m22 May
Coffee chain in LisbonCase mathSenior24m20 May
Disagreed with your managerBehavioralStaff15m17 May

Competence chart — sparse, editorial

Framing over twelve sessions

Framing Signal Recovery — strongest
AT BAR
WK 1WK 4WK 8WK 12

Scratch surface — system-design scribbles, captured to the scorecard

client edge LB write API Kafka (tweets)
fanout worker (followers < 10k)
celebrity bypass → merge-on-read
inbox cache (per user) read API

Alerts & toast

Scorecard ready
Your last session was scored against the Staff system-design rubric. Three drills have been queued for tomorrow.
Connection slowed
Voice round-trip is currently 1.8s. We can continue, or switch to text mode and resume on a faster network.
Microphone is muted at the OS level
We can hear silence on the input. Check your system input device, or switch to text mode.
SESSION SAVED · SCORECARD GENERATING

Empty state

Run two more sessions to see the trendline
A competence chart needs three data points to mean anything. Pick a drill from the library when you're ready.