The Interview Delivery Playbook Switch without quitting, chapter 4

What you must already know, and how deep

A map of system design, DSA and LLD fundamentals by level, how deep to go on each, and free official places to learn them.

This is not a textbook. After 6 or more years of work you know most of this already, and so the job is to find the parts that have gone rusty, in the time you have. The chapter gives a map: the topics a senior loop tends to touch, how deep to go at each level, and a free, official place to refresh each one. The depth guides are the author's judgement. They are not taken from any company's rubric, and no frequency claim ("most asked") is made, because the author has not counted one for this chapter.

How to use the map

Do this in week 3 of the calendar. For each row below, rate yourself in one of three states. Then spend your hours only on the yellow and red ones.

  • Green: I could explain it for ten minutes to a peer, with an example from my own work.
  • Yellow: I know the idea but I would stumble on a follow-up.
  • Red: I could not explain it without looking it up.
Pattern signal

Depth is relative to level. A Senior needs to explain and apply a topic. A Staff candidate needs to explain why it fails, what it costs, and when to pick something else. The same topic has three depths; the table says which to aim for. Level definitions are in the levels chapter.

The depth scale

DepthYou canTypical level
1: name itSay what it is and when it is usedEnough for rarely probed topics
2: use itExplain how it works, give a use and one failure modeSenior
3: argue itCompare it with alternatives, cost it, and say what would make you change your mindSenior on your own domain; Staff on most
4: build itDescribe the internals well enough to reimplement the core ideaStaff on two or three topics only

System design fundamentals

Here, "free official" means the project's own documentation or its authors' own papers, which cost nothing to read. Use them to refresh, not to learn from zero.

TopicSenior depthStaff depthFree place to refresh
Estimation: QPS, storage, bandwidth2: two numbers that change a decision3: cost per unit, headroom, growthYour own system's real numbers; no book needed
Replication, leaders, followers23 to 4Raft site (paper and an interactive visualisation)
Consistency and consensus2: what the user sees3 to 4Raft site; the Google SRE book, chapter on distributed consensus
Partitioning and hot keys23The Dynamo paper, linked from Werner Vogels' post
Transactions and isolation levels2 to 33PostgreSQL documentation, Transaction Isolation
Global databases and clocks1 to 23Spanner paper page
Retries, timeouts, backoff, load shedding2 to 33Amazon Builders' Library; the SRE book chapters on overload and cascading failures
Monitoring and alerting23SRE book chapters on monitoring and alerting
Queues and delivery guarantees2 to 33The documentation of whichever broker you use at work
Caching and invalidation2 to 33The documentation of the cache you use
Rate limiting, idempotency23Builders' Library; your own payment or API code

Everything else in design is built on these. The method for using them in a round is in the design script and how to drive a design; follow-up questions are in the follow-up bank.

What a Staff-level follow-up looks like

One example of the jump from Senior to Staff depth: "Why not use a distributed lock here?". At Senior, you say what a lock does and that it can expire. At Staff, you say what happens when the holder pauses past its expiry, what a fencing token is, and when you would avoid the lock and use a conditional write. The refresher for this is the consensus material above, plus the documentation of whichever store you would use. Do not stop at the sound bite. Run the failure out loud.