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.
- Every content page opens with a one-line summary, written as a blockquote directly under the title, before any other text. It should say what the page settles or explains, in one sentence. This is not decoration:
llms.txtis generated from these lines, so a page without one breaks the generator, and an AI assistant quoting the page picks up the summary in the same chunk. The templates already include it. - Use relative links between files so they work on GitHub.
- Prefer simple ASCII or Mermaid diagrams that render on GitHub.
- Links to designgurus.io carry campaign parameters so we can see which pages send readers there. Append
?utm_source=github&utm_medium=repo&utm_campaign=grokking-system-design&utm_content=<page>, where<page>is the file path with slashes turned into dashes and.mddropped (cheat-sheets/estimation.mdbecomescheat-sheets-estimation). Links to any other site stay plain.
Open a pull request with a short description of what you changed and why. Small, focused PRs are easier to review and merge.