System Design

#The self-mock kit

The reading is finished. This page is the one you use.

Every other page here is input. This one produces output: a number, a recording, and a specific thing to fix. Without that loop, more reading changes nothing.


#1 · Why score at all

Because "that felt okay" is not information. After an unscored practice attempt you know only whether you enjoyed it. After a scored one you know that you never stated a trade-off's cost, or that you were still scoping at minute 22 — and those are fixable.

A number you gave yourself is worth more than a feeling, even when the number is rough. It is comparable across attempts, which a feeling is not.


Interactive simulation — needs JavaScript.


#2 · Setup — 3 minutes

[ ] Pick a prompt you have NOT read the write-up for
        -> question-bank.html, or pick blind from the eight shapes
[ ] Timer: 45 minutes. Visible. Do NOT pause it.
[ ] Stand at a whiteboard, or a blank digital canvas. NOT an editor.
[ ] Start a screen + audio recording. Phone camera propped up works.
[ ] Close every tab. No handbook, no search, no notes.
[ ] Speak out loud the entire time, to an empty room.

The recording is non-negotiable and it is the part people skip. You cannot hear your own filler, hedging, or silence while producing it. You can hear all three on playback, immediately.

No lookups. An attempt with a tab open measures your reading speed. The interview does not have that tab.


#3 · The scorecard

Score each 0–3 immediately after, before watching the recording. Maximum 24.

#Dimension0123
1ScopingStarted designing immediatelyAsked one or two questionsAsked about scale and core actionsWrote in/out on the board and confirmed it
2EstimationSkipped itDid maths that changed nothingOne number changed a decisionNumbers drove ≥2 decisions, stated aloud
3StructureInterviewer would have had to steerDrifted, recoveredFollowed the phases looselyRan the clock; announced each transition
4JustificationNamed technologies, no reasonsSome choices justifiedMost choices tied to a requirementEvery major choice traced to a stated requirement
5DepthStayed at box levelOne component at level 2One at level 3Level 3 on two, and offered the interviewer a choice
6Trade-offsNone statedNamed without resolvingResolved with a reasonVolunteered the cost of your own choice, unprompted
7FailureNever reached itMentioned redundancyWalked the diagram killing boxesAlso named the assumption the design leans on hardest
8CommunicationBoard unreadable; long silencesFollowable with effortClear, mostly narratedNarrated throughout; board readable at minute 45

Add it up.

ScoreWhere you areDo next
0–8Not yet a roundDrill the framework alone. Re-run the same prompt tomorrow
9–14Recognisable, thinYou are reciting. Attack depth (5) and justification (4)
15–19Would pass some loopsPush trade-offs (6) and failure (7) — the two most-skipped
20–24Above the barNew shapes, not repeat prompts. Book a real mock

Row 6 at a 3 is the single strongest predictor. Volunteering what your own choice costs — before anyone asks — is the behaviour that separates hire from strong hire, and almost nobody does it unprompted.


#4 · Watch the recording — 20 minutes

This is the highest-value part of the whole exercise and it is uncomfortable. Watch at 1.5×, with a pen.

[ ] Count the silences longer than 10 seconds.        ______
[ ] Count "um", "like", "basically", "sort of".        ______
[ ] Timestamp when you first drew a box.               ______   (target: ~13 min)
[ ] Timestamp when you started the deep dive.          ______   (target: ~25 min)
[ ] Timestamp when you first mentioned failure.        ______   (target: ~40 min)
[ ] Did you ever say a number and then use it?         Y / N
[ ] Did you ever say "which costs me..."?              Y / N
[ ] Is the board readable in the final frame?          Y / N
[ ] Count choices with no "because".                   ______

The three timestamps are the most diagnostic thing on this page. They are objective, they take seconds to collect, and they tell you exactly which phase is eating your clock. Nearly every failed round is visible in them.


#5 · Symptom → fix

What you observeActual problemFix
First box after minute 20Over-scopingHard-stop scoping at 5 minutes, even mid-question
Never reached failureDeep dive ran longWatch the clock at 40; stop adding, start killing boxes
Many silencesThinking without narratingSay the uncertainty out loud — it is scored
Choices with no "because"Reciting an architectureFor each box ask "what requirement demanded this?"
Only level 2 depthBreadth reflexPick one component; force three levels before moving
No trade-off costsThe commonest gapAdd "which costs me…" to every decision, mechanically, until it is habit
Unreadable boardNo layout planScope box top-left, flow left-to-right, leave the lower third empty
Ran out of things at minute 30Scoped too smallAdd a requirement yourself: "what if this were multi-region?"

#6 · A four-week schedule that produces reps

Twelve attempts. Not twelve read pages.

WeekAttemptsFocus
13Framework and clock. Repeat the same prompt on days 1 and 3 — the improvement is the point
23New shapes. Target depth: three levels on one component
33Target trade-offs and failure. Book one real mock this week
43Full dress rehearsal. No new material

Rules that make it work:

1. Never do the same prompt twice in a week -- you are testing recall,
   not memory of yesterday.
2. Score EVERY attempt. An unscored attempt is practice you cannot compare.
3. Read the write-up only AFTER attempting, and mark only where you
   DIFFERED. Places you matched teach nothing.
4. One fix per attempt. Chasing all eight rows at once fixes none.

#7 · The twelve prompts

Do not read the write-up first. Grouped so consecutive attempts exercise different shapes.

#PromptShapeWrite-up
1URL shortenerRead-heavy key lookupdesign
2Rate limiterAlgorithms, distributed countingblock
3News feedFan-out, hot keysdesign
4ChatStateful connectionsdesign
5Ticket bookingStrong consistencydesign
6Web crawlerQueues, politeness, dedupdesign
7Video platformPipelines, bandwidth economicsdesign
8Ride-sharingGeospatialdesign
9E-commerceBreadth + inventory correctnessdesign
10Key-value storeDistributed systems, undisguiseddesign
11Logging & monitoringWrite-heavy, cardinalitydesign
12Collaborative editorConflict resolutiondesign

If you only manage six: 1, 3, 5, 8, 9, 10. They cover six of the eight shapes.


#8 · The tracker

One row per attempt. A spreadsheet is fine; the columns are the point.

date | prompt | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | total | first box | deep dive | the ONE fix
-----|--------|---|---|---|---|---|---|---|---|-------|-----------|-----------|-------------
     |        |   |   |   |   |   |   |   |   |       |           |           |

Sort by column, not by total. A flat total hides everything. Seeing that row 6 has been 0 or 1 for six consecutive attempts tells you precisely what to work on — and that pattern is invisible in an average.


#9 · When to stop practising

You are ready when, across three consecutive attempts on unseen prompts:

[ ] total >= 18 every time
[ ] first box drawn before minute 15, every time
[ ] you reached failure analysis, every time
[ ] row 6 (trade-off costs) scored >= 2, every time
[ ] fewer than three silences over 10 seconds

Consistency matters more than a peak. One good attempt is luck; three in a row on prompts you had not seen is a skill.

And the thing this page cannot give you: a real person interrupting. Self-mocks train structure, depth and narration. They cannot train being pushed back on, being asked something you did not prepare, or being wrong in front of someone. Book one real mock. Everything here makes that mock more useful; none of it replaces it.