Hi, Taro community:
I struggle with system design interviews (senior level).
I've spent a lot of time studying. I've read in-depth ByteByteGo System Design Vol1 and Vol2. I went through most of Gaurav Sen's videos, the "Top ways people fail system design" course, read all the guides in Intervewing.io, and Hello interview. If you ask me how consistent hashing, partitioning, LSM tree, and quorum work, I can show you I know enough for product-based system design interviews.
I've also done some practice. I've done all the guided practice in Hello Interview, did 3 mocks, and 2 real system design interviews recently.
What I've found is I hesitate a lot at each step of the interview. For example
Then it affects
I know in theory that in system design "there is no right answer", but I'm worried about providing some "wrong" answer unknowingly.
I'm not sure what to do next. Technically there's always more to study. For example, I could read DDIA (I've only read summary study notes before). But I don't know if the answer is to study more. It feels like studying more even reinforces the hesitation that maybe I'm not applying things right.
Any advice would be helpful on how to overcome this would be very appreciated!
It sounds like you need conversations with Senior+ engineers about practical system design.
You have covered a lot of standard study material. Where study material typically shines is telling you where technology X is applicable, for example where message queues or NoSQL would be applicable.
What doesn't cover so well is where X would not be a good fit or the tradeoffs of using X vs Y when there's "no right answer." These practical considerations are hard to cover in educational materials and it's also hard for this coverage to be exhaustive.
It also sounds like lack of practical experience is at play here, to some extent, for example ambiguity on the appropriate level of separation of concerns in microservices. BTW, this is totally normal because complex, real life system design experience is both hard to gain and the opportunities arise later in career.
So, I'd encourage you to chat with someone with practical system design experience, be it from your work or outside community.
Let me know if you have any follow up questions!