Case Study
Native Android reliability at Super Bowl scale.
DraftKings made a deliberate move away from cross-platform approaches toward native Android — prioritizing platform fidelity, performance, and long-term maintainability. The bet: native quality compounds over time in ways that hybrid can't match.
Real-money sports betting means reliability is non-negotiable. A crash or stall during a live in-game wager isn't a UX inconvenience — it's a lost bet, a support ticket, and a dent in user trust. The system has to hold under Super Bowl load.
Drove crash-free session rates up and kept them there. Owned on-call rotation for Android — diagnosing and resolving incidents under live betting load with no tolerance for extended downtime.
Instrumented the Android app end-to-end for performance visibility. Built Perfetto traces to identify CPU/render bottlenecks. Established metrics that gave the team signal before users noticed degradation.
Shipped and maintained features that ran in production through Super Bowl — the single highest-traffic event in the sports betting calendar. Scale is not theoretical; the system has been tested at ~59K bets/min.
Delivered production features in Jetpack Compose, wired real-time odds and bet updates through WebSocket streams, managed concurrency via coroutines/flows, and kept the architecture clean in an MVVM pattern at scale.
Production scale — DraftKings Android Sportsbook
Production Compose UI across Sportsbook features. Leveraged composable reuse, state hoisting, and side-effect APIs to keep UI logic clean and testable as the surface area grew.
Structured concurrency via coroutines for all async work; StateFlow/SharedFlow for reactive UI state. Eliminated callback hell and made back-pressure handling predictable under bursty network conditions.
Persistent WebSocket connections deliver live odds, market state, and bet confirmations. Handled reconnect logic, back-off strategy, and ensuring the UI reflects the latest server state without drift.
Used Perfetto system traces to surface jank, long frames, and CPU pressure in the Sportsbook app. Traced method-level timings to pinpoint bottlenecks that were invisible in high-level metrics alone.