Shitlist-driven development and other tricks for working on large codebases
summary
Shopify runs a monolithic Rails app with ~800 contributors, ~50 deploys/day and ~70,000 tests; speed and automation are everything. Build containers ahead of time, parallelize CI, shrink app boot and shutdown times, and use an automated deployer (Shiva deployer) plus a browser-extension “ready to merge” button to avoid human bottlenecks. Migrate APIs with a guarded whitelist called a shitlist that prevents new callers while letting staged fixes land. Detect flaky tests by rerunning tests thousands of times and locate leaky tests with a binary-search leak finder.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:43Shopify
- 3:24Deploy
- 8:24Deployment
- 9:44Shiva
- 13:19Deprecations
- 29:58Questions
- 30:39Shopify decisionmaking process
- 30:53Safety tests
- 31:43Unstable tests
- 32:11Florians experience
related talks
34mShitlist-driven development and other tricks for working on large codebases
39mScaling R&D to thousands of people without dedicated QA
36mFrom massive pull requests to trunk-based development with Ruby
23mKeeping Code Style Sanity in a 13-year-old Codebase
29mHacking Development Culture: Treating Developers As People
24mKeeping Code Style Sanity in a 13-year-old Codebase
17mRewriting Code and Culture
27mTaming the Kraken - How Operations enables developer productivity
