Co-architected the server-driven UI platform for a national airline's mobile app, so screen composition moved from app-store releases to backend-driven definitions and new screens ship without an app-store cycle. The Android modernization underneath cut feature delivery from a multi-week cycle to a fast, repeatable one.
Context and stakes
I was the Android technical lead on a national airline's mobile platform, with influence across iOS and backend. The app served millions of monthly active users, and the foundational engineering sat behind a large app-driven revenue line, so reliability and delivery speed were business-critical, not cosmetic.
The codebase was years old. Every meaningful UI change rode an app-store release, which meant the product could not adjust screens, run experiments, or personalize without a multi-week cycle, and the aging dependency setup was slowing every team down.
Problem
Two constraints compounded. First, UI was release-gated: shipping or changing a screen required an app-store submission, so iteration was slow and personalization was effectively impossible. Second, the modernization debt, an old dependency-injection setup and pre-Compose UI, made the codebase slow to change and slow to onboard into, right as feature demand was rising.