Engineering at Slack logoEngineering at Slack
|DevOps

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