Tackling Large Ruby Refactorings with Confidence (and Science!)
summary
At GitHub a legacy permissions subsystem is rewritten into a new abilities system and instrumented with the open-source scientist library to dark‑run alternate code paths. The team generates abilities via migrators, runs 20,000 experiments per minute comparing control and candidate results, pushes mismatches to Redis, fixes data quality and order‑dependent bugs, tunes performance, and then ships; the new system runs in production with no persistent regressions.
AI-written summary · about
chapters (45)
- 0:00Introduction
- 1:15Traditional refactoring
- 3:14GitHub Case Study
- 3:29GitHub Permissions
- 4:08Why
- 4:19Collaboration
- 4:58Permissions
- 6:51Repositories
- 7:38Transitional States
- 8:41Performance Degradation
- 9:47Change Permissions
- 10:11Rewrite the System
- 10:37Goals
- 11:17Testing
- 11:36Capabilities
- 12:16Test Coverage
- 13:08The Hack
- 14:21Science
- 16:42Caveat
- 17:00Spike
- 17:24The System
- 17:41Permission
- 17:58Cascading
- 18:30Implementing Abilities
- 19:19Adding Science
- 20:07Data Dashboard
- 20:55Graphs
- 21:12Performance Data
- 21:47Redis
- 23:36Data Quality Issues
- 24:51Mismatches
- 26:18Performance Problems
- 26:58Dark Shift
- 27:21Optimize Abilities
- 27:52Inference
- 28:19Shipping
- 28:33Rollout
- 30:13Backups
- 30:56Everything was green
- 31:40No mismatches
- 31:58The flip
- 32:09The science
- 32:35Abilities
- 32:58Scientist
- 33:14Questions
related talks
28mHarry Potter and the Legacy Codebase
39mDown The Rabbit Hole: An Adventure in Legacy Code
01h 03mRuby at Scale
27mScaling Ruby Applications: Challenges, Solutions and Best Practices
41mTerraforming legacy Rails applications
26mRocky Mountain Ruby 2023 - Lightning Talks
33mMeet Shopify's Ruby and Rails Infrastructure Team
45mAccessible by default
