Raphael Bernardo

Senior Android TV & Fire TV Engineer · OTT Streaming, Media3, DRM

Ten-plus years of Android in Kotlin and Java, the last four-plus focused on the living-room screen: Android TV, Fire TV and Fire OS streaming apps. Deepest in Media3/ExoPlayer, HLS/DASH, DRM, ad insertion and d-pad UI, with native JNI/C++ work on Uber's Maps SDK.

Rio de Janeiro, Brazil (GMT-3) Brazilian + Portuguese (EU) citizen +55 (21) 98885-6697 [email protected] github.com/raphaelbgr linkedin.com/in/raphaelbgr Download PDF All CV versions

Summary

Android TV and Fire TV engineer who also ships phone and tablet apps. I work in Kotlin with Coroutines/Flow, Jetpack, Compose, Compose for TV and Leanback, in multi-module MVVM and Clean Architecture codebases.

Most of my recent work is streaming. I have built and maintained Media3/ExoPlayer playback for VOD, live and audio, Widevine and PlayReady DRM, server-side and client-side ad insertion, and TV navigation built around the d-pad. Earlier work covers Uber's Maps SDK (NDK/JNI), fintech payments and a 1M+ download travel app.

Experience

Aug 2025 – PresentContract · Remote

Senior Android TV / Fire OS Engineer · Nexstar Media Group

Multi-brand OTT streaming framework for Fire TV and Android TV. Contributor on the platform team.

  • Contributed to the architecture of an enterprise OTT framework (MVVM + Clean Architecture) with a plugin system for third-party integrations.
  • Developed 5 specialised Media3/ExoPlayer implementations for VOD, live and audio with HLS adaptive bitrate.
  • Implemented DRM-protected playback (Widevine, PlayReady) with server-side and client-side ad insertion.
  • Built TV-optimised UI on Android Leanback with d-pad and remote-control navigation, plus device-based sign-in flows for TV.
  • Implemented subscription entitlement checks and paywall integration; worked on remote configuration for feature rollouts across a large brand/flavor matrix.
  • Refactored callback chains to event-driven Kotlin SharedFlow; fixed background-audio playback during navigation transitions and lifecycle leaks in fragment navigation.
  • Integrated analytics, audience measurement and playback monitoring (Nielsen, comScore, Mux) under GDPR/CCPA, plus Firebase Crashlytics and New Relic.
  • Wrote unit and UI tests with JUnit, MockK, Robolectric and Espresso.
Kotlin Coroutines/Flow Media3/ExoPlayer Leanback Dagger 2 Retrofit Moshi Room Jetpack Google IMA SDK Firebase New Relic MockK Robolectric Espresso
Dec 2024 – Jul 2025May 2022 – Apr 2024Mar 2021 – May 2021Contract · Remote

Android / Android TV / Fire OS Engineer · FreeCast, Inc.

Select TV and FreeCast Watch: live TV and VOD on Android phone and tablet, Android TV and Fire OS, with webOS and Tizen companions.

  • Led the migration of the legacy Java codebase to Kotlin and introduced use-case based Clean Architecture.
  • Implemented HLS/DASH playback for live linear TV and VOD with Widevine-protected streams.
  • Worked in a player abstraction that switched between ExoPlayer and tuner-specific players, integrating OTA tuner platforms (HDHomeRun, AirTV, Alticast, PDAQ) and GStreamer-based pipelines.
  • Worked across DRM, EPG, tuner orchestration, transcoding and multi-device streaming.
  • Enabled Google Cast and integrated a paid subscription gateway.
  • Shipped on Google Play (Select TV, FreeCast Watch) and the Amazon Appstore (FreeCast Watch for Fire OS).
Kotlin Jetpack Compose Hilt Coroutines/Flow Media3 Room (SQLite) DataStore Retrofit Widevine GStreamer Google Cast Firebase Mixpanel JUnit Espresso
Apr 2024 – Dec 2024Contract · Remote

Android TV / Fire OS Engineer · Claro TV+

Greenfield Android TV / Fire OS app for one of Brazil's largest pay-TV operators. Contract via Global Hitss.

  • Implemented 4K DASH/HLS streaming with multi-DRM.
  • Contributed to the shared Kotlin Multiplatform data layer consumed by Android, webOS and Tizen clients.
  • Worked in a 16+ module MVVM codebase with separate feature modules for home, live channels, EPG, search and the players.
