GrabNguyen Van MinhExplainer
App stability at scale with a layered defense
Summary
Grab, a superapp with over 100 million Google Play downloads, maintains mobile stability through a layered defense that shifts crash detection left. The strategy spans lint rules, tests, and a one-week Grab Early Access (GEA) pre-production gate, followed by staged rollout and feature flags, then production monitoring with automated triage. Custom lint rules block patterns from prior production crashes, ensuring new code—including AI-generated changes—avoids known pitfalls. GEA catches crashes under real-world conditions before they reach production, and each caught crash prevents a long-tail impact on users without auto-update. A crash that reaches production may require an out-of-cycle hotfix, pulling time from planned work. The principle behind every layer is that a crash caught earlier is cheaper and less disruptive to fix.
Context
Grab, a superapp serving millions across Southeast Asia, faces increasing crash risk from high code-change velocity, weekly releases, and AI-assisted coding. Mobile crashes are particularly costly: they persist on user devices, degrade Google Play ranking, and may require out-of-cycle hotfixes. The article details Grab’s layered defense across Android and iOS to prevent, contain, and respond to crashes at scale.
Approach / What changed
A shift-left layered defense strategy for mobile app stability, comprising lint checks (Android Lint/SwiftLint) and tests (unit, UI component, E2E, QA) in prevention; Grab Early Access (GEA) as a pre-production gate; staged rollout and feature flags as a release gate; and production monitoring with crash triage and custom metadata for post-release response.
Takeaways
Grab’s custom lint rules—built from post-mortem crash pattern lessons—apply equally to hand-written and AI-generated code, blocking known failure patterns before they merge.
Grab Early Access (GEA) is a mandatory one-week pre-production gate with active crash monitoring; any new crash automatically creates a ticket for the responsible team and must be resolved before release.
The layered defense includes a release gate of staged rollout and feature flags, so a crash reaching production is contained to a fraction of users, and a hotfix can be shipped without a full rebuild.
FAQ
How does Grab create custom lint rules from crash insights?
When a post-mortem or crash investigation traces a production crash to a specific code pattern, Grab writes a custom lint rule that blocks that pattern from returning. This ensures lessons apply equally to hand-written and AI-generated code.
What is Grab Early Access (GEA) and how does it work as a stability gate?
Grab Early Access (GEA) is a one-week pre-production build with active crash monitoring. Any new crash automatically creates a ticket for the responsible team, which must resolve all blocking issues before the release proceeds to production. This catches crashes that only surface under real-world conditions, before they reach production users.
How does Grab investigate crashes with unusable stack traces?
When a crash lacks a usable stack trace (e.g., native crashes without debug symbols), Grab's triage process cross-references release timelines, flag rollout schedules, install sources (Google Play vs. third-party), and the session history reconstructing the sequence of screens and actions leading up to the crash.
Source and freshness
- Source
- engineering.grab.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.