That this book and the very similar "Grokking the System Design Interview" (I went through both) get accolades just shows the poor resources we have.<p>What we need is more "Designing Data Intensive Applications", adapted to interviews.<p>Just as a couple quick comments, the "web crawler" scenario suggest a breadth-first search, which is OK (as in compared to depth-first search) but not good enough; web links in general is not a DAG and you can get into a loop. As another comment, in none of these two resources there's a single estimate that I can remember about how many servers you need as per requests/bandwidth etc, only calculations are about data amount. They also assume collaborative interviewer, which has never happened in my experience. I think none of these two resources by themselves would get you a L5 or even do well as L4 at FAANG (please somebody correct me), they are very basic (maybe I'm "too advanced" heh).
I can't recommend this YT channel enough: <a href="https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ" rel="nofollow">https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ</a><p>It's so, so much better than "Grokking the System Design Interview", which I find infantile at best and definitely not worth any amount of money.
I enjoyed the Grokking the System Design Interview resource.[1]<p>I think what helps the most is not only solving the problems outlined, but adding new constraints and thinking through various failure cases that may be missed by some of the questions. This helps ensure that you understand the material and that you haven't just memorized it.<p>[1] <a href="https://www.educative.io/courses/grokking-the-system-design-interview" rel="nofollow">https://www.educative.io/courses/grokking-the-system-design-...</a>
I have noticed that system design questions are asked in mid-level and even entry-level SWE roles. It's bizarre to me that expecting a fresh grad to build twitter is somehow an accurate assessment of that person's coding skills.<p>I think hiring managers have run out of hard questions to ask to sufficiently justify gate keeping the high-paying jobs they are dolling out - every grad knows to prep with CTCI, EPI, and leetcode; but what happens when all 10 of the 10 candidates you interview know how to invert a...whatever-tree in optimal O(n) in ~10 mins (bc they all used the same books to prep)? "Well, then you ask harder questions" is the superficial response from hiring managers. And that's how asking hard-level leetcodes in phone interviews becomes the norm.<p>I am curious to see how far this goes.<p>Remember the days when FizzBuzz would be sufficient to get a job? I don't, unfortunately, but perhaps some of you do.<p>We need to think harder about how we hire people. There are better ways.<p>Off-topic, but the chicken/egg metaphor can be used for any job in America (and probably the rest of the world), not just senior software engineering jobs. I had this problem when I graduated into the great recession in 2008 - every employer wanted 2 years of experience for entry-level jobs, not realizing or caring that you need the job in the first place to get that exp. And that's how you get a skills shortage over many years.
DDIA is a fantastic 2017 book but a few things went from must-do to avoid or at least think about it before doing it. we ve seen big changes into client side frameworks such as angular/react, nosql is less and less seen as something to look for first, scalability got somehow more complex and more achievable with cloud new features, client server best practices evolved a bit too. things like message queues or kafka are not as sexy<p>is there a good ressource to add on the top of DDIA that will reflect some recent changes in system design?
> The topic is somewhat a chicken-and-egg one. You'll know how to design a large system after you designed one before.<p>Yes, but doing a stressful interview is a different beast altogether. "Design YouTube in 45 mins" is something that you have to really practice, regardless of your experience. Glad that this book exists.
This looks like a great reference book for the course I teach at Northwestern University (CS-310 Scalable Software Architectures).<p>FWIW, my lecture videos from Spring 2020 are posted on YouTube, and I've heard from students that these are a good study resource for SWE interviews:
<a href="https://www.youtube.com/playlist?list=PLWl7jvxH18r0u5VRZsOjhghNXc_Ec4dZz" rel="nofollow">https://www.youtube.com/playlist?list=PLWl7jvxH18r0u5VRZsOjh...</a>
Its pretty sad at the end of the page it talks about other resources, the first few are 2008 ish. I'd expect them to be obsolete, but is that just become the industry standard now? FAANG SD interviews are such a mystery and the we never comment response doesn't help.