Neil Mitchell
Programmer
Meta
Neil at Meta describes developer productivity using one of Meta’s internal build tools, Buck 2. He discusses performance improvements made since Buck 1, new features like abstraction through APIs, parallel and incremental compute, remote execution, and the use of virtual files to improve developer productivity.
About the session
Neil at Meta describes developer productivity using one of Meta’s internal build tools, Buck 2. He discusses performance improvements made since Buck 1, new features like abstraction through APIs, parallel and incremental compute, remote execution, and the use of virtual files to improve developer productivity.
Watch the video
Buck2 is an open-source build system written in Rust and designed to make your build experience faster and more efficient. Buck2 is extensible, allowing new languages to be added, but already has support for most popular languages (Python, C++, Rust, Go etc.). Thousands of developers at Meta already use Buck2, where we observed that Buck2 completed builds 2x as fast as Buck1, and developers using Buck2 ended up producing meaningfully more code.
In this talk, we’ll discuss what makes Buck2 fast, what it shares with similar build systems (like Buck1 and Bazel), and what sets it apart. In order to give maximum performance, Buck2 has a focus on parallelism, minimal invalidation on changes, integration with remote execution (running steps of the build on servers), and integration with virtual file systems. In order to have the flexibility to keep making improvements, we have a strong separation between the core build system (written in Rust, no knowledge of any language) and the language-specific rules (written in Starlark).
Buck2 is open source, and this talk will also cover what it looks like to get started with Buck2 in your project. More details about Buck2 can be found at https://buck2.build/.
Neil is a programmer with a fondness for Haskell, Rust, and developer tooling. Neil got a PhD from York University on compilers and static analysis, then spent over a decade in finance, before joining Meta where he works on builds and CI.