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.


Speaker

Dhruva Juloori

Senior Software Engineer @Uber, Core Contributor to SubmitQueue (Uber's CI System at Scale), Expert in Machine Learning, Distributed Systems, and Developer Productivity

Dhruva Juloori is a Senior Software Engineer at Uber, specializing in Machine Learning, Distributed Systems, and CI/CD infrastructure. He is a core contributor to SubmitQueue, Uber’s CI scheduling system that keeps the mainline green while processing hundreds of changes per hour across diverse, polyglot monorepos. His work focuses on optimizing developer productivity and scaling build systems for large engineering organizations. Dhruva is the author of the ICSE 2025 paper "CI at Scale: Lean, Green and Fast" and has spoken at several developer productivity conferences, sharing practical strategies for operating CI at scale.

Read more
Find Dhruva Juloori at:

From the same track

Session

Rust at the Core - Accelerating Polyglot SDK Development

Developing SDKs for your users in multiple languages can come at a high cost - especially if you need to implement complex logic client side, but traditionally options for sharing logic across those languages have been quite limited.

Speaker image - Spencer Judge

Spencer Judge

Engineering Manager @Temporal Technologies, previously Senior Software Engineer @Transparent Systems, Senior Software Engineer @ Tableau Software