Lakshya

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.

3 min read0 diagramsAll 8 chapters

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

ChoiceBuys youCosts you
CachingLatency and loadStaleness, and an invalidation problem that is genuinely hard
Async / queueAbsorbs spikes, decouplesEventual consistency, ordering, and a new failure mode
DenormalisingRead speedWrite complexity and the risk of divergence
ShardingHorizontal scaleCross-shard queries, rebalancing, hot keys
Read replicasRead scale, cheaplyReplication lag — read-your-own-writes breaks
A second datastoreFits the access patternTwo 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.

← What a software engineering job description now asks forProduct sense for engineers →