Software Engineer III at MPL
Mobile Premier League
One of the world's largest eSports and mobile-gaming platforms, serving ~85 million users. My Android work here ran across four pods — core, search, unity and streaming — and touched the two systems the business lives on: game delivery and live streaming.
01 My contributions
As Software Engineer III I worked where Android engineering and the business meet. Every install, update and stream on an ~85M-user platform passes through code my team owned.
- Game download infrastructure — built the mechanisms that deliver large game files: Unity asset bundles and full game APKs, downloaded in parallel at high speed with WorkManager-backed scheduling, resume and retry.
- Upgrade & update management — owned how games and the app itself update on users' devices. Cutting asset-download failures from 7–19% to below 0.5% directly increased game starts — and with them, company revenue. This work earned MPL's Code Star award.
- Four pods, one platform — contributed across the core, search, unity and streaming pods, from platform plumbing to feature delivery.
- Live & VOD streaming — built the ExoPlayer-based broadcast module for live tournaments and video-on-demand (detailed below).
- Multi-lingual launch — shipped multi-language application support, opening the product to users across India's language landscape.
- Legacy migration — moved the ageing codebase to a modern stack: pure Kotlin with MVVM architecture, and spearheaded dependency-injection adoption along the way.
- Testing culture — introduced unit-testing and UI-testing frameworks to the product, turning untested legacy paths into guarded ones.
- Performance — profiled and improved app launch time and overall responsiveness — at this scale, milliseconds at startup compound into measurable retention.
- Native ↔ engine bridges — integrated Android native with Unity (embedding games as a library) and React Native surfaces in one codebase.
02 Deep-dive: downloads as revenue infrastructure
A real-money gaming platform can't rely on the Play Store for its catalogue — games arrive as large asset bundles and APKs fetched inside the app, over the exact networks where connections drop mid-transfer. A failed download isn't an inconvenience here: it's a user who never plays, and revenue that never happens.
The download manager I built treats delivery like infrastructure: files are fetched in parallel chunks for speed, WorkManager schedules and survives process death, interrupted transfers resume instead of restarting, and completed files are verified before handing off to install or the game runtime.
Downloads and upgrades are where engineering met revenue: when the failure rate collapsed from 7–19% to under 0.5%, more users reached their first game, retention improved, and the revenue curve moved with it. The work was recognised with MPL's Code Star award.
03 Deep-dive: streaming live eSports
In the streaming pod I built the broadcast experience on ExoPlayer — live tournament streams for millions of concurrent viewers, plus a full video-on-demand library:
- Live streaming — HLS-based live playback for tournaments, tuned for low startup latency on mid-range devices.
- VOD with offline support — downloadable videos for watching without a connection.
- Multi-resolution playback — adaptive bitrate switching plus manual quality selection for constrained data plans.
- Casting — playback handoff to the big screen.
- Multi-language subtitles — subtitle track selection to match the multi-lingual product push.
- Cropping & sharing — clip a moment from a stream and share it — turning viewers into distribution.
- Chapterisation — segmented timelines so viewers jump straight to the action in long broadcasts.
- Playback ergonomics — media-session integration for notification and lock-screen controls, playback-speed control, and seek-bar thumbnails for scrubbing long VODs.
04 Modernising the platform
Alongside feature work, I helped drag a large legacy codebase into the modern era without stopping the release train:
- Pure Kotlin + MVVM — migrated legacy Java code to a Kotlin-first architecture with clear view-model boundaries.
- Testing frameworks — stood up the unit- and UI-testing infrastructure and the conventions that made tests part of the definition of done.
- Launch-time performance — instrumented and optimised the startup path; on an app this size, cold-start wins show up directly in engagement.
- Multi-lingual support — launched localisation across the app, a product-wide effort spanning every screen and string.
MPL is a Mobile Premier League product — one of the world's largest eSports platforms. I worked on the Android app as Software Engineer III (2022–2023); figures are from my Code Star award citation.
- Kotlin
- MVVM
- ExoPlayer
- WorkManager
- Unity interop
- React Native interop
- Unit & UI testing
- Performance
- Localisation