Resources for system design interview prep

You have to do a systems design interview and you have no idea what that means?

A systems design or architecture interview is a conversation about how to build a software system given real world assumptions about scale, constraints and tradeoffs.

Typically this means drawing boxes for components like load balancers, web servers, databases, caching layers, etc. and describing how they work together to deliver the desired service.

There is no right answer! What matters is how well you can talk it through.

If this is new to you, here are some things you can read to get up to speed.

If you only read one thing… 🔗︎

  • Systems design for advanced beginners

    A light, story-driven overview of architecture of a generic web/mobile service. Topics include: single-page architecture, APIs, client libraries, webhooks, password security, database sharding, replication, text search, and more.

If you have time for a few more… 🔗︎

  • Acing your architecture interview

    A model for interviews: diagram, add constraints, find the bottlenecks, update the diagram, repeat. Good coverage of typical constraints and bottlenecks.

  • The architecture interview

    An interviewer’s perspective on how to give and assess these kinds of interviews.

  • Systems Design Cheatsheet

    Checklist of ideas to remember. Covers general approach to the interview and specific ideas for scaling bottlenecks.

If you prefer videos… 🔗︎

If you have weeks to cram… 🔗︎

If you’re willing to pay money… 🔗︎

If you want more lists of resources… 🔗︎

•      •      •

If you enjoyed this or have feedback, please let me know by or