
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required. Learn more
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera, scan the code below and download the Kindle app.


System Design Interview – An insider's guide Paperback – June 12 2020
Amazon Price | New from | Used from |
Kindle Edition
"Please retry" | — | — |
- Kindle Edition
$20.99 Read with Our Free App - Paperback
$50.96

Explore your book, then jump right back to where you left off with Page Flip.
View high quality images that let you zoom in to take a closer look.
Enjoy features only possible in digital – start reading right away, carry your library with you, adjust the font, create shareable notes and highlights, and more.
Discover additional details about the events, people, and places in your book, with Wikipedia integration.
Purchase options and add-ons
System design interviews are the most difficult to tackle of all technical interview questions. This book is Volume 1 of the System Design Interview - An insider’s guide series that provides a reliable strategy and knowledge base for approaching a broad range of system design questions. This book provides a step-by-step framework for how to tackle a system design question. It includes many real-world examples to illustrate the systematic approach, with detailed steps that you can follow.
What’s inside?
- An insider’s take on what interviewers really look for and why.
- A 4-step framework for solving any system design interview question.
- 16 real system design interview questions with detailed solutions.
- 188 diagrams to visually explain how different systems work.
Table Of Contents
Chapter 1: Scale From Zero To Millions Of Users
Chapter 2: Back-of-the-envelope Estimation
Chapter 3: A Framework For System Design Interviews
Chapter 4: Design A Rate Limiter
Chapter 5: Design Consistent Hashing
Chapter 6: Design A Key-value Store
Chapter 7: Design A Unique Id Generator In Distributed Systems
Chapter 8: Design A Url Shortener
Chapter 9: Design A Web Crawler
Chapter 10: Design A Notification System
Chapter 11: Design A News Feed System
Chapter 12: Design A Chat System
Chapter 13: Design A Search Autocomplete System
Chapter 14: Design Youtube
Chapter 15: Design Google Drive
Chapter 16: The Learning Continues
- Print length320 pages
- LanguageEnglish
- Publication dateJune 12 2020
- Dimensions15.24 x 1.85 x 22.86 cm
- ISBN-13979-8664653403
Frequently bought together

What other items do customers buy after viewing this item?
- Consider using cache when data is read frequently but modified infrequently.Highlighted by 1,443 Kindle readers
- The ability to ask good questions is also an essential skill, and many interviewers specifically look for this skill.Highlighted by 1,199 Kindle readers
- When choosing a sharding key, one of the most important criteria is to choose a key that can evenly distributed data.Highlighted by 1,186 Kindle readers
Product details
- ASIN : B08CMF2CQF
- Publisher : Independently published (June 12 2020)
- Language : English
- Paperback : 320 pages
- ISBN-13 : 979-8664653403
- Item weight : 431 g
- Dimensions : 15.24 x 1.85 x 22.86 cm
- Best Sellers Rank: #29,602 in Books (See Top 100 in Books)
- #2 in Assembly Language Programming (Books)
- #3 in Bioinformatics
- #10 in Network Administration
- Customer Reviews:
About the author

