Loading…
BazelCon 2024
Attending this event?
October 14-15, 2024
Mountain View, CA
View More Details & Registration

The Sched app allows you to build your schedule but is separate from your event registration. You must be registered for BazelCon 2024 to participate in the sessions. If you have not registered but would like to join us, please go to the event registration page to registration.

This schedule is automatically displayed in Pacific Daylight Time (PDT) | UTC -7. To see the schedule in your preferred timezone, please select from the drop-down located at the bottom of the menu to the right.

IMPORTANT NOTE: Timing of sessions and room locations are subject to change.
Lightning Talks clear filter
Monday, October 14
 

11:50am PDT

Making Builds Cheaper by Deduplicating Actions with RBE - Christian Scott, Canva
Monday October 14, 2024 11:50am - 12:00pm PDT
In this session I will discuss remote action deduplication, a feature of some Bazel RBE backends. I will explain the problem it solves, how it works, and some details about how well it has worked for us. I'll also quickly touch on merge queues, and mention some RBE backends that support the feature. --- If you run builds on every master commit, and you have commits landing more quickly than your slowest action can finish, you'll end up rebuilding unnecessarily. We estimated that our slowest webpack action was being re-run unnecessarily 66% of the time! This action is an input to a large number of expensive integration tests so it's very likely that we're also wasting a lot of compute on those tests as well. The web page builds and tests account for the vast majority of the compute we use in CI. The number of wasted builds would be even higher if we were using a merge queue, so we have been forced to stick to a conventional merge strategy. By running these builds remotely and using an RBE backend that supports action deduplication, we've massively (25%, more expected by BazelCon) reduced the amount of compute needed to build and test web pages.
Speakers
avatar for Christian Scott

Christian Scott

Software Engineer, Canva
Working on making the build and test experience faster and more reliable for frontend engineers at Canva.
Monday October 14, 2024 11:50am - 12:00pm PDT
Hahn Auditorium
  Lightning Talks

12:00pm PDT

Building 1300 Container Images in 4 Minutes - Sushain Cherivirala, Stripe
Monday October 14, 2024 12:00pm - 12:10pm PDT
Container images are a ubiquitous mechanism for deploying applications in the modern computing landscape. Everything from services deployed on bare-metal Kubernetes to AWS Lambda functions depend on container images. Building these images quickly and efficiently is critical to keeping CI/CD responsive. In recent years, Stripe has undergone dual migrations. One, to a service oriented architecture. Two, to running services inside Kubernetes. Together, these migrations meant our CI pipelines to build containers became slower and more expensive with each passing month. With a build producing over a terabyte of images, Bazel just couldn't build them fast enough! Even disk space was in short supply. Learn how we flipped the script on our container builds by leveraging BwoB (Build without the Bytes). Now, we can build 1300+ container images in just a couple minutes with plenty of headroom for more. Bazel's entire output space fits in RAM and there's never a single byte of container images on disk!
Speakers
avatar for Sushain Cherivirala

Sushain Cherivirala

Staff Software Engineer, Stripe
Sushain is the tech lead for Stripe's Build Infra team. He joined Stripe from Stanford and Carnegie Mellon in 2019 and has been evangelizing Bazel ever since. In addition to writing Stripe's Ruby and JavaScript rulesets, Sushain has migrated millions of lines of Stripe code and hundreds... Read More →
Monday October 14, 2024 12:00pm - 12:10pm PDT
Hahn Auditorium

12:10pm PDT

Achieving Performant Remote Bazel Builds for Web Monorepos at Scale - Sharmila Jesupaul, Airbnb
Monday October 14, 2024 12:10pm - 12:20pm PDT
In this talk, you'll gain practical insights from our experience migrating Airbnb's web monorepo (which houses millions of lines of TS/JS code) to Bazel, with a focus on preparing NodeJS tooling for remote builds. We developed methods and tooling to trim down input sizes, share the cache between MacOS and Linux, persist caches through remote builds, catch and fix non-deterministic builds, and automatically generate BUILD files from JS/TS code. This helped us create a robust system for adopting Bazel without compromising on developer experience. These insights are designed to help you navigate similar migrations, improve build performance, and reuse builds across platforms.
Speakers
avatar for Sharmila Jesupaul

