Build better software to build software better
2025-11-06
21 min read
0
by David Reed (he/his)
Endigest AI Core Summary
This post explains how the Slack/Quip build team reduced 60-minute build times by applying software engineering principles (caching and parallelization) to their Bazel-based build pipeline.
- •Build performance is modeled as a directed acyclic graph (DAG) where targets have explicit inputs, outputs, and commands
- •Caching works best when build units are hermetic (only use declared inputs) and idempotent (same inputs always produce same outputs)
- •Granularity of cache keys directly impacts cache hit rate — smaller, more focused build units yield better cache performance
- •Parallelization requires rigorously defined input/output boundaries so work can be distributed across CPU cores or remote build clusters
- •Bazel enforces hermeticity via sandboxing and automatically handles caching, parallelization, and minimal rebuild of only affected targets
Tags:
#Uncategorized
#build-performance
#caching
#ci-cd
#developer-experience
#devops
#python