Alex Xu is an experienced software engineer and entrepreneur. Previously, he worked at Twitter, Apple and Zynga. He can be found online at linkedin (https://www.linkedin.com/in/alex-xu-a8131b11/) and twitter (@alexxubyte)
Customer reviews
-
Top reviews
Top reviews from Canada
There was a problem filtering reviews right now. Please try again later.
It also totally lacks a dive deep on key aspects of the design. For example, design a youtube lacks dive deep on challenges we may face while building the transcoding subsystem.
I would recommend candidates to use this book as a 'syllabus indicator' and supplement their study with other materials freely available on the net and also some good video tutorials on youtube.
I was entirely disappointed at the content of this book.
Top reviews from other countries

I read the book twice and take notes. I read all the reference materials mentioned in the book. Reading those extra materials help me a lot with topics I’m not familiar with.
Highlights:
+ The book has a good set of questions.
+ Lots of diagrams and clear explanation.
+ You will learn something new by reading the book regardless of your experience.
Drawbacks:
- I wish the reference links are footnotes instead of being at the end of chapters. That way, it’s more accessible.
- Some topics are not talked about too much like security and stream processing.
- It’s tailored towards junior and semi-senior engineers. Some chapters are not deep enough. For example, I wish the author would talk more about feed ranking and caching in the designing news feed chapter.
Overall, it’s a masterpiece in system design books. However, no book can cover everything in system design. No one knows every system. Here are some of my other recommendations:
-- designing data-intensive applications. Highly recommended.
-- system design primer github repo. Highly recommended free resource.
-- Leetcode discussion forum about system designs.
-- Grokking the system interview course. This is an ok resource but not very deep.
-- Various youtube channels. I like channels like Tushar Roy, System Design Interview, Success in Tech, etc. There are a lot more but I found them most useful for senior engineer positions.
-- Various tech blogs: Facebook, Netflix, Uber, AirBnb, etc. Those tech blogs are extremely valuable to help us understand real-life systems.
-- highscalability website. The website contains lots of real world systems.
-- InfoQ youtube channel. Many tech companies talk about how they scale their systems at infoQ. I find sometimes it’s quite hard to find useful videos on google but when I narrow down it to a specific channel, it’s much easier to find. For example, I found a lot of useful tech talks about uber there. It’s invaluable when I interviewed there.

1. Quality: the paper is thin and the print quality is poor. The author uses the same badly-scaled icon for a load balancer throughout and it's infuriating. There are several howling mistakes and errors, such as a point where the author tried to go through the time complexity of retrieving something from a Trie, but just ended one paragraph before finishing it.
2. Writing: there are many grammar errors and awkward phrasings. Wikipedia is quoted liberally. Many points are not justified or motivated. All sections are presented as system design problems rather than starting with some theory sections, meaning that the sections which should be on theory are ridiculous: consistent hashing is not a design problem; it is an algorithm that is useful for some design problems. The pretend discussions with interviewers at the beginning of each section are, every one, ridiculous, containing some bonkers question that no-one would think to ask. The information in the pretend answers to these question is, often as not, ignored or contradicted later without comment. No thought is given to context, such as when designing a web crawler and analysing it for "query rate" and "peak query rate" as if it were a web service exposed to end-users rather than an asynchronous background service.
3. Padding: the overall impression is of a product that was churned out with as little effort and expense as possible. Details are included with no thought to whether they would make sense to discuss in an interview. Diagrams are copy-pasted, the second time only to add some labels.
Don't buy this. It gets two stars because in spite of how awful it is, you can learn something from it. Nevertheless you are better off just reading free resources such as the System Design Primer, and you won't want to set them on fire.

The content of the book is not very well written in my opinion, and it not very coherent. it looks like a collecion of blog posts and on most problems it presents it just guides the reader to "a solution" without examining the problem at hand at (any) depth...it jsut presents a solution. An unsuspected reader may think that this problem is solved like that, which is not exactly the point.
The printing quality is really bad (if you are interested in having good books). the images are dim, the text has different intensity on every page (bad printing on cheap paper).
The diversity of subjects is OK but it is also what makes it incoherent. Some of them are not system design at all..
Overall I do not think it worths its money at all.

Following chapters investigate, interesting system design problems one by one. Problems covered are from rate limiter, consistent hashing, unique id generation and key value store etc. I thought initial chapters were written well but towards the end where author was trying to cover ‘Design Youtube’ or ‘Design Google Drive’ , it kind of lost its coherence a bit. The diagrams were not properly explained. New concepts were introduced without any proper explanation. Overall, the book is ok, but I wish author has put bit more technical rigor in analyzing and explaining. One major disappointment, for a book of this technical nature I was expecting a proper bibliography which wasn’t there.

The author talks about the "building blocks" of systems (e.g. caches, load balancers) then offers a 4 step framework for answering questions about system design. What follows is analysing various system design questions such as "How to build a web crawler".
There are plenty of diagrams and references for deeper details, and in general the content is clear. However, there are numerous typos and I think this could be edited better. In addition, as other reviewers have noticed, some parts really need to go into more technical detail or explain things better.
That said, it shows you the "lay of the land" in terms of systems. I'd recommend supplementing this with other great books like "Designing Data-Intensive Applications" (which is also recommended in this book).