Skip to content

Build Meetup in Munich – Recap

Another successful build meetup done! Our April meetup was co-hosted by JetBrains. The night was all about swapping stories, learning something new, and enjoying some good food and drinks. If you missed out, read the recap below and check out meetup.build for the next one!

Build Meetup April 2025

Bazel As A Beginner Tool by Justin Kaeser from JetBrains

To kick things off, Justin started with a presentation on the basics of JetBrain’s Bazel for IntelliJ plugin. During the live demo, he showcased how the plugin assists in setting up a new Bazel project by leveraging AI to automatically generate BUILD files, dependencies, and the main project structure (the demo used Java files). Justin also shared an update on JetBrains’ Bazel project support, highlighting its potential to lower the barrier to entry for Bazel newbies. 

Advanced Bazel Config Management by Benedikt Würkner from TTTech Auto

GitHub Repo

Then Benedikt from TTTech Auto dug into config management, showing some advanced methods. Drawing from his experience with build configuration and build systems, he demonstrated wrangling configs across multiple projects, structuring outputs with rules_pkg, and even tinkering with things at action graph creation time. Check out his abstraction repo to see how to manage those "same type, different content" files without losing your sanity. The repo covers the entire talk, offering practical solutions to common configuration challenges.

asset-fuse — Bringing Large Datasets to Buck2 and Bazel by Malte Poll from Tweag by Modus Create

GitHub Repo | Slides

Malte from Tweag presented asset-fuse, a method to address the madness that is dealing with large files in the Remote Execution API (RE API). As a FUSE-based file system, asset-fuse aims to solve this by creating a fetch service where you have on-demand access to a digest and large datasets faster. It’s kind of like a beefed up git-lfs, except it has lazy loading and prefetching. Inspired by projects like Google’s sourceFS and Meta’s EdenFS, asset-fuse is a working beta available on GitHub for you to test out. 

CMake HermeticFetchContent: Monorepo as a Service by Damien Buhl from tipi.build

GitHub Repo | Slides

Damien shares how he dove headfirst into the chaos of C and C++ dependencies and emerged with tipi.build’s CMake HermeticFetchContent (HFC) and its integration with Remote Execution. His presentation included insight into cross-platform development and how to connect it with CPS data models, cloud-based build and test parallelization, auto-scaling, and standards (Bazel RE API and Git). A key focus was how to leverage the CPS data model early in the configuration stage to allow parallel dependency builds and increase build parallelization granularity. Tipi.build’s HFC tool uses HERMETIC_TOOLCHAIN_EXTENSION to allow conflicting parameters between projects and different dependencies. Damien showed how to isolate dependency builds. More in-depth details about CMake HFC can be found on the tipi.build blog

Building a Linux OS with Bazel by Lorenz Brun and Tim Windelschmidt from Monogon OS

GitHub Repo

Together, Tim and Lorenz shared their experience of building Monogon OS, an open source operating system, using Bazel. They’ve been working hard to build a whole OS, with a GO userspace, custom LLVM toolchains, and multiple platforms all in one Bazel monorepo

Remote Execution: How custom would you like it? by Sara Adams from EngFlow

Slides

To wrap things up, Sara explored the tradeoffs between configurability and automation in the context of remote execution. Her presentation emphasized that with great configurability comes great responsibility. Sure, your users can “get exactly what they want,” but there’s a lot of extra hoops to jump. More configurability can lead to more manual work, complex implementations, conflicting configurations, and constant updates. Sara provided examples of when configurability is important and when automation can yield greater benefits. She concluded with key questions to ask yourself when deciding whether a feature should be super configurable or as automated as possible. The discussion showed us that not all customization is good customization – understanding the cost vs. value is essential.

Conclusion

The Munich Build Meetup provided a plethora of information, allowing for discussion about the complexities of build systems. Whether you’re wrestling with Bazel, Taming CMake, building a small project or working on a whole OS, join us at the next Build Meetup. Share your challenges, triumphs, and hard-earned insights. See you next time, and remember: keep building, keep learning, and keep pushing the boundaries.