BEWARE OF COUNTERFEIT BOOKS . Readers have reported that Amazon's 3rd-party sellers are selling counterfeit versions; the counterfeit pages have misprints, missing pages or pages in reverse order. We are working with Amazon to resolve the issue. In the meantime, purchase genuine books with the Amazon.com bit.ly/2B9xxBf -- The System Design Interview , by Lewis C. Lin and Shivam P. Patel, is a comprehensive book that provides the necessary knowledge, concepts, and skills to pass your system design interview . It's written by industry professionals from Facebook & Google . Get their insider perspective on the proven, practical techniques for answering system design questions like Design YouTube or Design a TinyURL solution . Unlike others, this book teaches you exactly what you need to know. The book revolves around an effective six-step process called ✔️ P rocess Requirements ✔️ E stimate ✔️ D esign the Service ✔️ A rticulate the Data Model ✔️ L ist the Architectural Components ✔️ S cale PEDALS demystifies the confusing system design interview by breaking it down into manageable steps. It’s almost like a each step adds to the next. PEDALS helps you make a clear progression that starts from zero and ends with a functional, scalable system. The book explains how you can use PEDALS as a blueprint for acing the system design interview. The book also includes detailed examples of how you can use PEDALS for the most popular system design questions, ✔️ Design YouTube ✔️ Design Twitter ✔️ Design AutoSuggest ✔️ Design a TinyURL solution What to expect and what interviewers look for in an ideal answer How to estimate server, storage, and bandwidth needs ✔️ How to design data models and navigate discussions around SQL vs. NoSQL ✔️ How to draw architecture diagrams ✔️ How to build a basic cloud architecture ✔️ How to scale a cloud architecture for millions of users ✔️ Learn the best system strategies to reduce latency , improve efficiency , and maintain security ✔️ Review of technical concepts including CAP Theorem, Hadoop, and Microservices I just wanted to say that I got the Amazon Senior SDE job offer. I've failed the system design interview several times, and your material is the best resource out there. - Beto A., Senior SDE
Just finished the dreaded Facebook Pirate interview. I used a modified version of PEDALS, and I had him grinning from ear to ear. - Jesse T., Software Engineer
My recruiter just gave me the Google role, and I accept!!! I couldn't have made it through the technical round without PEDALS and your system design material. - Priya D., Product Manager
This book is cringe. But given that there are no good books on system design interviews, it's kinda OK (hence 3 stars instead of 2) The good parts: - it's short and shows that the landscape is huge. But be ware that the books gives surface level coverage and that may play a bad trick on you. - It gives an OK-ish template on how to address interview questions and shows examples on how to use it. - it shows real examples of tech design questions.
The cringe parts: - majority of estimations and capacity planning is simply incorrect.
Ex: “Lets say you determined that a client waits 200ms for a single-core CPU server to return a first byte […] 200 ms is 0.2 seconds. So that means the single-core CPU can handle 5 requests per second”
Sorry, unless we are talking about 6502, this assertions is incorrect. And all estimation based on it are way off. I highly recommend "Every Computer Performance Book" by Bob Wescott on this topic.
- dialog format for interviews is unrealistic because interviewer allows pretty dumb assertion to go unchallenged and doesn't ask a candidate to analyze the cons.
- Some of the challenges have very specific details that makes them way easier that they should be. And it felt like some questions are adjusted to match the provided answers. (ex: tiny-url has pretty low RPC + has hard limit of TTL. Which makes this task easy and unrealistic)
- All answers are heavily skewed towards scalability issues. It's the main focus of majority of interviews. in 2021 that's the most boring kind of questions.
--- Books that I would recommend to read instead of this one: - Release it. Michael T. Nygard - Designing Data-Intensive Applications. Martin Kleppmann - Every Computer Performance Book. B. Wescott - Fundamentals of Software Architecture: An Engineering Approach. Mark Richards, Neal Ford
As a student preparing to land a software engineering job, I was seeking for something more applicable outside of the monotonous content that I learned in the classroom. I luckily found this book, and I wish there was a course dedicated to learning what the book goes over in detail.
PEDALS is a method that I have not seen in other system design interview books, and this particular method stands out above all the others. It efficiently organizes all components of system design in an easy to understand process. Also, the step-by-step nature of the book makes it extremely easy to follow, because the author provides various strategies to overcome any part of the interview you may get stuck on.
Currently, I'm trying to get hired at big tech companies like Facebook and Google, so there's a lot of material that translates directly to my preparation. The book contains detailed explanation of how to approach common questions such as designing Instagram, Twitter, and etc. The book engaged me deeply with the example interviews, and I now feel so much more confident about the system design interview than I had felt from years of engineering classes.
I’ve been looking for many ways to prepare for my system design interviews at Microsoft and Google, and this book is a must read to do just that. It taught me everything I needed to know about estimation, system strategies design, and much more in such a concise way. This book broke the process down so simply that a fourth grader could understand the system design process interview.
The book also contains great example cases for systems including Instagram, YouTube, Twitter, Auto-Suggest, and others. It only presents relevant information by breaking down everything into clear explanations unlike many other SDI books I’ve read which went into unnecessary detail.
Cracking the Code Interview and other books are comprehensive, but The system Design Interview stands out because of the organized framework. It is so easy to envision all the steps you need to take during an actual interview. This book contains effective and useful tips to prepare for the SDI, and I strongly suggest checking this book out to anyone preparing for the SDI!
To begin with, the book explains the PEDALS method in an intelligible fashion. The recurring reference to the PEDALS method throughout the book makes comprehending the book a breeze. The book also covers a plethora of details on different design strategies, estimation, and scaling.
Besides presenting insight and knowledge about system design, the book also has interview tips that are extremely useful. These tips are incorporated seamlessly into the example dialogues that happen between the interviewer and the interviewee, which makes what the interview exactly wants crystal clear. The in-depth example cases at the end of the book are also highly detailed and applicable.
Nothing but praise for this book as it contains a variety of insightful notes and explanations.
As someone preparing for the SDI, I can confidently say that this book is nothing but a gem.
I've gone through numerous online courses and read books like Cracking the Code Interview and Designing Data-Intensive Applications. I've also talked to actual PMs and software engineers who are in the field currently.
Just when I thought was well-prepared, I stumbled upon this book by Lewis Lin. Because I've read The Product Manager Interview and Decode and Conquer written by him, I went in with high hopes and was not disappointed. The book addressed concerns and questions that I was oblivious to, and I would've been sorry if I had missed out on those crucial components.
The comprehensiveness, affordability, and concision of the book merit a read by anyone preparing for the system design interview.
I think the way the framework is explained is amazing. Really understand now how to tackle a systems design question and build out my answer. I am probably going to re read the whole book from start to finish again, but I think it gave me a solid understanding on how to tackle a systems design interview.
Not great... a decent introduction if you've never done a system design interview or if you're just starting out, but it glosses over many subjects, makes some objectively bad decisions without second-guessing it, and generally speaking just doesn't go into enough detail about the pieces of the system for it to be useful at any decent depth. For example saying "Why? Performance." does not really cut it. You could have just decided not to put the subject in at all, that would have been better. Having arrays in SQL is a big no-no when you're going to need to query over them.
I'm also a little iffy on the relevance of getting an estimation early when you're going to scale later -- to me it sounds like you just wanted to make the acronym work. Maybe it's not a great look to say "we'll do estimations later when we think about scaling", but that's pretty much what you're advocating for anyway. PDALES.
Anyway, where this does actually have some use is that they have real-ish system design discussions, and it's nice to be able to read through the line of logic. There's even a couple of clever ideas that I've never seen before but make a lot of sense (splitting up read and write servers, particularly). The problem is that with a few really bad ideas sprinkled in there, a beginner might not know what isn't a good idea, and some of these bad ideas are so bad that they'll significantly negatively impact your interview, even if you do very well.
I think this is an incredible asset for someone whom has little experience in understanding how system design interviews are conducted, given enough time that is. Depending on the interviewing criteria of the company (e.g. culture fit, matching job roles and responsibility), some companies might cherry pick these approaches.
Regardless of whether you are reading this book for the purpose of preparing for SDIs, this book does offer benefits in understanding the approach, framing your mindset and answering questions. Besides, the general principles highlighted in this book also serves you in another way where you leverage them when you become an hiring manager.
This book is really lacking in depth. It glosses over many topics and provides surface level solutions for complex problems. You won't be able to pass any system design interviews by reading this book. You can really tell that it's written by a PM and a software engineer with 1 year of work experience.
There are some interesting examples of answering questions like "Design something" but overall this book is more a "cheatsheet" with almost nothing about everything.
Its ok but very abstract and not enough pointers to dig further. Perhpaps thats the author's intent. It definitely could have used more thorough reviews though.