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.
Technical / Feature Talks clear filter
Monday, October 14
 

10:00am PDT

The Classics Never Go Out of Style: An Empirical Study of Downgrades from Bazel - Mahmoud Alfadel & Shane McIntosh, University of Waterloo
Monday October 14, 2024 10:00am - 10:30am PDT
Enticed by advanced features, several software teams have migrated their build systems to a modern generation of build technologies, such as Bazel. However, not all migrations lead to perceived improvements, ultimately culminating in abandonment of the build technology. In this talk, we will present the results of our recent empirical study of 542 open-source projects that adopt Bazel. We observed that (1) 61 projects (11.2%) have abandoned Bazel; and (2) abandonment tends to occur after investing in Bazel for a substantial amount of time (a median of 638 days). Thematic analysis reveals seven recurring reasons for abandonment, such as technical challenges, lack of platform integration, team coordination issues, and upstream trends. After abandoning Bazel, the studied projects have adopted a broad set of alternatives, spanning from language-specific tools like Go Build, to more traditional build technologies like CMake and even pure Make.
Speakers
avatar for Mahmoud Alfadel

Mahmoud Alfadel

Postdoctoral Researcher, University of Waterloo
I am a postdoctoral researcher at the REBELs Lab in the Cheriton School of Computer Science at the University of Waterloo. I earned my PhD in Software Engineering from Concordia University (Montreal). My research uses empirical software engineering techniques to enhance security and... Read More →
avatar for Shane McIntosh

Shane McIntosh

Associate Professor, University of Waterloo
At the University of Waterloo, I lead the Software Repository Excavation and Build Engineering Labs (the Software REBELs). My trainees and I perform empirical studies that mine historical data generated during the development of software systems to study devops and software quali... Read More →
Monday October 14, 2024 10:00am - 10:30am PDT
Hahn Auditorium

10:45am PDT

Post Mortems for 4 Years of Remote Execution - Ulf Adams, EngFlow Inc.
Monday October 14, 2024 10:45am - 11:15am PDT
We have been running RE for several years. In this talk, we present what we have learned - the hard way - during this time, with the hope that this will help others who are building or operating a remote execution service prevent similar issues. We will cover these themes: cloud infrastructure limits, memory management pitfalls, software architecture oh-nos, and monitoring mistakes.
Speakers
avatar for Ulf Adams

Ulf Adams

CTO & Co-Founder, EngFlow Inc., EngFlow Inc.
MS in Computer Science from Stanford University, 11 years at Google as TLM for Blaze & Bazel. Now CTO & Co-Founder of EngFlow.
Monday October 14, 2024 10:45am - 11:15am PDT
Hahn Auditorium

11:15am PDT

Lessons from a Large JVM Monorepo - Janusz Kudelka, Airbnb
Monday October 14, 2024 11:15am - 11:45am PDT
Airbnb's JVM monorepo hosts 10s of millions of lines of Java, Kotlin and Scala. Each language posing unique challenges. This talk will show how we solved many of them, examples include: * importance of Remote Persistent Workers for RBE and how to maintain them * supporting cross-platform builds (mac and linux, x86 and arm) with universal binaries allowing cache sharing and dynamic execution across * safe and efficient usage of multiple source and runtime versions: mixed java 8 and 17, gradual runtime migrations, supporting multiple scala versions * our approach to compilation avoidance * straight to bytecode codegen when all other optimizations are not enough * what we tried that didn't work * ... and more
Speakers
avatar for Janusz Kudelka

Janusz Kudelka

Software Engineer, Airbnb
Janusz Kudelka is a Software Engineer with 10+ years of infrastructure experience with the last 5 years on Developer Infrastructure at Airbnb where he tries to make sure the developers are equipped to engineer the best software of their careers.
Monday October 14, 2024 11:15am - 11:45am PDT
Hahn Auditorium

1:30pm PDT

Perfect Sandboxing in Bazel - Rahul Butani, Intel
Monday October 14, 2024 1:30pm - 2:00pm PDT
Complete dependency graphs are at the heart of what gives Bazel its power and sandboxing plays a key role in keeping these graphs correct. However: Bazel's approach to sandboxing makes some concessions. With cooperation from tools this works well, but — what happens when your tools aren't well-behaved? In this talk, we detail how we — in service of migrating a 20 year old codebase to Bazel — extended Bazel and its sandbox to encode and enforce all host filesystem dependencies in Bazel's dependency graph. We'll cover the changes we had to make to use existing rulesets, how this compares with alternative solutions to this problem, lessons we learned along the way, and some takeaways for the broader ecosystem.
Monday October 14, 2024 1:30pm - 2:00pm PDT
Hahn Auditorium

2:00pm PDT

