Grab May 15, 2026

Scaling developer experience: How we improved Android Studio in a large monorepo

Article Summary

Grab's Android team turned 35-minute IDE syncs into a 2-minute flow. Their secret? A clever Gradle trick that required just three lines of code and zero workflow changes for 100+ engineers.

Grab's superapp monorepo grew to 2,000 Android modules and 11 million lines of code. AI-assisted development accelerated growth, but Android Studio syncs became a 35-minute bottleneck that consumed 10 GB of memory and frustrated 76% of developers.

Key Takeaways

Critical Insight

By building a custom Focus plugin that reuses their Bazel migration infrastructure, Grab cut Android Studio sync times by 94% without changing a single team's workflow.

The dependency count indicator accidentally nudged teams toward cleaner architecture in a way no mandate could achieve.

About This Article

Problem

Gradle's full configuration phase evaluated all 2,000 modules every time, even when developers only needed a few. A single cold-start sync took over 35 minutes and used 10 GB of memory. This frustrated developers so much that 82% asked for a way to exclude modules.

Solution

Grab used their existing Grazel migration infrastructure to pre-compute dependency graphs as static JSON files during the migrateToBazel task. This removed the expensive Gradle configuration phase entirely and let developers focus on specific modules instantly.

Impact

Compose preview builds became faster with less indexing work. Developers working on typical UI modules with 5-10 dependencies now sync in under 2 minutes consistently, compared to the previous 26-minute p95 baseline.