Skip to content
View oguzhaneksi's full-sized avatar

Block or report oguzhaneksi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
oguzhaneksi/README.md

Hi, I'm Oğuzhan 👋

Senior Android Developer, OTT & video streaming specialist. I help video-first platforms ship scalable, stable native mobile and CTV apps: Media3/ExoPlayer, HLS/DASH delivery, multi-DRM (Widevine/PlayReady), server-side and client-side ad insertion (SSAI/CSAI), and QoE analytics.

6+ years, 10+ production apps across Android and Connected TV, 1M+ viewers. On a high-traffic MENA OTT platform I locked stability at >99% crash-free and cut cold-start by ~40%.

Here's the thing though: debugging a streaming issue the conventional way means Charles Proxy + adb logcat + manually fetching the manifest in a browser. All at the same time. On a tethered device. Each round takes 15–30 minutes. I got tired of that, so I started building tools to pull that whole workflow into the app itself, then shipped them to Maven Central and SPM.

Currently freelancing. Open to Android contract and senior full-time roles.

Medium · LinkedIn · X


🔬 Open Source

Kotlin Multiplatform debug SDK for Android and iOS. Manifests, per-segment metrics, CDN headers, ABR/track switches, and DRM lifecycle: all on-screen, no Charles Proxy, no tethered device, no production risk. One shared Kotlin core, a thin native adapter and overlay on each platform. On iOS 18+ it reads the AVMetric segment stream for true per-segment timing, at parity with the Media3 side.

Maven Central Swift Package Manager

// Android
debugImplementation("io.github.oguzhaneksi:streamprobe:<latest>")

iOS: add the package via Swift Package Manager, then import StreamProbe.


QoE analytics SDK for Media3. Crash logs tell you something broke. They don't tell you a user sat through an 8-second startup time. Media3Watch tracks startup duration, stall count, and buffer health, in Logcat or on a self-hosted Grafana dashboard (Ktor + PostgreSQL + Docker).

Maven Central

implementation("io.github.oguzhaneksi:media3watch-sdk:1.1.0")
debugImplementation("io.github.oguzhaneksi:media3watch-overlay:1.1.0")

TikTokCompose · ⭐ 26

Shorts/Reels-style vertical video feed. Media3 + Jetpack Compose reference architecture for paged video playback.

Self-initiated Android TV app built with Jetpack Compose. R&D side project that shipped to production.


🚀 Currently building

  • StreamProbe: decode-capability visibility. Surfacing Tracks.Group.isTrackSupported() on VariantInfo, so a greyed-out rung can say "present but undecodable by this hardware" instead of looking the same as a config cap.
  • StreamProbe: live TrackSelectionParameters. Showing why the selection pool was narrowed (max-size cap vs. max-bitrate cap vs. bandwidth fraction), not just that it was.

✍️ Writing

👉 medium.com/@ouzhaneki


📊 Stats


Open to interesting streaming and Android problems. Easiest to reach me on LinkedIn or X.

Popular repositories Loading

  1. TikTokCompose TikTokCompose Public

    Video paging application with Jetpack Compose

    Kotlin 26 5

  2. RadioRoam RadioRoam Public

    This app demonstrates use of media sessions with Jetpack Compose.

    Kotlin 13

  3. Media3Watch Media3Watch Public

    Lightweight Android SDK to debug Media3 video sessions with Logcat summaries and self-hosted Grafana dashboards.

    Kotlin 9

  4. AndroidTvCompose AndroidTvCompose Public

    Android Leanback UI in Jetpack Compose

    Kotlin 7 1

  5. StreamProbe StreamProbe Public

    A Kotlin Multiplatform debug SDK for Android and iOS that surfaces HLS/DASH diagnostics—track variants, segment metrics, CDN headers, ABR decisions—via an in-app overlay.

    Kotlin 2

  6. compose-media compose-media Public

    Forked from fengdai/compose-media

    Media player UI for Jetpack Compose

    Kotlin 1