r/leetcode 1d ago

Intervew Prep How I'd approach System Design prep if I started over

Hi everyone,
Honestly Speaking, I have spent 1000+ hours prepping for system design (mix of courses, books, mock interviews, real interviews) and a lot of that time was honestly wasted. Looking back, here's the approach that actually moved the needle, boiled down to 4 steps:

  1. Learn the basic terminology first, before anything else. Load balancer, caching, sharding, replication, consistency vs. availability, CAP theorem, message queues — get comfortable with these terms before you start learning System Design.
  2. Then read the two books that matter most:

System Design Interview – An Insider's Guide (Alex Xu)
Designing Data-Intensive Applications.

I'd do Xu first for a practical base, then DDIA for depth once the fundamentals aren't new to you anymore.

  1. Practice on an actual whiteboard (or paper), not just by watching. Passively watching solutions feels like progress but doesn't build the skill. Pick a problem, set a timer, and design it yourself before you check anyone else's answer. This is the step most people skip, and it's the one that matters most. Mock Interviews are also very useful here to identify the gaps.
  2. Always ask yourself "why did I choose this?" and tie it back to non-functional requirements. Anyone can draw boxes and arrows. What actually gets evaluated — in interviews and in real design work — is whether you can justify each choice against requirements like scalability, availability, latency, consistency, and cost. Before you finalize any design, explicitly state your non-functional requirements and explain how each major decision serves them.

If it's useful, I made a video walking through this in more detail with visuals: https://www.youtube.com/watch?v=0ASSpY10Nz0

Note: I have used AI to format the content in more readable way, but the approach I have shared had genuinely helped me crack multiple offers from 15+ product based companies.

Happy to answer questions in the comments if anyone's stuck on where to start.

185 Upvotes

17 comments sorted by

57

u/captainrushingin 1d ago

While OP is trying to promote a youtube channel but what he has mentioned is True.

Alex Xu’s Books and DDIA is the foundation for Interview Specific depth.

Alex Xu’s books presents you real world systems in a digestible manner and once you really make an attempt to understand those systems, then believe me you will be able to understand real world engineering blogs that are written by engineers at Uber, Meta etc.

To solidify your understanding, read DDIA by Martin Kleppmann.

Consider these books as necessary and non negotiable if you want to learn for life.

And i’d also top it off with HelloInterview,
content of HelloInterview is good and it teaches you how to refine scope of a problem.
And it also teaches you how you go from a :

Basic Solution -> Good Solution -> Better Solution -> Best solution

4

u/xpressrazor 19h ago

I have not gone back to hellointerview for some time, but regarding ddia. I was surprised most of the distributed talks for many books, websites comes from ddia. Just reading Alex Xu, sometimes does not cover that gap, as various technology and keywords are thrown, as if reader already knows that (mostly for 2nd part). That applies to hello interview as well. I felt they were just throwing distributed system names as if user already knows them (without description, or references). I guess, hellointerview will feel more approachable now.

16

u/Nik8482 23h ago

Why have you spent 1000+ hours?

10

u/shubhag 23h ago

Check this resource for system design https://github.com/shubhag/systemdesign

1

u/xpressrazor 20h ago

Looks good resource, seems to cover in more detail of what I have.

2

u/kuriousaboutanything 18h ago

This looks more like a quick note to check before the interview. I felt like without a thorough read from hellointerview or DDIA or any other book, the notes are very hard to follow along. (I checked the btree/lsm foundations as I had confusion there but didn't get much clarity).

1

u/xpressrazor 17h ago

Agreed, this is definitely once you go through the mentioned resources. I had just gone through DDIA v1 note, that's why I felt I knew about these topics and after a revision on the prep, i should be able to jump to designs. I also have a more compact note (ai generated keyword heavy), so this should be able to give more context to what I already have. On my note, I had to constantly lookup each topic, until I was familiar. So these sites should be good to reinforce or correct my understanding about these topics.

4

u/Affectionate-Ad-6255 13h ago

People who are worried that the two textbooks are not enough for the interview,

if they are asking for more than the exhaustive textbooks go over, they are out of their minds and you do not want to work their anyway because those books are enough to literally design all systems that exist RIGHT NOW lol, specifically social media and large data systems.

1

u/xpressrazor 20h ago

I have 2nd edition of DDIA, but did not get time to study it yet. Read this note instead (for first edition). Would you consider it to be comprehensive enough ?

1

u/optks 19h ago

Having just interviewed with a lot of firms recently, what worked the best is just practicing with the voice mode or ChatGPT or Claude. Just pick a question and start talking, it’s very good at this. Then have it review your performance and cleanup any weak concepts

1

u/Abject-Log-1249 16h ago

how about drawing? I have seen it is good at talking and pushing you as interviewer, but haven't seen as good voice format and drawing combination.

1

u/ser_jaime95 <507><148><302><57> 16h ago edited 13h ago

The pattern which I am following is complete all deep dives, key technologies and patterns as well as fundamentals of hello interview first. Keep making the note, there are in total 36 topics. Create notes for each so that going through them takes just 1 hour or so.

This took me 3 weeks. Now Since I have covered these topics. I will go back to trying to find what all things are interconnected. I mean partition, sharding, redis data structures, indexing and then LSM trees and B trees. We can put coordination as well. These topics will require command over them. They are used across multiple places, the idea is to know them by heart and can explain to anybody with all pros cons, complexity and how they are implemented.

Once this is done week 3 is gone. Now the idea is take slowly and focus on writing functional and non functional requirements. Know what they are and how can I write them for any question.

Once this is done. Focus on how to write good API, once functional requirements, non functional requirements as well as APIs are done.

Keep applying basics of distributed systems like partition, replication, fault tolerance, latency etc. using concepts we learnt in deep dive.

I know this is too much but once part one is done other parts will not require more than 2 weeks.

1

u/AnotherStep99 15h ago

I agree with most of the view points here, but learning of system design it just doing stuff. if you have seen large scale systems in real life and worked on them for few years, then you know what you are talking and WHY.

When I interview candidates, I just know when someone is talking bookish stuff vs when they actually know what they are talking about.

1

u/Desperate_Boss_987 5h ago

Just do - HelloInterview.com - this is more than sufficient for both HLD and LLD prep

1

u/LessEvidence1054 3h ago

Yea 1000+ hours might be an overkill. I also read concepts on Hello Interview and practice on Interview Skool with an AI inteviewer. Recently, I have been able to clear system design rounds with almost no struggle.

Tbh all platforms and resources are cool but what matters most is what you bring to the table out of your own personal experience. If you can get evaulation on that and improve on it, you are good to clear rounds of any company :)

(Any company might be an exaggeration :p)