I have been practicing for system design interviews by reading through books like System Design Interview book by Alex Xu and Grokking the System Design Interview, however I sometimes struggle to internalize the knowledge and demonstrate it in an interview setting. I have done a few mock interviews which have been helpful, however the number of mocks I can do is somewhat constrained by other people's availability. Is there a way where I can improve at system design interviews quicker/more effectively while practicing on my own?
I forgot to mention: ChatGPT is actually an excellent tool to practice system design interviews! I created a prompt like this:
You are a principal engineer reviewing system design proposals.
The project is XYZ.
The submitted system design proposal is ABC.
Give a score from 1 to 10 for ABC and explain why.
I tried this with generic system design problems like "Design Netflix at a high-level", and I had decent results with it. Of course, they're still way worse than a mock with a solid interviewer but pretty good for something solo and free!
System design is incredibly hard to practice solo given the open-ended nature of it. Edbert Chan hits it on the head by describing system design as a behavioral interview disguised as a technical one.
That being said, I would do something like this:
If you have more time, the real way to practice system design is to just build side projects and fine-tune them (i.e. actually design systems). I talk about this in-depth here: "How to Learn/Practice Clean Code, particularly by oneself?"
On a side note, we're working on solving the first approach by building formal courses where you can answer tough, ambiguous problems (like system design prompts) and see what other engineers did. Stay tuned!