Software Engineering · Chapter 2 of 8
System design, at the level actually asked
The round that decides most senior loops. Not a memorised architecture — a sequence of defensible trade-offs.
System design is named in 73% of these postings and it is where most senior interviews are won or lost. The failure mode is memorising an architecture and reciting it regardless of the question.
The sequence that works
- Clarify before designing. What are the read and write volumes, what latency is acceptable, how consistent must it be, and what is explicitly out of scope. Five minutes here saves the round — and interviewers score it.
- Put numbers on it early. Requests per second at peak, data volume per day, storage growth in a year. An architecture with no arithmetic cannot be evaluated, and this is the most common thing separating a mid-level answer from a senior one.
- Start simple and let the requirements break it. A single service and a database is a legitimate first answer. Let scale, availability or latency force each addition, and say what forced it.
- Name the trade-off at every branch. Consistency against availability, latency against cost, simplicity against flexibility. The design is not the answer; the reasoning is.
- Then attack your own design. What happens when this component fails, when traffic is ten times, when a dependency is slow rather than down. Volunteering that is what senior sounds like.
The trade-offs worth being fluent in
| Choice | Buys you | Costs you |
|---|---|---|
| Caching | Latency and load | Staleness, and an invalidation problem that is genuinely hard |
| Async / queue | Absorbs spikes, decouples | Eventual consistency, ordering, and a new failure mode |
| Denormalising | Read speed | Write complexity and the risk of divergence |
| Sharding | Horizontal scale | Cross-shard queries, rebalancing, hot keys |
| Read replicas | Read scale, cheaply | Replication lag — read-your-own-writes breaks |
| A second datastore | Fits the access pattern | Two things to operate, and consistency between them |
The question that separates levels
“What breaks first as this grows?”
A mid-level answer describes a working system. A senior answer knows which component saturates first, roughly when, and what the next move is — and says so before being asked.