Software Engineering Handbook

A personal reference for learning software engineering deeply enough to use it at work, put it on a CV, and trust it under pressure — not a cheat sheet, not interview cramming. Each page is written to actually teach its topic: a plain-language definition, why it matters, and worked examples with real numbers or a traced-through case, not just a name and a hint.

Use the sidebar reading order instead of reading files alphabetically. Cloud is a sequential tutorial; Tools and Knowledge are grouped from foundations to advanced topics.

Contents

  • Cloud → VPS — Build a single-node k3s platform from a fresh VPS. GitOps, data services, and operations are grouped as separate subsections.
  • System Design — The framework for approaching an open-ended design problem (requirements, capacity estimation, high-level design, deep dive, trade-offs), plus worked case studies that apply it end to end.
  • Tools — Deep-dive tutorials on the tools actually used in practice (Docker, Kubernetes), with real config, diagrams, and best practices.
  • Knowledge — Operating systems, networking, and databases, each covered in depth.
  • Companies — Interview process and format notes, kept separate from the knowledge itself.
  • File names describe topics and do not encode their reading order.
  • The canonical navigation order is defined in mkdocs.yml; folder-level index.md files are not required.