Keeping the Mainline Green Across Diverse Language Monorepos

Summary

Disclaimer: This summary has been generated by AI. It is experimental, and feedback is welcomed. Please reach out to info@qconsf.com with any comments or concerns.

The presentation titled "Keeping the Mainline Green Across Diverse Language Monorepos" covers the challenges and solutions related to maintaining a stable and continuously integrating codebase across multiple language repositories at Uber.

Key Points Addressed:

  • The Challenge: Ensuring an "always-green" mainline amidst hundreds of changes per hour across diverse monorepos, including languages like Java, Kotlin, Swift, Go, and Python, which bring distinct tooling and integration challenges.
  • Current Scale: Uber has 4,500+ engineers across 10+ global centers working on polyglot monorepos, processing 65,000+ changes monthly and supporting over 100,000 deployments per month.
  • Impact of a Broken Mainline: A non-stable mainline can lead to delayed rollouts, hampered productivity, and complex rollbacks, impacting business costs, time, and resources.

Solutions and Strategies:

  • SubmitQueue System: Uber developed SubmitQueue, a CI scheduling system that provides a single queue illusion, optimizing CI resources and ensuring mainline stability.
  • Speculation Trees and Prioritization: The system uses a binary decision tree model to predict build times and success probabilities, efficiently managing queue prioritization even during peak change volumes.
  • Machine Learning Integration: Employed for predicting build outcomes, ensuring efficient resource utilization and maintaining high accuracy in success predictions.
  • Recent Enhancements: Introduction of bypassing large diffs and improved build time prediction, resulting in significant resource usage reduction in CI and improved change landing times.

Overall, the presentation emphasizes the importance of a scalable, reliable CI system that can handle rapid change integration while maintaining codebase health.

This is the end of the AI-generated content.


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

Rust at the Core - Accelerating Polyglot SDK Development

Monday Nov 17 / 03:55PM PST

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

Session AI/ML

Secure Software Supply Chain: Risk Prediction at the Speed of Development

Monday Nov 17 / 01:35PM PST

The Platform That Sees Risk Before Code Does

Speaker image - Bishwajeet Paul

Bishwajeet Paul

Architect, Platform Engineering @JPMorgan Chase - Specializing in Solving Complex Challenges for the Developer Community

Session Fleet Management

Confidently Automating Changes Across a Diverse Fleet

Monday Nov 17 / 11:45AM PST

Maintaining up-to-date and secure software across a polyglot fleet is a challenge for any engineering organization. Manual migrations and urgent updates disrupt productivity and require coordination across many teams.

Speaker image - Casey Bleifer

Casey Bleifer

Senior Software Engineer @Netflix

Session AI

Designing AI Platforms for Reliability: Tools for Certainty, Agents for Discovery

Monday Nov 17 / 10:35AM PST

Modern AI platforms don’t have to choose between deterministic precision and probabilistic exploration—they need both.

Speaker image - Aaron Erickson

Aaron Erickson

Senior Manager and Founder of the DGX Cloud Applied AI Lab @NVIDIA, Previously Engineer @ThoughtWorks, VP of Engineering @New Relic, CEO and Co-Founder @Orgspace

Session Vibe Coding

Directing a Swarm of Agents for Fun and Profit

Monday Nov 17 / 05:05PM PST

Coding agents are a new tool, which many of us are trying to figure out how to use effectively.

Speaker image - Adrian Cockcroft

Adrian Cockcroft

Technology Advisor and Consultant @OrionX.net, Previously VP Open Source and Sustainability @Amazon, Cloud Architect @Netflix, Distinguished Engineer @eBay