Kotlin Kotlin Multiplatform Bitmovin Player Ktor Koin Coroutines/Flow Jetpack Firebase Google Analytics 4 JUnit Espresso
May 2021 – May 2022Contract · Remote

Android Engineer, Maps SDK · Uber Technologies

Contract via Matchpoint Solutions.

  • Worked on the Maps team's Android SDK module built with NDK, JNI and C++.
  • Worked in Uber's RIBs architecture inside the internal monorepo, a codebase shared by 10K+ engineers.
  • The module shipped in the Uber Rider, Uber Eats and Uber Driver apps.
Kotlin Java C++ SQL NDK JNI RIBs Buck CMake Flipper JUnit Espresso
Oct 2018 – Feb 2021Remote

Android Engineer · Super Revendedores

  • Migrated the full codebase from Java to Kotlin.
  • Implemented payment-gateway sales, virtual catalogue showcases and SSO from the app to a partner ordering portal.
Dec 2016 – Oct 2018Rio de Janeiro

Android Engineer · Concrete, an Accenture Company

  • Built the Minha CVC travel app from its first implementation as part of the agency team; it passed 1M+ downloads on Google Play.
  • Implemented store geolocation, travel-package itineraries and a virtual package showcase.
  • Worked on the Getnet payments app; migrated MVP to MVVM and introduced RxJava 2 and LiveData.
Jun 2015 – Dec 2016Internship · Rio de Janeiro

Android Engineer · PraPagar

  • Built the PraPagar mobile-payments app with a US-based team (MaxxPotential): QR-code and geolocation payments, plus PHP/Laravel REST work.

Android Skills

Languages
Kotlin, Java, SQL, C++ (NDK/JNI), Groovy; Python and TypeScript for tooling.
Media & OTT
Media3/ExoPlayer, Bitmovin, HLS, DASH, adaptive bitrate, live and VOD, H.264/HEVC, Widevine, PlayReady, Google IMA SDK, SSAI, CSAI, VAST/VMAP, captions, Google Cast (Chromecast), GStreamer, OTA tuners (HDHomeRun, AirTV).
Data & SQL
SQL, SQLite, Room, DbFlow, DataStore, PostgreSQL, IBM DB2.
Platforms
Android phone and tablet, Android TV, Fire OS; webOS and Tizen companions; Kotlin Multiplatform.
UI
Jetpack Compose, Compose for TV, Material 3, Android Leanback, d-pad focus handling.
Architecture
MVVM, MVI, Unidirectional Data Flow, Clean Architecture with use cases, multi-module Gradle, plugin-based integrations, RIBs, MVP.
Jetpack & async
Coroutines, Flow, StateFlow, SharedFlow, ViewModel, Navigation, Room, DataStore, LiveData, RxJava 2.
DI & network
Hilt, Dagger 2, Koin, Retrofit, OkHttp, Ktor, Moshi, Kotlin Serialization.
Quality
JUnit, MockK, Robolectric, Espresso, Android Profiler, Crashlytics, New Relic, playback lifecycle and memory-leak debugging.
Build & release
Gradle (multi-flavor matrices), Buck, CMake, Jenkins, GitHub Actions, Google Play and Amazon Appstore releases, Play Billing.
AI-assisted delivery
Coding agents with test evidence and model review before merge, used within each client's tooling policy.

Own Apps & Projects

Preços Cerveja · Google Play

Compares beer prices by volume to find the best value per millilitre. Offline-first, with local persistence and in-app billing. Kotlin, Jetpack Compose, Room, Play Billing.

play.google.com/store/apps/details?id=br.com.raphaelbgr.preoscerveja

Archive · personal TV media player

TV client for my self-hosted media server, published on Google Play for Android TV (Media3, Compose for TV, Room) and on the App Store for Apple TV. The app exposes an on-device diagnostics surface (trace, state, screenshot, scripted navigation and 149 named test routines) so automated checks can drive it and verify what the screen shows. Compiled out of release builds.

play.google.com/store/apps/details?id=com.arquive.tv

Education & Early Roles

2013 – 2018Instituto Infnet, B.S. in Computer Engineering, Rio de Janeiro
Jun – Dec 2014IBM Brasil, Software Engineering Intern: SQL queries on IBM DB2 for contract and sales teams, reporting
Jan – May 2014FASOLTI, Test Developer Intern (Selenium, TestNG)
LanguagesPortuguese (native), English (fluent), Spanish (intermediate)