Read this first: interview formats and emphases change fast, so this is time-sensitive; it lists public resources and my own understanding only, with no company's questions or process.
I'm still learning system design too. This page keeps the public resources and ideas I've found useful. For hands-on practice, start with the system-design exercises: a feed, a RAG knowledge base, or an assistant with memory.
There is no fixed formula
My sense is that system design has no template you can memorize and apply. What is really being probed is two things: do you know the trade-off behind each choice, and can you connect the whole system end to end.
So start from the basics:
- What problem are we solving? What does success look like?
- What data do we have? What data do we not have?
- What are the constraints — scale, latency, cost, freshness?
- For each step, what does this choice give up?
An example: recommendation
Say you are building recommendations. Start from what you have:
- If follows, friendships, or interactions are available, use those relationships to find candidates. A graph need not be a social graph: PinSage uses Pinterest's item–board relationships. Keep these different data structures distinct.
- And if there is no relationship data? Fall back to behavior itself: item–item co-occurrence, two-tower retrieval, content features (titles, categories, multimodal embeddings). In cold start, content features and a popularity fallback often beat a complicated model.
Every layer below that is a trade-off: how fast retrieval has to be, how large a model ranking can afford, how fresh the features must be, whether an offline gain will show up online, and whether the complexity is worth maintaining. Saying those clearly is worth more than reciting an architecture diagram.
Public resources
General system design:
- System Design Primer: free, broad, good for building the skeleton
- ByteByteGo: Alex Xu's System Design Interview series, heavily illustrated and easy to read
- Designing Data-Intensive Applications: the one worth real time if you want to understand the underlying trade-offs. As of October 2026 the latest is the second edition, published in March 2026 (Martin Kleppmann and Chris Riccomini, O'Reilly); the book's website still describes the first edition
ML and recommendation:
- Designing Machine Learning Systems (Chip Huyen)
- Evidently's ML system design case collection: hundreds of public write-ups of real systems
- Eugene Yan: system design for discovery: the layered design of search and recommender systems
- Twitter's open-sourced recommendation algorithm: public components of a recommendation pipeline, not a complete deployable production service
Related notes here
- Search: how a model finds what it does not currently know
- Modern AI systems: the model is only one part
- Agents: how they are used in different settings
- Evaluation: why should we believe the system improved
- Kubernetes and GPU clusters: why distributed training needs gang scheduling, and why scaling inference is more than adding replicas (draft, pending review)