Warm-up
The 20-minute warm-up
The last thing to read before a senior, staff, or system-design interview. Not a fact dump — the handful of judgment moves an interview actually tests. Skim it on your phone on the walk in: how to structure any answer, the decisions you should be able to make on reflex, and the phrasing that reads as senior.
The move
Structure any answer
- 1
Clarify before you build
Restate the problem and pin the one constraint that dominates — scale, consistency, latency, or cost. The rest of your answer hangs off it.
- 2
Name the axis, then the tool
Say what the decision turns on before you say Postgres or Kafka. Interviewers hire the reasoning, not the noun.
- 3
Default, then exception
Give your default in one sentence, then the specific condition that would change it. Certainty plus a hinge beats a survey of options.
- 4
Failure first
Name how it breaks — the hot partition, the thundering herd, the split brain — and what you’d measure to catch it. Seniors design for the bad day.
- 5
“It depends” needs an on-what
The phrase is only strong when the very next sentence names the variable it depends on. Otherwise it reads as a dodge.
Decision reflexes
Know these cold
The common “X vs Y” calls, each in one line. If you can say the default and the switch condition without thinking, you’ve won the decision.
- SQL vs NoSQL
Default to relational (Postgres). Reach for NoSQL only when a specific access pattern or scale requirement makes relational a poor fit.
- REST vs gRPC vs GraphQL
REST for public, cacheable, resource APIs; gRPC for fast internal service-to-service calls; GraphQL when varied clients need to shape their own queries.
- Kafka vs RabbitMQ vs SQS
Kafka is a replayable log for event streaming; RabbitMQ is a flexible broker for task queues; SQS is a zero-ops managed queue on AWS.
- Monolith vs Microservices
Start with a modular monolith. Move to microservices only for a concrete driver — independent scaling, team autonomy, or fault isolation — and only with the ops maturity to run a distributed system.
- Strong vs Eventual Consistency
Strong consistency when correctness needs every reader to see the latest write (money, inventory, uniqueness); eventual when availability and scale matter more and brief staleness is tolerable (feeds, counts, caches).
- Synchronous vs Asynchronous Communication
Synchronous when the caller needs an immediate answer to proceed; asynchronous messaging to decouple services, absorb load, tolerate downstream failure, or fan out — at the cost of eventual consistency and more moving parts.
- Replication vs Sharding
Scale reads first with read replicas; split by feature (functional partitioning) when parts of the schema have different load; shard (horizontal partitioning) only when a single primary can't handle the writes or dataset. Exhaust caching and replicas before sharding.
- SSR vs CSR vs SSG
SSG for content that's the same for everyone and changes rarely; SSR for personalized or always-fresh pages that still need SEO/fast first paint; CSR for interactive, behind-login app shells. Decide per route, not per app.
Level up
What makes it a Staff answer
- Scope past the prompt — name the migration, the rollout, the on-call cost, not just the happy-path design.
- Quantify. Turn “a lot of traffic” into a number, then size from it: QPS, storage, fan-out.
- Trace the second-order effects — what this forces on the team, the data model, and next quarter.
- Own the option you rejected. Say what you gave up and why it was acceptable here.
- End on the metric. State what you’d instrument to know it’s actually working.
Reframes
Say this, not that
“I’d use microservices.”
“I’d start with a modular monolith and split only when a concrete driver appears.”
“We’ll add a cache.”
“Reads dominate ~100:1, so I’d cache the hot 20% and accept a few seconds of staleness.”
“It should scale.”
“At X QPS the bottleneck is the write path, so I’d shard on tenant id.”
“I don’t know.”
“I haven’t hit that in production — here’s how I’d reason about it.”
Final minute
Steady
- You’re not being tested on recall. You’re being tested on how you decide under uncertainty.
- Think out loud. A stated assumption is a gift to the interviewer, not a weakness.
- One clear decision, reasoned end to end, beats three options listed and left open.