Slack

Build better software to build software better

Nov 6, 2025
Build better software to build software better
SummaryAI, from the source post

This post details the engineering work required to make Quip and Slack Canvas backend builds idempotent, hermetic, and granular, enabling effective caching and parallelization with Bazel. It explains how to apply principles of caching and parallelization, similar to application code optimization, to build systems. The post highlights the challenges of deeply intertwined backend and build code, large build execution units, and cycles in the dependency graph that previously prevented Bazel from delivering speed boosts. It also discusses the importance of defining inputs and outputs for build targets and the benefits of Bazel's automatic caching and distribution capabilities when these principles are applied.

More from the Build System Performance trail