Quick brush-up. The framework + the concepts that come up in every round.

The framework (say this structure out loud)

Requirements (functional + non-functional, scale) → Estimation (QPS, storage) → High-level design (components, data flow) → Deep-dive (DB, caching, scaling) → Trade-offs. Never jump straight to a diagram.

Core concepts

Reliability patterns (you have these)

From your resume — reach for these

Circuit breaker (stop cascading failures), Saga (distributed tx), CQRS (read/write split), DLQ + retry (messaging reliability), idempotency (safe retries).

Drill cards

System design framework?::Requirements → estimation → high-level design → deep-dive → trade-offs. Clarify + estimate before drawing.
CAP theorem?::During a partition, choose Consistency or Availability. CP vs AP. Most tune for eventual consistency.
Horizontal vs vertical scaling?::Vertical = bigger box (capped, SPOF); horizontal = more boxes (scales, needs LB + stateless).
Consistent hashing — why?::Keys on a ring so adding/removing a node moves minimal keys, not a full rehash.
Replication vs sharding?::Replication = copies for read scaling/failover; sharding = split data by key for write scaling.
Cache stampede fix?::Hot key expires → thundering herd on DB → prevent with a distributed lock or TTL jitter.