Engineering Manager at Grab, leading consumer maps engineering across three hubs.
Mobile engineer turned engineering manager, with more than ten years of shipping Android and iOS apps used by millions. At Grab I lead the teams behind the consumer map experience: the in-app map, wayfinding, and place discovery. I own release stability for the shared map SDKs used across the passenger, driver, and merchant apps. I still write code, take on the hardest platform migrations myself, and have made AI coding agents an everyday part of how my team works.
Five areas I focus on as an engineering manager, with examples from my time leading maps engineering at Grab.
I own the platform roadmap for consumer maps: large migrations such as Kotlin 2.1 and Android 16 (API 36), a navigation re-architecture on MapLibre, and cleanup of experimentation infrastructure. My job is to break multi-quarter technical work into pieces that ship without stalling product work.
The surfaces under my teams include the home-screen map, trip planning, and place search and discovery in one of Southeast Asia's largest consumer apps.
I lead a team of 12 engineers across Singapore, Beijing, and Jakarta, and have grown it through hiring. I've coached four engineers into leads who fully own their product areas.
I set up a navigation team in Jakarta from scratch and wrote the onboarding guides that get new hires shipping production code in their first week or two.
Your leadership taught me more than just technical or execution skills. It shaped how I think about responsibility, clarity, and growth as an engineer. A former team member
As a first-time manager in late 2022, I took over a crowdsourced map-contribution platform that was struggling, and later helped build Grab's in-house navigation stack, which now runs in the driver app. I personally shipped the Kotlin 2 (K2 compiler) and Android 16 migration on a core map SDK: KAPT to KSP, edge-to-edge UI, and several dependency upgrades with the full test suite passing.
I designed the unified feature-flag approach for consumer maps and led a multi-year, cross-platform build of a map-contribution SDK for Android and iOS. I review for release safety on both the passenger and driver release trains, and I dig into the hardest native crashes, including memory-corruption bugs in the C++ map renderer.
Maps sit underneath almost every product in a super app, so a lot of my work is coordination. I work with transport, food, payments, driver, and customer-support teams to get map features into their flows.
One example: a collaboration that surfaces restaurant deals on the map during a ride, built with the food and transport teams, which we then wrote up as a reusable model for future cross-team projects.
When production issues hit navigation or the driver app, I coordinate the response: reproduction with QA, feature-flag rollback, recovery, and clear communication to leadership.
Afterwards I run blameless retros and turn them into process fixes, such as better severity classification and faster on-call escalation.
I treat AI coding agents as part of the team's toolkit and build the tooling that makes them useful on a large mobile codebase.
Map, navigation, and map-contribution SDKs on Android and iOS, plus code review on a native C++/JNI map-matching engine.
Backend services for map contributions, and moving legacy feature flags onto a shared experimentation platform.
Review of on-device computer-vision models, and engineering ownership of recommendation-driven search and trip-planning surfaces.
Coding orchestrators, Claude Skills, and MCP servers, plus coaching engineers and managers on working with AI agents.
Hands-on stack: Kotlin, Java, Jetpack Compose, Swift, SwiftUI, NDK/JNI, TensorFlow Lite, Room, RxJava, Coroutines, MVVM, VIPER, JUnit, Mockito, Claude Code, Cursor, Copilot. Plus people management, planning, and cross-team delivery.
Leading a team of 12 engineers across Singapore, Beijing, and Jakarta on cross-platform map SDKs covering on-device ML, map matching, and Compose UI kits. Driving adoption of AI coding tools across the team. Before that, as Lead Software Engineer on GrabDriver maps and navigation: MVVM and RxJava migration, Kotlin conversion, localisation, and better test coverage for an app with 10M+ downloads.
Re-architected the app to VIPER, owned the release lifecycle and API contracts, redesigned search filters and the homepage widgets, shipped the Wizard loyalty feature, reduced latency, and migrated the codebase to Kotlin for an app with 10M+ downloads.
Owned the full development lifecycle for the feed and story creation: OkHttp, ExoPlayer, custom gestures and animations, caching, and APK size and memory optimisation for an app with 5M+ downloads.
Shipped Material Design apps with maps, push notifications, Retrofit, Picasso, the Facebook SDK, and AWS uploads, including Vyomo (salon booking, later Naturals@Home) and other on-demand products.
Allowed the Geo team to fulfill all commitments… one full week ahead of schedule.
Your leadership taught me more than just technical or execution skills. It shaped how I think about responsibility, clarity, and growth as an engineer.