What I have solved

Impact

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.

8+years in Android
99.85%crash-free
6 + 4Android + iOS reports
4000+commits shipped

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

Want the detail behind any of these, or to talk shop?