Running a Start-up on Bazel - Prasanna Swaminathan, Ergatta
Monday October 14, 2024 2:00pm - 2:30pm PDT
Bazel is typically described as a build system meant for large-scale systems. It's also described as a build system meant for teams with dedicated help to Bazel. But...what if you have neither? What if you are a small-scale start-up? Start-ups, by their nature, rarely have a spare headcount to devote to a build systems engineer. Their codebases are also usually pretty small. Why on Earth would you use Bazel in that context? Ergatta *is* using Bazel in that context. Ergatta has [note: I can put the real amount in here if this is accepted] LOC. Ergatta does not have the headcount to devote an engineer to Bazel. How does it work? How does a start-up with a 10-person engineering team work with a system that notoriously requires so much maintenance? In this talk, I'll talk about why we would ever entertain such a notion, what makes Bazel work for us, and how we remain productive in these times.
Speakers
avatar for Prasanna Swaminathan

Prasanna Swaminathan

CTO & Co-Founder, Ergatta
Prasanna is a co-founder and the CTO of Ergatta. Prior to starting Ergatta, he was primarily in the ad tech space, working on setting up global data streaming systems for Fortune 500 companies.
Monday October 14, 2024 2:00pm - 2:30pm PDT
Hahn Auditorium

2:45pm PDT

Pigweed and Bazel for Embedded Development - Ted Pudlik, Google, LLC
Monday October 14, 2024 2:45pm - 3:15pm PDT
Pigweed is an open-source collection of embedded libraries. We aim to make Bazel the best build system for developing microcontroller firmware. In this talk, I'll discuss how Pigweed leverages Bazel's build configuration APIs and platforms to solve common problems in building embedded firmware: building binaries for multiple cores in one Bazel invocation, compiling flasher scripts that embed the firmware, creating libraries with platform-specific implementations, and more!
Speakers
avatar for Ted Pudlik

Ted Pudlik

Staff Software Engineer, Google, LLC
I am a software engineer at Google. I was originally trained as a theoretical physicist, spent a couple years predicting the impact of network maintenance, then three more in the lidar group at Waymo. I currently work on Pigweed, focusing on making Bazel the best build system for... Read More →
Monday October 14, 2024 2:45pm - 3:15pm PDT
Hahn Auditorium

3:15pm PDT

Spotify's Journey to Releasing One of the World's Largest Apps with Bazel - Luka Cindro & Gabriel Borglund, Spotify
Monday October 14, 2024 3:15pm - 3:45pm PDT
At Spotify, we migrated the Android Music app, consisting of 5 million lines of Kotlin, Java and C++ code, from Gradle to Bazel. This talk covers the how we did it, the challenges we faced and how we overcame them. We'll go into how we used a hybrid build to migrate the codebase iteratively, the various patches and performance improvements we made to Bazel and the features we implemented to release the app to end users.
Speakers
avatar for Gabriel Borglund

Gabriel Borglund

Software Engineer, Spotify
Working on the developer experience at Spotify.
avatar for Luka Cindro

Luka Cindro

Staff Engineer, Spotify
Luka is a Staff Engineer at Spotify, where he has worked for 8 years. He focuses on client developer experience and infrastructure, which includes using Bazel for building, testing and releasing Spotify's apps. Prior to that, he worked on Android app architecture.
Monday October 14, 2024 3:15pm - 3:45pm PDT
Hahn Auditorium
 
Tuesday, October 15
 

9:00am PDT

Bazel Query Deep Dive: From Basics to Advanced Use Cases - Łukasz Wawrzyk, VirtusLab
Tuesday October 15, 2024 9:00am - 9:30am PDT
This session will focus on the powerful and often underutilized querying capabilities of Bazel. While many users know the basics of query, aquery, and cquery, less of them fully leverage their potential. This talk will introduce advanced techniques and practical use cases that can significantly enhance build debugging and tooling development process. Attendees will discover how advanced query features can improve their workflows and possibly inspire the creation of custom tools. Both advanced users and beginners will learn something new from this talk.
Speakers
avatar for Łukasz Wawrzyk

Łukasz Wawrzyk

Tooling Expert, VirtusLab
I work at VirtusLab for over 8 years and I spent about 7 on developing tooling for multiple large monorepos interacting with Bazel, Pants, Gradle, sbt and even took part in developing on a custom build tool. My work is focused on IDEs, but not only.
Tuesday October 15, 2024 9:00am - 9:30am PDT
Hahn Auditorium

9:30am PDT

Creating C++ Toolchains Easily - Matt Stark & Armando Montanez, Google
Tuesday October 15, 2024 9:30am - 10:00am PDT
Dive into the new mechanism we recently added to rules_cc through which we define C++ toolchains. Our new mechanism to do it is simpler, safer, explicit, and modular, and removes many of the confusing concepts such as compile_files.
Speakers
avatar for Matt Stark

