About The Engineer's Handbook
Why This Exists
System design is one of the most important skills for software engineers, yet quality learning resources are scattered across books, blogs, and paid courses. This handbook consolidates the most important concepts into a single, free, open-source reference.
After years of preparing for interviews, mentoring engineers, and building distributed systems in production, I found myself writing the same explanations repeatedly. This handbook is that knowledge — organized, illustrated, and freely available so every engineer can access it regardless of budget or geography.
Who Is This For?
- Engineers preparing for system design interviews — structured chapters with practice questions at every level
- Mid-level engineers growing into senior roles — deep dives into architecture patterns and trade-offs
- Tech leads and architects — comprehensive reference for distributed systems concepts
- Anyone curious about how large-scale systems work — case studies of real-world systems
How It's Built
- 31 chapters — 25 on system design + 6 on design patterns
- 27 design patterns with practical Go BEFORE/AFTER code
- 200+ Mermaid diagrams for visual learning
- Comparison tables for quick decision-making
- Practice questions with difficulty levels and hints
- Code examples in Go for key patterns (caching, rate limiting, gRPC, WebSocket)
- Built with VitePress and the Dracula color theme
Credits & Inspiration
This handbook draws inspiration from several excellent resources:
- "System Design Interview" by Alex Xu (Volumes 1 & 2)
- "Designing Data-Intensive Applications" by Martin Kleppmann
- "Site Reliability Engineering" by Google
- "Building Microservices" by Sam Newman
- The System Design Primer by Donne Martin
- ByteByteGo by Alex Xu
All interpretations, diagrams, code examples, and additions are original work.
Contributing
Contributions of all sizes are welcome. Here's how to get involved:
- Report an error — Open an issue on GitHub with the chapter name and a clear description.
- Suggest improvements — Open a discussion or issue with your idea before writing code.
- Submit a pull request — Fork the repo, create a feature branch, make your changes, and open a PR against
main. Keep PRs focused on a single chapter or concern. - Fix typos or diagrams — Even small fixes are appreciated. No issue required for obvious corrections.
Please ensure all Mermaid diagrams render correctly (npx vitepress dev) before submitting. By contributing you agree that your work will be released under the MIT License.
Author
Built by Bach Duong — a software engineer who enjoys learning and sharing technical knowledge.
- GitHub: @bachdx2812
If this handbook helped you land a role, level up your skills, or simply understand a concept more clearly — that's the whole point. Feel free to reach out.

Comments powered by Giscus. Enable GitHub Discussions on the repo to activate.