Sharmila Jesupaul

Staff Software Engineer @ Airbnb, Airbnb
Sharmila Jesupaul is a Staff Software Engineer with a passion for Bazel, TypeScript & JavaScript tools, and developer process & productivity. A former web developer turned infrastructure engineer, she has spent the last five years at Airbnb working on web build-tools, testing tools... Read More →
Monday October 14, 2024 12:10pm - 12:20pm PDT
Hahn Auditorium
  Lightning Talks

4:00pm PDT

Introducing Remote Bazel - Maggie Lou, BuildBuddy
Monday October 14, 2024 4:00pm - 4:10pm PDT
Many at this conference are familiar with Remote Caching and Remote Execution. Over at BuildBuddy, we’re excited to introduce Remote Bazel - running the Bazel client server and command remotely as well, making your builds even faster and more correct. Even if your builds are triggered by ephemeral CI runners, Remote Bazel will guarantee your builds always run with a warm analysis and repository cache, and remove the need to pull images, install dependencies, and clone git repos on each run. Running builds in the same datacenter as the remote cache and executors also reduces network bottlenecks and egress costs. Even if your company’s developers use machines with different operating systems or versions of tools or don’t even have Bazel installed, Remote Bazel will guarantee that important builds are run in the exact same environment every time. This talk will provide a quick overview of how we built this and the many applications we’re excited about - from speeding up CI to augmenting our UI to improving the daily developer experience via the CLI.
Speakers
avatar for Maggie Lou

Maggie Lou

Software Engineer, BuildBuddy
Maggie is a software engineer at BuildBuddy working on their CI product. She enjoys building features that make her own job easier and faster.
Monday October 14, 2024 4:00pm - 4:10pm PDT
Hahn Auditorium
  Lightning Talks
  • Audience Level Any

4:10pm PDT

EngFlow as a Powerful Accelerator for Builds, Tests & Bazel Migrations, and Cloud Cost Reduction - Helen Altshuler, EngFlow Inc.
Monday October 14, 2024 4:10pm - 4:20pm PDT
Learn how to get more value from Bazel for your developer platform with faster migrations and consistently fast builds and tests around the world with cache replication, seamlessly scale remote build execution from 100 to 100,000 cores, get proactive recommendations on further performance improvements, and achieve cloud cost savings from thousands to millions of dollars.
Speakers
avatar for Helen Altshuler

Helen Altshuler

CEO and co-founder, EngFlow
Helen is the CEO and co-founder of EngFlow, a big code developer platform company created by core Bazel engineers and funded by Andreessen Horowitz. She has been a dedicated Bazel community member since 2016, managed enterprise adoption of Bazel at Google and the 1st BazelCon, and... Read More →
Monday October 14, 2024 4:10pm - 4:20pm PDT
Hahn Auditorium

4:20pm PDT

Aspect Build - Alex Eagle, Aspect Build Systems
Monday October 14, 2024 4:20pm - 4:30pm PDT
Aspect authors many of the Bazel rules you know and love. We also provide the missing CI/CD and developer platform to integrate Bazel into your team's workflows and achieve the promised incremental build&test speed while reducing your cloud spend! This talk will update you on our latest and greatest.
Speakers
avatar for Alex Eagle

Alex Eagle

Co-founder and CEO, Aspect Build Systems
Alex worked at Google on Bazel-adjacent systems from 2008-2020. He is a leader of the Bazel OSS community, and the co-founder of Aspect, a Bazel services and product company whose mission is to bring Bazel's promised benefits to all developers.
Monday October 14, 2024 4:20pm - 4:30pm PDT
Hahn Auditorium
  Lightning Talks

4:30pm PDT

Bazel’s Take on (Cc) Shared Libraries - Aloïs Cochard, Modus Create
Monday October 14, 2024 4:30pm - 4:40pm PDT
It took me a while to understand how cc_shared_library works in Bazel. After fighting the system and having reached every possible error message, I took a deep dive into the underlying logic and discovered how powerful that rule is once you understand its opinionated view on shared libraries and the mindset behind the design of the rule. I was also surprised to discover that it relies on Bazel aspects. To the best of my knowledge it is the only core rule that does so. In this presentation I will convey my insights using diagrams depicting how one should reason about cc_shared_library. This will cover how shared libraries are assembled from cc_libraries, how they interact as dependencies of other cc_* rules, and some interesting aspects of the implementation based on… aspects!
Speakers
AC