Matt Stark

Software Engineer, Google
* Been using blaze for the past 6 years. * Spent the past 2 years converting ChromeOS to bazel. * Author of ChromeOS' hermetic bazel toolchains * Contributor to rules_rust * Author of rules_cc's rule based toolchains.
Tuesday October 15, 2024 9:30am - 10:00am PDT
Hahn Auditorium

10:00am PDT

{Fast, Correct, Secure} - Choose Three - Yannic Bonenberger & Antonio Di Stefano, EngFlow
Tuesday October 15, 2024 10:00am - 10:30am PDT
Bazel is well-known for its commitment to deliver both fast and correct builds at scale. However, ensuring trustworthy development and deployments to production goes beyond just accurate execution tracking. It encompasses the entire pipeline, including the integrity of the host environment, the security of third-party dependencies, and the reliability of remote caching and execution systems. In this talk, we will explore the advanced features Bazel offers for creating correct and secure builds. Additionally, we will address existing challenges in generating Software Bill of Materials (SBOMs) and maintaining reliable audit trails, so your process can achieve the highest Supply Chain Levels for Software Artifacts (SLSA) compliance.
Speakers
avatar for Yannic Bonenberger

Yannic Bonenberger

Software Engineer, EngFlow
Yannic Bonenberger is a Software Engineer at EngFlow working on distributing builds across 10,000s of CPU cores. During his career, he has worked with many of the largest and most innovative organizations to reduce build times of large C++ applications from hours or more to less than... Read More →
avatar for Antonio Di Stefano

Antonio Di Stefano

Solution Engineer, EngFlow
I am a software engineer with a passion for how we write, build and ship software. Currently working at EngFlow to make all of the above faster and safer whilst bringing back the joy of programming. I also love building weird and unexpected things (like snake on Bazel).
Tuesday October 15, 2024 10:00am - 10:30am PDT
Hahn Auditorium

10:45am PDT

Symbolic Macros and Rule Finalizers - Susan Steinman & Alexandre Rostovtsev, Google
Tuesday October 15, 2024 10:45am - 11:15am PDT
Symbolic macros are well-structured macros with rule-like capabilities, like typed, well-documented attributes, good behavior with labels and selects(), and declared dependencies. Learn more about the structure and benefits of symbolic macros and how to use them in your code base. In addition, learn about upcoming work on rule finalizers, a special symbolic macro which - regardless of its lexical position in a BUILD file - is evaluated in the final stage of loading a package, after all non-finalizer targets have been defined.
Speakers
avatar for Alexandre Rostovtsev

Alexandre Rostovtsev

Software Engineer, Google
I have been a member of the Bazel team for 6 years; my main focus recently has been the Starlark language.
avatar for Susan Steinman

Susan Steinman

Software Engineer, Google
Susan has the awesome job of collaborating with colleagues across the Bazel team on a variety of feature and performance projects, and working to foster team productivity and collaboration. Prior to Google, Susan worked part time at a research lab and while pursuing a career in modern... Read More →
Tuesday October 15, 2024 10:45am - 11:15am PDT
Hahn Auditorium

11:15am PDT

Reducing Bazel's Memory Consumption - Ivo Ristovski List, Google
Tuesday October 15, 2024 11:15am - 11:45am PDT
Since last BazelCon we came up with several very exciting ideas, how to reduce memory consumption. In this talk I will present several of them: skyfocus, skeletal analysis and how to further reduce peek heap consumption. Additional saving may come from laziness: lazy macros and lazy loading.
Speakers
avatar for Ivo Ristovski List

Ivo Ristovski List

Mr., Google
Ivo works at Google since 2020. He's the leader of Rules API team, responsible for migrating native rules to Starlark and improving the interface Bazel provides to Starlark rule authors.
Tuesday October 15, 2024 11:15am - 11:45am PDT
Hahn Auditorium

1:30pm PDT

Remote Execution with Rules_nixpkgs: Design and Deployment - Guillaume Maudoux, Modus Create
Tuesday October 15, 2024 1:30pm - 2:00pm PDT
rules_nixpkgs brings the power of Nix to Bazel dependencies. It provides access to the large nixpkgs package repository and benefits from hermeticity and declarative configurations that are dear to both the Bazel and Nix communities. But despite all the benefits, it still comes with one major downside. It makes remote execution of Bazel actions next to impossible but for some restricted use cases. In short, rules_nixpkgs and remote execution are like oil and vinegar. It takes effort to blend them into a tasty vinaigrette, but once you do, you'll never look back to your plain old builds. In this talk, we will introduce the challenges posed by this integration. Various solutions have been proposed over the years. We will explain how we chose one by looking at how these solutions propagate the necessary information across their components. We will then delve into the specifics of our design, explore technical aspects of our deployment, and discuss issues and benefits observed in practice. The last part will focus on performance metrics. We will share our understanding of the impact this change had on our infrastructure and, most importantly, on developers.
Speakers
avatar for Guillaume Maudoux

