Modularizing Our Driver App for Android: Benefits & Way Ahead (Part-3)
Article Summary
Gojek's driver app modularization cut CI build times by 33% and unlocked team-level productivity metrics. Here's what they learned from breaking up their monolith.
This is Part 3 of Gojek's series on modularizing their Android driver app. After extracting core modules, utilities, and features, the team measured the real-world impact on build speeds, code quality, and team productivity.
Key Takeaways
- CI build times dropped from 30 minutes to just over 20 minutes
- Reduced app module classes from 78% to 68% of total codebase
- Clear feature ownership enabled per-team metrics: test coverage, binary size, crashes
- Separate API and implementation modules let teams experiment with different architectures
- Manual code reviews still essential to prevent core modules becoming dumping grounds
Modularization delivered faster builds and cleaner interfaces, but required careful planning, automated guardrails, and ongoing code review discipline to succeed.
About This Article
Gojek's driver app had messy code architecture. About 78% of classes were crammed into a single app module, which made it hard to separate concerns and slowed down IDE compilation.
Ashish Pathak's team broke things apart by creating core modules, utility modules, and feature modules with clear boundaries between API and implementation. They set up automated guardrails and code reviews to keep shared modules from turning into a dumping ground for common logic.
The cleaner interfaces and decoupled APIs reduced code entanglement. The team could now assign feature ownership clearly and track test coverage, binary size per feature, and crashes per feature without affecting other parts of the codebase.