# System Design

The system design interview is personally the most difficult interview for me. It's the most open-ended interview, with no single "right" answer. System design interviews can be between 30 minutes to 1 hour.

Here's what I've learned from the system design interviews I've done:

* Don't rush towards a solution - _the point of the system design interview isn't to come to an optimal solution immediately, it's to learn about how you would design a system involving multiple components_
* Ask questions - _the interview starts off with a vague, open-ended question on purpose; given only a question like, "How would you design Instagram?", you'll want to ask questions to gather requirements_
* Think out loud - _this interview gauges how would would break down a problem, the trade-offs you would make with certain decisions, etc; it'll be difficult for the interviewer to assess your skills if you're not thinking out loud_
* Focus on the parts of the system that you're good at and can do a deep dive into - _so don't bs things you don't know about_

### System Design Resources

* [Front End Interview Handbook](https://www.frontendinterviewhandbook.com/front-end-system-design/)
* [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview)
* [Frontend Infra Book](https://www.feinfra.com/)
* [System Design Primer](https://github.com/donnemartin/system-design-primer)