Aloïs Cochard

Modus Create
Monday October 14, 2024 4:30pm - 4:40pm PDT
Hahn Auditorium

4:40pm PDT

Consistent Hermetic Tooling with Actually Portable Executables - Matt Clarkson, Arm
Monday October 14, 2024 4:40pm - 4:50pm PDT
Actually Portable Executables (APE) is a format of executable that can be ran on Windows, Linux, MacOS, BSDs operating systems from a single binary. A binary can be "fat" to contain both the x86_64 and aarch64 machine code to enable execution on multple CPUs from the same single binary. The `@ape` Bazel module provides the necessary wrappers and launchers to provide common POSIX tooling across all operating systems and CPUs such as `cp`, `mv`, `sed`, `awk` and `curl`. This talk will provide usage information of the `@ape` tools to enable an ecosystem of hermetic tooling for Bazel rulesets that require zero system setup to be used other than a working Bazel installation.

The talk will be split into a few sections:

- An introduction to the Bazel module, it's usage and benefits
- A high level overview into the APE format, Cosmopolitan C library and superconfigure to provide attendees relevant information to understand what the module is providing
- A brief introduction to the ecosystem of hermetic rulesets that expose rules around the APE hermetic binaries, such as `rules_curl`, `rules_gzip`, etc.
Speakers
avatar for Matt Clarkson

Matt Clarkson

Principal Software Engineer, Arm
Matt is a software engineer that has worked up and down the stack throughout his career. His current focus is to bring the benefits of reproducible, hermetic workflows to embedded devices with Bazel. He has previously worked at small sized agile teams before his current role at A... Read More →
Monday October 14, 2024 4:40pm - 4:50pm PDT
Hahn Auditorium

4:50pm PDT

Building a Hermetic Python Environment with Conda in Bazel - Adam Azarchs, 10X Genomics
Monday October 14, 2024 4:50pm - 5:00pm PDT
Bazel’s rules_python supports using a hermetic python environment at build and test time. However, maintaining sufficient similarity between the environment that unit tests are running in under bazel test and the production environment can be challenging, particularly once things like extension modules with nontrivial native dependencies get involved. The conda ecosystem is primarily for python packages, but also includes packages for nearly all of the native dependencies of those python packages as well. This talk describes the bazel rule-set we use to fetch conda packages and deploy them for use both during the bazel build and test, and in production. These rules allow us to provide our customers with a deployment package which they can simply untar and run on a wide range of linux environments with very limited prerequisites, producing several distinct (but overlapping) environments for different products within our monorepo, at the same time ensuring that our unit tests are running in a nearly identical environment, all while maintaining acceptable build times.
Speakers
avatar for Adam Azarchs

Adam Azarchs

Principal Software Engineer, 10X Genomics
17 years in the software industry, across many different platforms (including 2 years in YouTube, where I learned to use blaze), I now spend most of my time helping computational biologists deliver production-quality software.
Monday October 14, 2024 4:50pm - 5:00pm PDT
Hahn Auditorium

5:00pm PDT

Bazel: {Fast, Correct, Seamless}: Choose 3 - Srini Muthu, LinkedIn
Monday October 14, 2024 5:00pm - 5:10pm PDT
While Bazel excels in speed and accuracy, its integration with native ecosystems, particularly IDE support, has been lacking. Jay Conrod’s 2022 BazelCon talk highlighted how this hinders adoption, echoing our observations at LinkedIn. The model recommended in that talk was to have the language server use a build adapter as a liaison to Bazel to correctly resolve imports. Since then, Bzlmod and Uber’s go_deps module extension have enabled us to treat go.mod as the source of truth for Go dependencies thereby removing the need for lengthy WORKSPACE files and constant updates via gazelle-update-repos. While these significantly moved the needle, they didn’t support multi module workspaces, still relied on the build adapter model for IDE support and had no native CLI support. At LinkedIn, we sought to address these gaps. We added Go workspace support to Gazelle and introduced a setup rule wherein Bazel bootstraps the Go SDK, sets Go env vars such as GOPATH within the Bazel workspace and informs IDEs and shells via settings files and direnv, thus providing a seamless developer experience. This has enabled us to drive developer adoption across a poly repo ecosystem at LinkedIn.
Speakers
avatar for Srini Muthu

