Skip to content

Case study

CDG Zig

ComfortDelGro's taxi and bus booking app for Singapore, and the Android side of it I run.

Role
Senior Android Developer
Studio
Codigo
Period
Oct 2023 – Present
Scale
1M+ downloads

CDG Zig is how people in Singapore book a ComfortDelGro taxi or bus. I run the Android side — architecture, features, testing and releases — and care about leaving code the next developer can work with.

  • Booking
  • Live driver tracking on Google Maps
  • Fare estimates
  • Multi-stop rides
  • Cashless payment
  1. ~30%

    faster screen rendering

    Moved the booking flow off XML and onto Compose

    I led the migration and rebuilt the main booking screens along the way. The rewrite paid for itself twice: a lot of duplicated UI code disappeared with it, and the screens people touch on every single trip got quicker to draw.

  2. ~20%

    fewer crashes

    Brought the crash rate down, then kept it down

    Unit and UI tests where they were missing, then straight through the top Crashlytics issues in order. What made it stick was the habit rather than the fixes: crash and ANR reports get checked after every release, so a regression surfaces in days instead of in store reviews.

  3. 1 library

    several teams build on it

    Pulled the shared pieces out into something reusable

    The network layer, the shared UI components and the common utilities were all going to be rewritten by whichever team needed them next. They are an internal library now, and other project teams build on it instead of starting again. It is the part of this work that outlives my tickets.

Stack

  • Language & UI

    • Kotlin
    • Jetpack Compose
    • XML Views
    • Material 3
  • Platform

    • Google Maps SDK
    • Coroutines & Flow
    • ViewModel
    • Navigation
    • Room
  • Quality

    • JUnit
    • MockK
    • Compose UI tests
    • Crashlytics
    • Firebase Performance
  • Release

    • Gradle (Kotlin DSL)
    • Play Console staged rollouts
    • GitHub Actions

All work