Why system design mocks are different
In coding rounds, correctness is binary.
In system design rounds, quality is judged by:
- scoping skill
- trade-off quality
- operational realism
- communication structure
You can pass with an imperfect architecture if your reasoning is strong.
You can fail with a "fancy" architecture if your reasoning is weak.
The 45-minute simulation template
0-5 min: Clarify requirements
- who are users?
- key user actions?
- scale assumptions (DAU, QPS, data growth)?
- latency and availability targets?
- consistency requirements?
5-10 min: Rough estimation
- read/write QPS
- storage growth
- bandwidth hot paths
10-20 min: High-level architecture
- core services
- data stores
- cache/message queues
- API boundaries
20-35 min: Deep-dive critical path
Pick the hardest path (feed fanout, payment flow, chat delivery, etc.) and go deep:
- data model
- partitioning
- failure handling
- consistency trade-offs
35-42 min: Bottlenecks + reliability
- hot keys/shard imbalance
- cache failure
- regional outage
- backpressure strategy
- observability
42-45 min: Recap
- summary of decisions
- explicit trade-offs
- what you'd build next
This time structure prevents common failure: spending 30 minutes in vague diagrams.
Scoring rubric (use for each mock)
Score each 0-5:
| Category | 0-1 | 2-3 | 4-5 | |---|---|---|---| | Requirement clarity | no scope control | partial | crisp scope + assumptions | | Scale estimation | missing/wrong order | rough but usable | strong, drives design choices | | Architecture quality | ad hoc | workable | clean services + data boundaries | | Trade-off analysis | hand-wavy | some trade-offs | explicit decision matrix thinking | | Reliability thinking | ignores failures | basic failover | realistic failure mode mitigation | | Communication | chaotic | understandable | organized, interviewer-friendly |
Track trend across 8-10 mocks, not one session.
Question bank for mock rotation
Rotate archetypes, not just products:
- Read-heavy: news feed, timeline, recommendation serving
- Write-heavy: event ingestion, telemetry pipeline
- Consistency-critical: payments, inventory, booking
- Real-time: chat, collaborative docs, multiplayer events
- Analytics/reporting: dashboards, aggregation pipelines
If all your mocks are "design Twitter," your preparation is narrow.
Evaluation prompts for the interviewer/peer
Ask your mock partner to score and comment on:
- Did I ask enough clarifying questions?
- Did my estimates meaningfully influence architecture?
- Did I identify a bottleneck before being asked?
- Did I explain consistency choices clearly?
- Did I reason about failure and recovery, not just happy path?
The feedback prompt quality matters as much as the mock itself.
Common mistakes in system design mocks
Mistake 1: Overbuilding too early
Starting with multi-region active-active before defining requirements.
Fix: baseline first, then scale/failure upgrades.
Mistake 2: Naming tools without design logic
"We'll use Kafka + Redis + Cassandra" without role clarity.
Fix: every component must answer:
- what responsibility does it own?
- why this choice over alternatives?
Mistake 3: No data model
APIs and architecture are vague without entities and keys.
Fix: define primary objects, IDs, and access patterns early.
Mistake 4: Ignoring operations
No mention of metrics, tracing, or alerting.
Fix: include at least:
- saturation metrics
- error rates
- latency percentiles
- key business metric
Trade-off matrix habit (senior signal)
When choosing between alternatives, state matrix out loud:
| Option | Pros | Cons | Use when | |---|---|---|---| | Push feed fanout | fast reads | expensive writes | moderate fanout | | Pull feed | simpler writes | read amplification | high-celebrity skew | | Hybrid | balanced | higher complexity | mixed traffic profile |
This demonstrates judgment, not memorization.
Reliability drill (must include in mocks)
For every mock, answer:
- What fails first at 10x traffic?
- What fails first during region outage?
- What data can be eventually consistent?
- What data must be strongly consistent?
- What is rollback strategy for bad deploy?
If you cannot answer these, architecture discussion is incomplete.
Communication script for strong delivery
Use this sentence flow:
- "I'll first clarify scope and constraints."
- "Given these assumptions, here is baseline architecture."
- "Now I'll deep-dive the critical path."
- "Here are bottlenecks and mitigations."
- "Trade-off summary and next improvements."
This creates a predictable narrative and reduces interviewer cognitive load.
4-week mock plan
Week 1
- 2 foundational designs (URL shortener, rate limiter)
Week 2
- 2 distributed dataflow designs (feed, event pipeline)
Week 3
- 2 consistency-critical designs (payments, reservations)
Week 4
- 2 mixed mocks with strict timing + peer scoring
After each week, write one "mistake pattern" note and one "improvement action."
What "interview ready" looks like
You are ready when:
- you can structure any unknown prompt in three minutes or less
- your estimates are directionally sound and useful
- your design choices are justified by constraints
- you discuss bottlenecks proactively
- you can recover cleanly when challenged
System design readiness is composure plus reasoning.
Final takeaway
Mock system design should train:
- structured ambiguity handling
- explicit trade-offs
- operational realism
- calm communication
Do 8-12 deliberate mocks with scoring and review, and your real interviews become controlled discussions instead of improvisation.