Srini Muthu

Srinivas Muthu, LinkedIn
Hi there, I'm Srini. I work with the Build Platforms team at LinkedIn, primarily with ecosystems that are powered by Bazel. Previously I worked at Apple Maps building pipelines for geospatial data crunching. Outside of work I enjoy riding bicycles, climbing rocks and spending time... Read More →
Monday October 14, 2024 5:00pm - 5:10pm PDT
Hahn Auditorium

5:10pm PDT

Optimizing Gazelle for Scale and Performance in Uber's Monorepo - Tyler French, Uber
Monday October 14, 2024 5:10pm - 5:20pm PDT
In a repo with almost a million files, `gazelle` historically scales O(size of repo) for automatic BUILD file generation, since gazelle plugins need to read and evaluate source files across the repo in order to prepare the BUILD files' contents. When the peak runtime of gazelle approached 5-8 minutes, this became unscalable at Uber, with developers being blocked and delayed. Our team was able to improve three key metrics related to Gazelle's speed: - Gazelle p75 on CI from >300s to
Speakers
avatar for Tyler French

Tyler French

Sr. Software Engineer, Uber
Tyler French is a Software Engineer on Uber's Developer Platform team and is based in New York City. Tyler leads the dependency management initiative within the Go developer experience. His interests lie in leveraging data and analyzing patterns to strategically improve the engineering... Read More →
Monday October 14, 2024 5:10pm - 5:20pm PDT
Hahn Auditorium
 
Tuesday, October 15
 

11:50am PDT

How Bazel Handles Globs - Nathan Harmata, Google
Tuesday October 15, 2024 11:50am - 12:00pm PDT
The `glob` function is seemingly simple from a user-land perspective, but entails a lot of complexity in Bazel's implementation. This talk motivates the difficulty, discusses the history of implementing `glob` in Bazel, goes over the current approach, and mentions possible future improvements.
Speakers
avatar for Nathan Harmata

Nathan Harmata

Senior Staff Software Engineer, Google
Nathan is a Software Engineer at Google. He has been working in the build system domain since 2013.
Tuesday October 15, 2024 11:50am - 12:00pm PDT
Hahn Auditorium
  Lightning Talks

12:00pm PDT

Not Going the Distance: Filtering Tests by Build Graph Distance - Alex Torok, Aurora Innovation
Tuesday October 15, 2024 12:00pm - 12:10pm PDT
At Aurora, many of the tests that our developers rely on are computationally expensive simulations that rely on specialized and expensive GPU hardware. We use tooling similar to bazel-diff and target-determinator to figure out what targets have changed between two git revisions, then run specific tests based on those targets. This method scaled well until our build graph reached a certain size. Changing common code triggered a larger and larger number of low-signal tests. This slowed down developer velocity due to having to wait on more tests and being more likely to get hit by a flaky test failure. We updated Aurora's in-house changed target detection tool to emit build graph distance metrics that measure the distance between a changed target and a directly modified file. This distance metric allows us to confidently skip running some tests to avoid the issues described above. In this session, I will discuss how we compute build graph distance metrics and the ways that we use them to power workflows that increase developer velocity and improve mainline stability in a domain rich with expensive-to-run tests.
Speakers
avatar for Alex Torok

Alex Torok

Senior Staff Software Engineer, Aurora Innovation
Alex Torok is a Senior Staff Software Engineer at Aurora Innovation, helping deliver the benefits of self-driving technology safely, quickly, and broadly. He works on the developer experience team, striving to make it more efficient to get code on the road.
Tuesday October 15, 2024 12:00pm - 12:10pm PDT
Hahn Auditorium

12:10pm PDT

