Gojek Aritra Roy Apr 25, 2019

The Story of Our Big Android App Rewrite

Article Summary

Gojek's driver app serves 2 million+ partners who depend on it for their daily income. When the app goes down for even an hour, drivers lose significant earnings—so a rewrite was high stakes.

Gojek's Driver Platform team faced a critical challenge: their driver SuperApp had outdated design, cluttered legacy code, and struggled on low-end devices used 10-12 hours daily. They needed a complete overhaul without halting feature development or jeopardizing business.

Key Takeaways

Critical Insight

Gojek successfully rewrote their mission-critical driver app incrementally over months, delivering modern design and robust architecture while continuing to ship new features.

The article reveals their specific approach to managing legacy code alongside new features in the same codebase—and the custom performance tooling they built to prevent issues in production.

About This Article

Problem

Gojek's driver app ran poorly on low-end devices with 512MB RAM. Drivers needed to use it 10-12 hours daily while keeping battery and network data usage minimal, especially in areas with spotty connectivity.

Solution

Aritra Roy's team built the app using Clean Architecture across four layers: data, domain, presentation, and UI. They used RxJava for reactive streams and required exhaustive unit test coverage, which the CI pipeline enforced before any code could merge.

Impact

The rewritten app worked reliably across all driver partners. Performance improved noticeably, and the codebase became stable enough to handle rapid team expansion and new features without breaking.