Adopting Bazel in a quickly scaling organization
summary
CarGurus replaces Maven with Bazel over about 10 months, cleaning a 1.2M-line Java monorepo, converting 230+ artifacts, and fixing transitive and duplicate dependency issues so builds become trustworthy. Local incremental builds drop from ~18 minutes to ~8 minutes without remote cache and to ~90 seconds average with remote cache/execution, using a self-hosted remote execution (Buildbarn on Kubernetes) plus BuildBuddy for visibility and custom Starlark rules for Helm and CI generation.
AI-written summary · about
chapters (8)
- 0:00CarGurus intro and build challenges
- 3:52Dark debt in build systems
- 6:00Why Bazel over Maven
- 9:10Bazel adoption benefits
- 13:07Overcoming developer skepticism
- 15:17Bazel transition strategies
- 17:48Custom Bazel rules and tools
- 19:13Future plans and closing