Nix and Bazel: The Odd Couple of Build Tools - Jesse Schalken, Canva
Tuesday October 15, 2024 12:10pm - 12:20pm PDT
A talk on why Nix and Bazel does not pair with each other well, recommending to use Bazel and bzlmod instead of Nix. Specifically, Nix is a package manager that is often misintegrated into Bazel. It is incompatible with the Bazel ecosystem in that * Nix artifacts are not relocatable, breaking Bazel remote execution when Nix outputs are in the build graph * Nix binaries are incompatible with FHS and rulesets that expect FHS because binaries are located in Nix store * Users who are familiar with Bazel are (usually) not familiar with Nix. Our engineers are often unable to self-serve patches to Nix packages, and they are also unable to use the testing framework provided by Bazel (which are familiar to most engineers) to validate their patches because of the steep learning curves * At monorepo our size, it is not rare to see Nix expressions that produces several thousand derivations that each reference large sets of build inputs. Expression evaluations are often so slow that nix-builds are in the critical path during analysis phase, even though outputs are already in the Nix cache. Nix flakes can help but it has an awkward git integration which does not work very well in large monorepos
Speakers
JS

Jesse Schalken

Staff Software Engineer, Canva
Tuesday October 15, 2024 12:10pm - 12:20pm PDT
Hahn Auditorium

4:00pm PDT

Are You Ignoring Your Most Expensive Bazel Build Problems? (Develocity Can Help) - Brian Saghy, Gradle
Tuesday October 15, 2024 4:00pm - 4:10pm PDT
Are lurking problems in your Bazel builds costing you more than you think? What if hidden patterns in your build data could reveal the most impactful problems to fix? Develocity, Gradle's cross-build observability platform, helps you uncover those insights and take appropriate action. In this lightning talk, we'll explore how Develocity's unique multi-build analysis can help you: * Identify and prioritize systemic build failures with the highest impact on your team’s productivity * Pinpoint flaky tests that slow you down * Gain deeper insights into your Bazel builds’ health for faster troubleshooting and better decision-making Let your build data become the key to a more efficient and productive development workflow.
Speakers
avatar for Brian Saghy

Brian Saghy

Product Manager, Gradle
Brian Saghy is a Product Manager at Gradle, who is passionate about developer productivity and building tools that streamline development workflows. Brian brings a deep understanding of developer tools and the challenges faced by engineering teams from his prior experience in Engineering... Read More →
Tuesday October 15, 2024 4:00pm - 4:10pm PDT
Hahn Auditorium

4:10pm PDT

Fetching private data with Repo Rules and MODULE Extensions - Malte Poll, Modus Create
Tuesday October 15, 2024 4:10pm - 4:20pm PDT
In Bazel, you are not supposed to fetch external data during a build action. Instead, we have repository rules and MODULE extensions that are allowed to fetch data from the internet and execute arbitrary code.

This session describes how to implement those rules to access data from authenticated HTTP endpoints making optimal use of Bazel’s downloader, the repository cache, and the new credential helper mechanism in the process. All while saving disk space and time.

You wouldn’t let your friends use wget in a genrule and make the build non-deterministic, right?
Speakers
avatar for Malte Poll

Malte Poll

Software Engineer, Modus Create
Malte is a software engineer with a background in security. In the process of improving the supply chain security and reproducibility of security-critical software, he has developed expertise in modern build systems, specializing in Bazel and Nix. He is passionate about building secure... Read More →
Tuesday October 15, 2024 4:10pm - 4:20pm PDT
Hahn Auditorium

4:40pm PDT

Improved --Toolchain_resolution_debug’ing - Malte Poll, Modus Create
Tuesday October 15, 2024 4:40pm - 4:50pm PDT
Toolchains and platforms are there to last, and yet my experience shows that they can be challenging for newcomers, and can still surprise experienced Bazelistas. Some time ago, a debug session led me to read the actual source code, and I ended up refactoring the messages dumped by `--toolchain_resolution_debug` in the hope to make them more intuitive and self-explanatory. This session will present the new message format and build upon its structure to explain the algorithm that drives platforms and toolchains selection. Attendees will build a clear mental model of that core part of Bazel. Additionally, the presentation will insist on the importance of crafting self-explanatory messages, along with the tradeoffs involved. Debugging toolchain issues is now easier than ever, and a little bit funny.
Speakers
avatar for Malte Poll

Malte Poll

Software Engineer, Modus Create
Malte is a software engineer with a background in security. In the process of improving the supply chain security and reproducibility of security-critical software, he has developed expertise in modern build systems, specializing in Bazel and Nix. He is passionate about building secure... Read More →
Tuesday October 15, 2024 4:40pm - 4:50pm PDT
Hahn Auditorium
  Lightning Talks
  • Audience Level Any

