main
DevOps Guide
DevOps is the practice of reducing friction between writing code and running it reliably in production — giving you reproducibility, fast feedback, and confidence at scale.
Problem → Tool Category
| Problem | Tool Category |
|---|---|
| Code gets lost, no change history | Version Control |
| "Works on my machine" | Containerization |
| Dependency conflicts between projects | Package Management |
| Style drift, bugs slip through review | Linting & Formatting |
| Type errors discovered at runtime | Type Checking |
| Regressions go undetected | Testing |
| Manual, repetitive dev commands | Task Automation |
| Nobody knows how to run the project | Documentation |
| Slow, manual deployments | CI/CD |
Tool Matrix by Language
Language-Agnostic
| Category | Tool(s) |
|---|---|
| Version control | Git + GitHub / GitLab / Gitea |
| Containerization | Docker |
| CI/CD platform | GitHub Actions, GitLab CI, Gitea Actions, Jenkins |
Language-Specific
| Category | Python | JavaScript | Go | C++ |
|---|---|---|---|---|
| Package management | uv, pip, poetry | npm, pnpm, yarn | go mod | conan, vcpkg, cmake |
| Linting / formatting | ruff, pylint, flake8 | eslint, prettier, biome | golangci-lint, gofmt | clang-tidy, clang-format |
| Type checking | mypy, pyright | tsc, flow | built-in | built-in + clang-tidy |
| Testing | pytest, hypothesis | vitest, jest, mocha | testing (stdlib), testify | googletest, catch2 |
| Task automation | invoke, make, tox | npm scripts, turbo, nx | make, mage, task | cmake, make, ninja |
| Docs | mkdocs-material, sphinx | VitePress, Docusaurus | pkgsite, godoc | doxygen, sphinx |
Minimal "Good Enough" Stack
If you strip it to essentials:
| Tool | Purpose |
|---|---|
git + GitHub |
History + collaboration |
uv |
Env + dependencies |
ruff + mypy |
Correctness |
pytest |
Confidence |
invoke |
Dev UX |
| Docker | Reproducibility |
Add a tool only when you feel the pain it fixes.
