gogoprotobuf: How NOT to run an open source project
summary
A fork of golang/protobuf called GoGo protobuf generates pointer-free structs and custom marshallers to cut allocations and deliver roughly 2x speed improvement over the standard generator; it becomes a transitive dependency in Kubernetes and Docker but accrues 5,000+ stars while remaining an orphan with no formal maintainers. The repo accumulates 100+ open issues, thousands of generated tests (≈120,000 lines), many ad‑hoc features, and ultimately is deprecated after maintainers burn out.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 1:49What are Protocol Buffers
- 4:41Failing at open source
- 9:16GoGo Protobuf soft fork
- 12:48Nitpicking and control
- 16:44Ignoring contributors
- 20:16Feature creep and growth
- 21:21Go string method
- 26:00AST and code generation
- 28:27Leaving the company
- 30:15Adding projects no one wanted
- 31:21Another soft fork
- 32:48Burnout and boundaries
- 34:13Hating your job
- 35:19No succession plan
- 37:04Property-based tests
- 38:08CI and trust
- 39:32Rethinking design
- 41:00Decision paralysis
- 42:24Apologies and deprecation
- 43:26Q&A
related talks
10mSIG Docs and You: Modernizing API Reference Generation
36mAvoiding Breaking Changes in Your Project: Lessons From the OpenTelemetry Collector
46mRediscovering Go
27mHow to Avoid Breaking Changes in your Go Modules
37mProtobuf and buf: glamour, misery, and import substitution
21m5 things I love (or why you should learn Go)
47mDevelop Your Embedded Applications Faster: Comparing C and Golang
44mFreedom, equality, gophers 🕺🏼
