Seven steps, each with a budget of minutes.
Requirements, entities, API, estimates, a high-level design, deep dives and a wrap-up. In a 45-minute round, the deep dives get the biggest share.
Write non-functional requirements as adjectives?
Bad: Adjectives
“Scalable, fast and highly available” describes every system and constrains none.
Good: Numbers
“New status on screen within 2 s at p95.” Now you can test it.
2,500
disks, and one design dies in a line
500,000 log entries a second at about 200 IOPS per disk. An estimate is worth doing only when it changes a decision.
Build the design one requirement at a time.
Draw the client, the service and where the state lives, then walk one request through out loud. Reuse boxes; add only what’s missing.
Your deep dive lists three good options for live tracking, then moves on.
The trick
No decision, no credit. Run five beats: problem, options, trade-offs with numbers, decide, monitor, in about six minutes.
The prompt’s words point at the first deep dive.
“Live” means a push channel; “limited seats”, contention; “wallet”, idempotency; “celebrity”, fan-out; “upload”, chunked uploads.
Check the clock three times in 45 minutes
- Minute 15: requirements and API on the board
- Minute 25: a high-level design, traced
- Minute 35: at least one deep dive finished
Remember
Requirements as numbers, a few entities, a small API, estimates only where they decide, a design traced end to end, then two finished deep dives and a short wrap-up.