The Build. Scale. Investigate. World Tour has officially begun! Uber and EngFlow co-hosted the February 2026 Build Meetup at Uber’s buzzing Amsterdam office. The event brought together developers and build specialists who shared "war stories" from the build community.
I spend a lot of time with engineering leaders and developer infrastructure teams. Over the past six months, a pattern has been emerging: build queues are experiencing demand in bursts, not waves.
Last week alone, conversations in Sydney, Chicago, Los Angeles, and San Francisco all surfaced the same story:
Sunday: A customer running EngFlow Bazel RBE at 100,000+ cores wants to triple capacity over the next year. PR volume is surging with no sign of slowing.
Monday: Prospective customer's CI queue is in crisis. Engineering attention diverted from product work. First-time inquiry about RBE.
Tuesday: Existing customer tried sharding load across more CI workers. Result: higher cloud costs, same bottleneck. Needs help making workloads RBE-compatible.
Thursday: A large enterprise customer skipped our customer dinner - they were occupied with urgent internal testing, preparing to double their RBE load.
Friday: Reviewed load planning with a customer preparing for an AI generation hackathon - forecasting what their infrastructure must absorb in the coming months.
Celebrating our team and customer success around the world.
2025 was a year of resilience, achieving multiple key financial milestones, record-breaking momentum, and exponential growth. EngFlow overcame significant personal and professional challenges to solidify its position as the market leader in Build Management at Scale. Today, we power the world’s most complex workloads for innovators like Arm, Asana, BMW, Canva, Databricks, Lyft, Plaid, Perplexity, Snap and Zoox.
The EngFlow team recently wrapped up a successful BazelCon 2025, which marked a significant milestone: the 10th anniversary of Bazel! Seeing the energy and innovation at the conference was especially meaningful for us, as several of us have been involved in BazelCon since its inception, both as organizers and attendees. We're reflecting on the immense growth the community has achieved in the last decade and how it spearheads developer productivity across the world.
EngFlow was a platinum sponsor of the main conference, facilitated several workshops on Training Day, and co-hosted a fun Game Night with JetBrains and VirtusLab. We loved seeing and hearing from many of our customers in-person at BazelCon, as Happy Customers are at the heart of what we do!
This blog brings you highlights from the conference and satellite events.
In recent weeks, we’ve added several powerful enhancements to EngFlow’s Build and Test UI to bring you deeper invocation-level insights. These improvements make it easier than ever to identify and diagnose slow or cache-inefficient actions, enabling you to optimize faster and get the most out of your Remote Execution setup.
It's been almost six years since the previous entry in this series was originally published, and there are many new topics to discuss!
The biggest change in the last few years was the introduction of Bazel modules (also known as Bzlmod) and the deprecation of WORKSPACE mode. I've updated all the previous articles to be compatible with Bazel modules, but today we'll explore newly introduced functionality: how to write a module extension, and why you'd want to do so.
This "Maintaining Compatibility" trilogy began by describing how to, well,
maintain compatibility with Bzlmod builds, legacy WORKSPACE builds, and a
range of dependency versions. However, this was only half the story. Automated
testing is essential for validating our compatibility assertions, not lying to
ourselves and our users, and preventing the undoing of our hard work.
The previous post described how to write and run tests
that enable switching between Bazel versions and the Bzlmod and legacy
WORKSPACE build modes. Those tests use the latest versions of our non-Bazel
dependencies to ensure forward compatibility.
This fourth and final part of our trilogy describes how to write tests to
validate backwards compatibility with combinations of older dependency
versions. We'll build on the techniques from the previous post, while learning
what makes these backwards compatibility tests substantially different from
other tests in the suite.
We've covered techniques for ensuring that your project remains compatible with
different Bazel versions, both Bzlmod and legacy WORKSPACE builds, and older
dependency versions. However, we shouldn't make any promises until we've
validated that these properties actually hold, preferably via automated testing
and continuous integration.
This third post in our four part trilogy covers writing Bazel tests that
allow for flexibly switching between various Bazel configurations. We'll
consider advice on how to run the tests locally while developing and how to run
them in continuous integration.