System Design Practice Problems
Read enough worked breakdowns and you develop an eye for what a good design looks like. Producing one live, with someone watching and asking why, is a separate skill. The canvas below is where you practice the second one: drop components, wire them, pick the tools, defend the SLA. What comes back is the set of objections a reviewer would raise, dimension by dimension, and more than one design clears the bar on any given prompt.
Read enough worked breakdowns and you develop an eye for what a good design looks like. Producing one live, with someone watching and asking why, is a separate skill. The canvas below is where you practice the second one: drop components, wire them, pick the tools, defend the SLA. What comes back is the set of objections a reviewer would raise, dimension by dimension, and more than one design clears the bar on any given prompt.
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% |
Data engineer system design is pipeline design under constraints, which is the same material with a whiteboard attached. That makes the data pipeline interview questions the set worth working next, with the data pipeline practice problems for the hands-on half.
Know the patterns before the interviewer asks them.
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
Reading a solution is not the same as writing one
Every engineer who has frozen on a query they had read a dozen times knows the gap. The only preparation that closes it is producing the answer yourself, under time, before the interview does it for you
- 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
System design comes down to the calls you defend out loud
Ingestion, batch vs streaming, the bronze/silver/gold layers, idempotency, backfill and replay. Sketching the pipeline and naming the failure modes is the signal, not the boxes