System Design Practice Problems
Reading worked breakdowns of system designs teaches you what good looks like. Producing a good design under live pressure with someone watching is a different skill. The canvas below is the practice surface for the second skill: drop components, wire them, pick the tools, defend the SLA. The grader scores against rubric dimensions; multiple correct designs exist for each prompt.
Reading worked breakdowns of system designs teaches you what good looks like. Producing a good design under live pressure with someone watching is a different skill. The canvas below is the practice surface for the second skill: drop components, wire them, pick the tools, defend the SLA. The grader scores against rubric dimensions; multiple correct designs exist for each prompt.
Know the patterns before the interviewer asks them.
How the rubric scores a design
6 dimensions, each with the move that earns the dimension and the move that loses it. Designs that hit 4-5 dimensions pass; designs that miss SLA match fail regardless of other strengths.
Picked a model (batch / micro-batch / streaming) that matches the freshness number stated in the prompt
Reached for streaming because 'real-time sounds impressive' when 15-min batch satisfies the SLA
Estimated low-hundreds / low-thousands monthly cost band; stated when the design would need to change to hit a tighter band
Over-provisioned with no acknowledgment of cost; or never mentioned cost at all
Surfaced late data, schema drift, replay, backpressure relevant to the prompt BEFORE being asked
Only addressed failure modes when the interviewer prompted; or hand-waved 'we'll handle retries'
Picked at-least-once + idempotent (default), exactly-once (when forced), at-most-once (rarely), and stated why
Said 'exactly-once' without explaining the cost or how it's actually implemented
Tools chosen because they match the constraint, not because the candidate used them last year
Cargo-culting from a previous job: Kafka in a 1-source CSV problem; Spark for a 10MB dataset
When the requirement changed mid-round, articulated which part of the design moved and why
Froze when the requirement changed; or restarted from scratch instead of adapting
8 problem families with a worked diagram
Each is a real prompt from interview write-ups. The diagram is 1 accepting design; many other shapes also pass.
[App SDK] -> [S3 hourly] -> [dbt 15-min incr] -> [Snowflake]
↓
[BI dashboard][Postgres WAL] -> [Debezium] -> [Kafka topic]
↓
[Schema registry]
↓
[Sink connector] -> [Snowflake][Txn API] -> [Kafka] -> [Flink job]
↓ ↓
[Feature store] [Rules engine]
↓ ↓
[Model svc] -> decision
↓
[Async audit log][Events] -> [Kafka] -> [Flink stateful]
↓
[Session aggregates]
↓
[Late-data correction job]
↓
[Warehouse][Source A] ─┐
[Source B] ─┼─> [Staging] -> [Reconcile job]
[Source C] ─┘ ↓
[Authoritative]
↓
[Audit + report][App API] -> [Cache] -> [ClickHouse/Druid]
↑ ↑
[Pre-agg per tenant] |
|
[Hot tenant isolation pool]Region A: [Primary] <-async-> [Replica]
↓ ↓
[Reporting] [Reporting]
Region B: [Replica] <-async-> [Standby + log]
[Failover trigger] -> promote replica -> backfill divergence[Legacy ETL] -> [Output A]
↓ extract DAG
[Equivalence test] <-diff- [dbt run] -> [Output B]
↓
cutover when diff < thresholdMost common failure patterns across mock sessions
Drawn from rubric verdicts. The first row (defaulting to streaming) is the single biggest cause of failed mid-level design rounds.
| Pattern | Dimension hit | % of failed rounds |
|---|---|---|
| Defaults to streaming when batch satisfies SLA | SLA match | 30% |
| Cargo-cults Kafka into single-source pipelines | Tool choice fit | 22% |
| Never addresses cost | Cost band | 18% |
| Skips backfill plan in failover designs | Failure modes | 15% |
| Freezes when requirement changes mid-round | Adapt on fly | 9% |
| Other (semantics, partitioning errors) | Various | 6% |
System design practice FAQ
Do I draw the diagram or read a worked example?+
How does this differ from HelloInterview or ByteByteGo?+
Are these prompts data-engineering-specific?+
Is there 1 correct design per prompt?+
Should I bring up cost on my own?+
How many design problems should I solve?+
Open family 1 (clickstream to dashboard)
- 01
Active recall beats re-reading by 50%
Cognitive-science meta-reviews (Dunlosky et al., 2013) rank practice testing as a top-tier study technique, while re-reading and highlighting rank near the bottom
- 02
76% of hiring managers reject on the coding task, not the resume
From HackerRank's 2024 Developer Skills Report. Candidates who look strong on paper still fail the live screen if they haven't done timed, executable practice
- 03
Five problem shapes cover 80% of data engineer loops
Dedup, sessionization, top-N-per-group, slowly-changing dimensions, partition tricks. Writing the shapes by hand turns the unfamiliar into pattern recognition