Home / Companies / Buildkite / Blog / Post Details
Content Deep Dive

How Uber halved monorepo build times with Buildkite

Blog post from Buildkite

Post Details
Company
Date Published
Author
Michael Belton
Word Count
2,828
Company Posts That Month
5
Language
English
Hacker News Points
-
Post removed?
No
Summary

Uber's journey to optimize their monorepo CI/CD process involved overcoming the challenges of managing a large codebase with over 50 million lines of code and 3,000 engineers. Initially, Uber's adoption of a Go monorepo enhanced build efficiency, but the increasing scale demanded further innovations. They transitioned from Make and go build to using Bazel, which allowed for better dependency management and CI optimization, preventing the need to validate the entire monorepo for small changes. To further enhance build times and workflow efficiency, Uber developed SubmitQueue, a system designed to keep the main branch stable while handling high volumes of commits. However, large changes continued to pose bottlenecks. Uber’s team implemented strategies such as dynamic builds with parallel job execution, containerization, and cache optimization to reduce build times. They eventually replaced Jenkins with Buildkite for its dynamic scalability and flexibility, which significantly improved developer productivity and the overall CI process. These improvements included better job orchestration, enhanced build visibility, automated dependency management, and a more developer-friendly interface, ultimately enhancing the developer experience and maintaining a fast, reliable CI/CD process.

Trends Found in this Post
Trend Post Mentions Total Month Mentions Posts Companies MoM
Developer Experience 3 364 163 89 +28%
Observability 2 1,734 283 104 +32%
Platform Engineering 1 404 75 37 +84%
Real-time 1 2,310 734 231 -11%
Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.