BazelCon
""

Training Day

Join us for a Training Day on Tuesday, 13 October. Registration will be limited to one session per time slot. Morning and afternoon breaks, and lunch will be provided for Training Day attendees.

Time: 9:00 – 10:30

Instructor: John Cater

Sponsored by:

EngFlow logo

Take the Bazel Bootcamp for an introduction to Bazel, including what makes Bazel different from other build systems, how to set up your project with Bazel, and the basics of building and testing your code.

The workshop is aimed at beginner Bazel users.

Time: 9:00 – 10:30

Instructor: Rafael Lima

Sponsored by:

Tweag by modus create logo

In modern CI/CD, the traditional docker build is often the slowest link in the chain. Because standard Dockerfiles rely on imperative, sequential execution, they struggle with cache invalidation and lack the fine-grained dependency tracking needed for massive monorepos.

This workshop introduces a Graph-Based approach to containerization. By using Bazel, rules_oci, and rules_img, we treat container layers as pure, declarative artifacts. This move allows us to assemble images in seconds, completely independent of a local Docker daemon. Attendees will learn how to transition from legacy “black box” builds to a transparent, content-addressable architecture that ensures what you build in CI is byte-for-byte identical to what runs in production.

Time: 11:00 – 12:30

Instructor: Antonio Di Stefano & Yannic Bonenberger

Sponsored by:

EngFlow logo

In this 90-minute workshop, we share our learnings from years of working on and with Bazel-deployments at scale. Beyond various stories of debugging mystical build issues, this includes a practical exploration of advanced Bazel concepts, focusing on rule authoring, performance optimization, and remote execution.

Through a series of diagnostic “break-fix” scenarios, participants will resolve architectural issues involving directory artifacts, improper action tagging and inefficient dependency fetching. These exercises are designed to bridge the gap between basic Bazel usage and scalable build engineering by demonstrating how specific configuration choices directly impact build speed and reliability.

The curriculum extends into custom test infrastructure, covering the development of test rules, sharding, and code coverage integration. To conclude, we will examine the use of action templates and ctx.actions.map_directory to translate external build logic into native Bazel actions.

By the end of the session, attendees will have a tactical framework for authoring robust rules and optimizing Bazel for large-scale, distributed environments.

Time: 11:00 – 12:30

Instructor: Jason Bedard, Greg Magolan & Benjamin Muschko

Sponsored by:

aspect build logo

In this hands-on workshop, you’ll build a real JavaScript and TypeScript project from scratch, including a Node.js service, a type-checked and bundled web app, a test suite, and a watch-mode so the day-to-day developer loop feels familiar.

The Aspect team has maintained Bazel’s JavaScript story since 2017. rules_js and rules_ts are the result: modern rulesets and toolchains that understand Node and pnpm, pair cleanly with TypeScript, and run the fast Rust and Go-based tools that the JS ecosystem has standardized on (esbuild, SWC, Vite, Rspack). If you’ve tried Bazel for JavaScript before and didn’t like it, this is the version that finally feels native.

This workshop is for all JavaScript and TypeScript developers, whether you’re evaluating Bazel for your team or already using it and want a faster, more modern JS toolchain. No prior Bazel experience required.

Time: 13:30 – 15:00

Instructor: Jay Conrod

Sponsored by:

EngFlow logo

Learn how to write your own Bazel rules. In this workshop, you’ll discover how to add support for code generation tools and new programming languages. You’ll gain a deeper understanding of how Bazel builds projects using rules and actions. Plus, you’ll get practical insights on writing efficient, scalable rulesets optimized for remote execution.

This session is led by Jay, an expert in the field. He led the development of rules_go and Gazelle while at Google, authored the “Writing Bazel rules” series, and now focuses on optimizing remote execution and caching at EngFlow.

This workshop is aimed at beginner to intermediate Bazel users. You should be familiar with basic concepts like build files and labels, but prior experience writing rules or macros isn’t required.

Time: 13:30 – 15:00

Instructor: Greg Magolan, Şahin Yort & Benjamin Muschko

Sponsored by:

aspect build logo

Bazel is famously extensible, but most of that extensibility goes inwards, towards defining new rules. In this hands-on workshop, you’ll write AXL extensions live. You’ll write a custom aspect subcommand, a Starlark BUILD generator that matches your code conventions, and a CI integration that posts lint findings as inline annotations on a pull request.

AXL (Aspect Extension Language) opens up the outside of Bazel: the CLI, developer workflows, BUILD file generation, and how build results surface back into your CI. AXL is a Starlark dialect that Aspect has built directly into our open-source CLI. You can use it to script custom commands, create BUILD generators in Starlark (instead of Go Gazelle plugins), drive GitHub status checks, and use Buildkite annotations from the Build Event Stream (including lint findings with suggested fixes on the PR diff), and replace the brittle Bash and Makefile layer that usually sits between engineers and Bazel build. For platform and developer-experience teams, it’s the task-runner abstraction you’ve been hand-rolling out of shell scripts.

Aimed at Bazel users of all experience levels, from newcomers curious about Starlark to platform and DevX teams looking to standardize how their engineers interact with Bazel. Comfort with BUILD files and labels helps; prior Starlark experience is not required.

Time: 15:30 – 17:00

Instructor: Jorge Acosta & Ricard Sole Casas

Sponsored by:

EngFlow logo

How fast should my builds run? A Journey to understand build optimization.

During this training session, EngFlow Engineer Ricard and Product Manager Jorge will guide you through theoretical and Practical exercises to estimate the optimal execution time of a given target. From Critical Path to Build graph analysis and HW constraints.

Time: 15:30 – 17:00

Instructor: César Abel, Jason Bedard, Benjamin Muschko

Sponsored by:

aspect build logo

Python on Bazel has historically been a challenge: slow setup times, broken IDE integrations, and unpredictable virtualenv behavior. rules_py changes the game. Paired with the UV package manager, it provides lightning-fast dependency resolution, hermetic environments and virtualenvs that your editor and debugger actually understand.

In this hands-on workshop, we will build a production-ready application using Django, the most popular framework for web development in the Python ecosystem. We will walk through the entire developer loop:

  • Dependency Management: Leveraging UV for high-performance package resolution.
  • Zero-Maintenance Infrastructure: Automatic BUILD file generation through Aspect’s Starlark-based generators, keeping your project in sync without manual intervention.
  • Development & Quality: Implementing testing with code coverage and integrating linters/formatters.
  • Troubleshooting: Navigating common Python-on-Bazel pitfalls, such as circular dependencies and complex import structures.
  • Production Readiness: Packaging the application for the cloud using OCI image generation for byte-for-byte identical builds from CI to production.

Aimed at Python developers at all stages, from those evaluating Bazel for the first time to experienced users looking to upgrade to a modern, faster Python toolchain with rules_py 2.0. No prior Bazel experience required.

Sponsors

Platinum

Silver