Keeping the Mainline Green Across Diverse Language Monorepos

Abstract

At Uber’s scale, ensuring an always-green mainline while processing hundreds of changes per hour is a massive challenge— especially when those changes span multiple language monorepos supporting dozens of business-critical apps. Each language ecosystem brings its own set of tooling, test strategies, and integration requirements, making Continuous Integration of changes while maintaining green mainline increasingly difficult.

In this talk, I’ll share the design and evolution of MergeQueue— Uber’s language-agnostic CI scheduling system that enables mainline stability and production readiness across our diverse stack, including Java, Kotlin, Swift, Go, Python, and more. By leveraging speculative validation, build-time and change success predictions, and conflict resolution, we’ve built a unified, scalable CI engine that abstracts away language-specific complexity while maintaining speed and reliability.