Skip to main content
Engineering, Backend, Uber AI

Slashing CI Costs at Uber

23 June / Global
Featured image for Slashing CI Costs at Uber
Image
Figure 1: Architecture of SubmitQueue.
Image
Figure 2: Monthly conflict rates across Go, iOS, and Android monorepos from January to June 2024.
Image
Figure 3: Speculation tree of builds for conflicting changes C1, C2, and C3 arrived in the order mentioned.
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Figure 4: Weekly trend of builds-to-changes ratio across Go, iOS, and Android monorepos.
Image
Figure 5: Weekly CPU hours consumption across Go, iOS, and Android monorepos.
Image
Figure 6: Weekly p95 waiting times for changes in Go, iOS, and Android monorepos.
Dhruva Juloori

Dhruva Juloori

Dhruva Juloori is a Senior Software Engineer at Uber, specializing in machine learning and algorithms. He’s the key engineer behind Uber’s SubmitQueue, a transformative CI scheduling system that guarantees an always-green mainline at scale by handling hundreds of changes per hour across Uber’s diverse monorepos. Dhruva’s work empowers thousands of engineers to deliver high-quality code efficiently. His work focuses on building scalable distributed and ML systems that enhance developer productivity and streamline CI/CD processes.

Matthew Williams

Matthew Williams

Matthew Williams is a Staff Software Engineer for Developer Platform. He is the Technical Lead for SubmitQueue, and especially interested in improving performance and reliability for large monorepos. Matthew is also the Technical Lead for TargetAnalyzer, a service that computes changed targets in both Buck and Bazel based monorepos.

Zhongpeng Lin

Zhongpeng Lin

Zhongpeng Lin is a Staff Software Engineer for Developer Platform. He is one of the founding members of Uber’s Go Monorepo, and has been the Tech Lead of its build system since then. Over the years, he also worked on various areas that improved the developer experience for Go Monorepo, such as code coverage, Git sparse checkout, and dependency management. He is also a maintainer of Bazel’s Go rule set (a.k.a. rules_go) and Gazelle, as well as a frequent contributor to open source projects used by Uber.

Posted by Dhruva Juloori, Matthew Williams, Zhongpeng Lin