A decade in Android, seven years on one flagship product. I pick up the surfaces nobody
volunteers for, the parts where a bug quietly costs real money or breaks trust, and I own
them until they are boring. Security work is described by outcome only.
Secure video playback engine
340+ commits · 7 years Own the secure playback experience end to end, from a 2019 hackathon prototype to the full engine the product runs on: offline download and play, multi-manifest streaming, subtitles, variable speed, resolution and edition switching, and a standardized error-code system for diagnosing field failures.
ExoPlayer / Media3DASH / HLSoffline
Content protection and antipiracy
business critical Led successive waves of protection for premium medical video, the paid product. The hard part is doing two things at once on real devices: keep content safe from leakage while making sure legitimate paying users never feel the protection. Described by outcome only.
securityDRM outcomes
Crash-free reliability program
99.85%+ crash free Held app stability across the fleet for years by reproducing field crashes and shipping targeted fixes: video threading, player-screen memory leaks, lifecycle and binding races, and OS-version-specific crashes. Lifted iOS from about 98% to over 99% too.
stabilityApp VitalsLeakCanary
App launch reliability
68% to 95% Hardened cold start and initialization so the app opens dependably across a huge, low-end-heavy device fleet on patchy networks. Successful launch rate went from 68% to 95%.
performancestartup
Kotlin and Clean Architecture migration
~40% tech-debt cut Moved an inherited Java, MVP-era codebase to Kotlin with layered MVVM and Clean Architecture, screen by screen rather than a risky big-bang rewrite. Set the naming conventions and module boundaries the team still builds on, and made the app genuinely testable.
KotlinMVVMClean Architecture
Payments and subscription flows
zero room for bugs Work across the monetization surface: payment gateways, coupons, renewal flows for specialized exam tracks, purchase edge cases, and eligibility checks. The revenue path has no room for error, so this is where I am most careful.
paymentssubscriptions