Guillaume Maudoux

Developer Productivity Engineer, Modus Create
Guillaume has a background in computer science, engineering and applied mathematics. Regarding software systems, his main concern is correctness, reliability, and trustworthiness. He is passionate about understanding complex systems and untangling intricate issues. He loves getting... Read More →
Tuesday October 15, 2024 1:30pm - 2:00pm PDT
Hahn Auditorium

2:00pm PDT

Rules_lint: Formatting and Linting All Languages - Alex Eagle, Aspect Build Systems
Tuesday October 15, 2024 2:00pm - 2:30pm PDT
Tools for formatting code and performing static analysis are available in some of Bazel's language rules, but their approaches differ. This means each language has to be setup separately, and product engineers may have to learn multiple workflows across the full stack. rules_lint provides a consistent abstraction for plugging in language-specific tools, and avoids requiring changes either in language rulesets, or in user's BUILD files. In your repository you setup a single "format" workflow, and a single "linting" workflow. This talk explains why these two workflows are distinct. We'll explain how to integrate new tools into rules_lint, options for installing it into your repository, and show some nice ways that results can be integrated into developer workflows.
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.
Tuesday October 15, 2024 2:00pm - 2:30pm PDT
Hahn Auditorium

2:45pm PDT

Utilizing Bazel for Cross-Platform and Cross-Architecture Compilation and Testing - Axel Uhlig & Marcel Kost, Salesforce
Tuesday October 15, 2024 2:45pm - 3:15pm PDT
We want to demonstrate how to use Bazel to compile C++ source code across various operating systems (e.g. Linux, Windows, and macOS) and processor architectures (e.g. AMD and ARM). We will show how to - Create a Bazel C++ toolchain, that serves different host and target operating systems and architectures - Make Bazel automatically pick the right toolchain configuration based on host and target system - Compile natively as well as cross platform - Create “universal binaries” by running several toolchains in the same build, creating a single artifact, that can run on multiple architectures - Use the platform information to name packages, switch dependencies, skip targets, … We will show how to achieve all of this by using native Bazel features like multi platform builds, toolchains, transitions, and sufficiently hermetic toolchains.
Speakers
avatar for Marcel Kost

Marcel Kost

Software Engineer, Salesforce
Software Engineer, working on CI/CD systems using Bazel for C++ code bases. Currently working for Salesforce, supporting the Hyper Database team to ship their database as part of Tableau and other Salesforce products.
avatar for Axel Uhlig

Axel Uhlig

Software Engineer, Salesforce
Software Engineer, mostly working on CI/CD systems using Bazel for C++ code bases. Previously worked on the Bazel migration of BMW. Currently working for Salesforce, supporting the Hyper Database team to ship their database as part of Tableau and other Salesforce products.
Tuesday October 15, 2024 2:45pm - 3:15pm PDT
Hahn Auditorium

3:15pm PDT

Interoperating Bazel and Other Build Systems - Alexander Neben & Zack Winter, MongoDB
Tuesday October 15, 2024 3:15pm - 3:45pm PDT
At MongoDB we do not have one central codebase or only one language. As we continue to scale this fractured ecosystem is harder to maintain so we needed to migrate these disparate repos to a shared development platform. Our first step in that journey is migrating large repos to be built with Bazel so that the build team can make a feature once and it can benefit all of our developers. MongoDB’s approach to doing this is novel because we were able to de-risk these projects by supporting significant interoperability during migration. The downside, which is what most of this talk will be about, is dealing with the large amount of configuration in the build system. For example, the MongoDB C++ codebase had ~112 configuration options and remote compilation (not with RBE) before this process began and before converting even a single target we needed to support many of these configuration options and two remote execution environments. We are going to speak about the tools we used and created for these transitions, techniques we used for maintaining our hybrid build system, and how you too can switch to Bazel gradually and gently with the enthusiastic support of your organization.
Speakers
avatar for Alexander Neben

Alexander Neben

Director of Engineering, MongoDB
Alex Neben has spent most of his career on leading build system teams with a focus on large C++ codebases. He also has a passion for performance testing and analysis. Alex is currently a Director of Engineering in the developer productivity organization at MongoDB.
Tuesday October 15, 2024 3:15pm - 3:45pm 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.