Skip to content

Latest commit

 

History

History
34 lines (23 loc) · 2.27 KB

File metadata and controls

34 lines (23 loc) · 2.27 KB

Contributing

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.

Ground rules

  • 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.)

How to add a pattern

  1. Copy patterns/_template.md to patterns/your-pattern.md.
  2. Fill in each section.
  3. Add a row to the table in patterns/README.md and, if it is a core pattern, to the table in the root README.md.

How to add a question walkthrough

  1. Copy questions/_template.md to questions/design-your-system.md.
  2. Fill in each section. Keep the solution at the "approach and trade-offs" level, not a full paid-grade solution.
  3. Add a row to the catalog table in questions/README.md.

Style

  • 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.txt is 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 .md dropped (cheat-sheets/estimation.md becomes cheat-sheets-estimation). Links to any other site stay plain.

Pull requests

Open a pull request with a short description of what you changed and why. Small, focused PRs are easier to review and merge.