4:50pm PDT

Rules_variant: Developer Friendly, Multiplatform Builds - Aleksander Gondek, ASML
Tuesday October 15, 2024 4:50pm - 5:00pm PDT
Creating Bazel definitions which allow to build the same targets in multiple configurations at once (i.e. different target platforms) is possibly one of the most convoluted parts of any larger project. Bazel has rich and powerful tooling that supports such an approach, yet it is not yet exposed in an approachable way. Frequently, it leads to opaque macros and custom rules whose sole purpose is to apply some transitions, naming conventions, and more, all of which contributes to Build definitions that are not developer friendly and require a higher level of Bazel familiarity to work with. `rules_variant` is a new meta-ruleset (based on `with_cfg.bzl`) designed to address that particular issue. Desired variants (essentially Bazel configurations) are stored in a JSON file and any Bazel rule may decide to be “pinned” to a certain set of said variants, simply by referencing it via an additional attribute. From the developer’s perspective it is as simple as referencing additional names, if the Bazel target has to be built in an additional “flavor” (with specific settings). This talk showcases the incredible flexibility and readability that comes from the aforementioned approach.
Speakers
avatar for Aleksander Gondek

Aleksander Gondek

Senior Software Engineer, ASML
Alex is contracting for ASML, spearheading migration to Bazel build system. He enjoys solving complex challenges in a manner that results in simple solutions. Rust, Nix and Bazel enthusiast, he attempts to bring reproducibility and correctness to any software project he works on... Read More →
Tuesday October 15, 2024 4:50pm - 5:00pm PDT
Hahn Auditorium

5:00pm PDT

Why We Should Care About Test Execution Output in Safety-Critical Industries - Markus Hofbauer, Luminar Technologies
Tuesday October 15, 2024 5:00pm - 5:10pm PDT
In highly regulated industries such as automotive, aviation, and medical, test artifacts are often essential for further reporting. Automotive SPICE (ASPICE) or AUTOSAR from the automotive field requires detailed, reproducible reporting on executed tests. Companies such as BMW or NVIDIA use Bazel to build their software. However, Bazel does not cache test execution output, but only that a test was executed. To address this, some companies have resorted to forking Bazel and implementing this feature on their own which causes maintenance overhead and impedes collaborative Bazel improvements. Our proposed solution is to treat the test binary as a tool and run it as part of the Bazel build phase. This way, we can depend on the test output for further processing such as skipping integration tests if unit tests fail, collecting output artifacts such as human-readable test reports and machine-readable coverage reports, as well as making coverage collection depend on test outputs. Thanks to Bazel’s caching, the test is not executed again in the test phase which makes this solution an acceptable tradeoff.
Speakers
avatar for Markus Hofbauer

Markus Hofbauer

Senior Build Engineer, Luminar Technologies
Markus Hofbauer is the tech lead of the Build & Release Engineering team at Luminar Technologies. Together with his team, he is responsible for the build system, developer tooling, and the CI/CD system. Markus received his PhD in Electrical and Computer Engineering from the Technical... Read More →
Tuesday October 15, 2024 5:00pm - 5:10pm PDT
Hahn Auditorium
  Lightning Talks
  • Audience Level Any

5:10pm PDT

The State of Compilation Database in Bazel - Thi Doan, Woven by Toyota
Tuesday October 15, 2024 5:10pm - 5:20pm PDT
There are more than one solution for generating a compilation database for Bazel today: Aspects, Action Query, Extra Actions etc. In this talk, I will talk about the pros and cons of each approach, and what we ended up with.
Speakers
avatar for Thi Doan

Thi Doan

Software Engineer, Woven by Toyota
Thi is a Build Automation Engineer at Woven by Toyota, where he focuses on building C++ toolchains for safety-critical software. Prior to Woven by Toyota, he helped integrating Bazel to iOS builds at more than one organization. Outside of work, he helps maintaining Bazel rules for... Read More →
Tuesday October 15, 2024 5:10pm - 5:20pm PDT
Hahn Auditorium
 
  • Filter By Date
  • Filter By Venue
  • Filter By Type
  • Audience Level
  • Timezone

Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.