Thanks for helping improve this free system design interview guide. Contributions of all sizes are welcome: fixing a typo, clarifying an explanation, adding a pattern, or writing a new question walkthrough.
- Keep it original. Do not paste content from paid courses (including the DesignGurus course) or other copyrighted sources. Write explanations in your own words.
- Keep it concise and practical. Favor clear summaries, tables, and bullet points over long essays.
- Stay vendor-neutral in the technical explanations. Link to the course as the "go deeper" option, not as the only answer.
- No em dashes. Use commas, colons, parentheses, or periods instead. (House style.)
- Copy
patterns/_template.mdtopatterns/your-pattern.md. - Fill in each section.
- Add a row to the table in
patterns/README.mdand, if it is a core pattern, to the table in the rootREADME.md.
- Copy
questions/_template.mdtoquestions/design-your-system.md. - Fill in each section. Keep the solution at the "approach and trade-offs" level, not a full paid-grade solution.
- Add a row to the catalog table in
questions/README.md.
- One concept per file.
- Use relative links between files so they work on GitHub.
- Prefer simple ASCII or Mermaid diagrams that render on GitHub.
Open a pull request with a short description of what you changed and why. Small, focused PRs are easier to review and merge.