Build and release at Nubank
summary
Nubank had very slow Android builds (40–50 minute clean builds and ~145 minutes of unit tests) and modularized the codebase into many small modules, but ran into breakage from a shared foundation library. They moved to a monorepo-style modular graph using the Buck distributed build tool with aggressive caching, shard-and-parallelize tests with Funk, and reduced build time to ~8–9 minutes; migration used freeze days, staged rollouts, and PR gating to catch integration breaks.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 2:54Early challenges
- 5:48Modular architecture
- 9:19Foundation library issues
- 11:03Adding a new layer
- 12:30Distributed builds
- 14:15Transition to Buck
- 17:51Testing with Buck
- 19:58Performance gains
- 21:03Beyond build speed
- 22:31Device farm and tests
- 23:58Parallel test execution
- 25:28Handling flaky tests
- 26:33Recent changes
- 28:22Full transition challenges
- 30:11Git limitations
- 31:17Branch management
- 32:43Ongoing struggles
related talks
31mDude, Where's My Build? Android CI/CD
41mDude, Where's My Build? Android CI/CD at Uber
32mNubank's experience scaling microservices operations
43mBetter, Faster, and Stronger CI/CD Pipeline
41mBreaking the build
39mWorking with Alternative Build Systems
37mNetflix + Gradle A Journey in Developer Productivity
33mThe age of monorepos
