Project layout patterns in Go
summary
70k lines of Go, 10 full time engineers and ~15–20 external contributors across 11 teams drive a single cross‑platform agent that must be packaged and shipped. Project uses pkg for reusable packages and cmd for entry points, keeps docs and Dockerfiles in-repo, groups integration and end-to-end tests under /tests, and favors simple, CI-used tooling (make or Go-native Task/Pinebrook) with the ability to bypass tools. Packaging uses Chef Omnibus and Docker; layout prevents pkg → cmd imports and reduces later refactor cost.
AI-written summary · about
chapters (12)
- 0:00Project context and goals
- 1:47Learning from other projects
- 3:32Trade-offs in project layout
- 5:33Best practices for project structure
- 7:29Implementing CMD and PKG
- 9:38Framework and program rules
- 12:03Developing robust build tooling
- 14:15Choosing the right task runner
- 17:12Structuring tests and benchmarks
- 19:33Integrating documentation
- 21:58Packaging and distribution
- 24:33Q&A and practical walkthrough








