Senior Mobile Systems Engineer

I build seamless media experiences and secure mobile systems.

Specializing in video playback, developer SDKs, and mobile security. Building pocket-sized solutions to bigger problems.

  • Android / iOS
  • Media3 + DRM
  • SDK architecture
  • Fraud prevention
  • Product Engineering
  • Technical leadership
PLAYBACK / MONITOR LIVE
RESOLUTION2160P
BITRATE14.2 MBPS
DROPPED0.02%
SECURITYWIDEVINE L1
BUFFER HEALTH94%

SELECTED WORK

Systems built for the difficult parts.

Selected work across playback, SDK architecture, and mobile product engineering.

Developer tooling · Open source

Framewright

A playback diagnostics toolkit, motivated by my experience investigating playback issues at Storyteller.

THE WORKBuilt structured playback telemetry around existing Media3/AVPlayer players, keeping playback and lifecycle control with the host app.

  • Kotlin
  • Swift
  • Media3
  • AVPlayer
  • Jetpack Compose
  • SwiftUI
  • HLS / DASH
  • DRM
playback telemetryREAL-TIME

Mobile security · Open source

DeviceTrust

An Android library that collects device-integrity signals to identify root, runtime instrumentation, emulators, unlocked bootloaders, and weakened platform security.

THE WORKDesigned a coroutine-based Kotlin API, configurable risk policies, versioned evidence models, and native NDK checks across four Android architectures.

  • Kotlin
  • Android NDK
  • Device integrity
  • R8
  • Coroutines
configurable risk score0—100

SDK engineering · Video infrastructure

Storyteller Android SDK

Native Android infrastructure for integrating vertical video feeds, stories, advertising, and interactive media into consumer apps.

THE WORKBuilt developer-facing capabilities across media playback and reusable UI, with an emphasis on integration quality and predictable behavior.

  • Android
  • Kotlin
  • Media
  • SDK design
  • Compose
integration surfaceNATIVE

SDK engineering · Commerce

Kindred Android SDK

A white-label SDK that adds embedded deals and coupons to Android apps while keeping the host product experience coherent.

THE WORKWorked across SDK architecture, accessibility-driven integration, and the constraints of shipping configurable functionality inside third-party apps.

  • Android
  • Kotlin
  • Accessibility
  • API design
SDK architectureWHITE-LABEL

EXPERIENCE

From shipping features to shaping systems.

Product engineering, developer SDKs, and the responsibility of helping teams deliver.

  1. Jun 2026 — PresentCurrent role

    Founding Mobile Engineer

    Knit

    I own mobile architecture across Flutter, Android, and iOS, working with product and design to turn requirements into maintainable features.

    Authored the Mobile Engineering Design Document and established GitHub Actions pipelines for repeatable builds and releases.

  2. Apr 2025 — Jan 2026

    Senior Android Engineer

    Storyteller Software

    Built reusable Kotlin and Compose SDK features for media experiences across Android mobile and TV.

    Diagnosed device-specific lifecycle, rendering, and Surface-attachment failures. That playback debugging experience became the catalyst for Framewright.

    From playback debugging to Framewright
  3. Jun 2023 — Jan 2025

    Senior Android Engineer

    Kindred Inc

    Developed a browser-integrated Android SDK for shopping and checkout journeys, with integrations across more than five browser hosts.

    Replaced scattered UI state with MVI and structured Coroutines/Flow; integrated MobSF and Detekt into CI/CD and supported code reviews and mentoring.

  4. Sep 2022 — May 2023

    Senior Mobile Engineer

    MyCover.ai

    Delivered insurance management, payments, profile updates, and secure customer data handling in an existing insurance app.

    Designed reusable insurance SDKs across Android, iOS, Flutter, and React Native, including configurable insurance purchase journeys.

Earlier experience 2017 — 2023
  1. Jun 2021 — Mar 2023

    Mobile Software Engineer & Technical Support

    Contextual

    Built Android and cross-platform engagement SDK features with configurable UI and developer-facing APIs.

    Supported partner debugging, documentation, and CI/CD improvements.

  2. Jan 2020 — Feb 2021

    Mobile Engineering Lead

    WePrototype Technologies

    Led a four-person mobile team building native Android and Flutter products.

    Worked across planning, architecture, code reviews, and Google Play releases.

  3. Feb 2019 — Nov 2019

    Android Developer

    Madesoftlogic Technologies

    Built modular Java and Kotlin Android applications with REST APIs and real-time WebSockets.

    Supported compatibility across Android devices.

  4. Dec 2017 — Sep 2018

    Android Developer

    TalkGap

    Worked on real-time Android features involving camera encoding, networking, and NFC/RFID.

    Built performance-sensitive components using C++, the Android NDK, and FFmpeg.

EXPERTISE

Depth where it matters.

Mobile specialist with advanced expertise in building media platforms, fraud prevention and developer tools (SDKs).

Playback systems

Reliable playback across devices, networks, formats, and the awkward edge cases between them.

  • Media3 / ExoPlayer
  • HLS + DASH
  • ABR optimization
  • MediaCodec
  • FFmpeg

Mobile security

Device-integrity and content-protection systems designed with realistic threat models and layered controls.

  • Root detection
  • Runtime hooking
  • Android Internals
  • Syscalls
  • Widevine / FairPlay
  • Offline DRM

SDK architecture

Stable, documented integration surfaces that feel native to the teams adopting them.

  • Kotlin
  • Jetpack Compose
  • KMP
  • Swift
  • Flutter
  • React Native
  • API design
  • Compatibility

Technical leadership

Moving teams from ambiguity to durable decisions, quality releases, and shared ownership.

  • System design
  • Roadmapping
  • Mentorship
  • Code review
  • CI/CD

Mobile technologies

Native and cross-platform mobile development, choosing the platform and framework that fit the product.

  • Native Android (Kkotlin / Java)
  • Native iOS (Swift)
  • Flutter
  • React Native
  • Kotlin Multiplatform (KMP)

Tooling

Build automation, release workflows, and app services that support reliable mobile delivery.

  • GitHub Actions
  • Fastlane
  • Firebase
  • Codemagic
  • Azure DevOps
  • GitLab CI
  • Jira
  • Confluence
  • Sentry
  • Agile / Scrum
  • Crashlytics
  • AppCenter

ABOUT DAVID

Behind the systems.

Mobile engineer.
SDK builder.
Curious about the difficult parts.

I’m David Rufai, a software engineer focused on mobile systems. My work has taken me from camera encoding and native Android components to consumer products, reusable SDKs, and mobile architecture across platforms.

At Storyteller, I investigated playback failures involving device lifecycles, rendering, and Surface attachment. That experience motivated Framewright, my open-source playback diagnostics toolkit. DeviceTrust is another part of my independent work, focused on device integrity and risk signals.

Today, I lead mobile architecture at Knit. Alongside implementation, I work on the decisions that help teams deliver: engineering standards, release workflows, code reviews, and collaboration with product and design.

HOW I WORK

Principles, put into practice.

Measure before optimizing

At Storyteller, I used Crashlytics and Baseline Profiles to investigate production issues and performance. Framewright extends that interest in understanding playback through structured telemetry.

APIs are user interfaces

My SDK work includes both building integrations and helping partners debug them. With Framewright, the host application keeps control of its player while adding diagnostics around it.

Reliability is a feature

At Knit, I established repeatable build and release pipelines. At Kindred, I brought static analysis and security checks into CI alongside architecture improvements.

AI IN PRACTICE

Engineering with AI.

I’ve used AI-assisted engineering while building Framewright and working at Knit and Storyteller. That spans an independent developer tool, mobile product architecture, and a production media SDK. At Knit, I use Claude Code and Codex for implementation, refactoring, and tests, with hands-on verification.

The biggest benefit for me is how much faster I can ship. That starts with planning, continues through implementation, and extends to automating release workflows. AI helps me move through more of the delivery process with less manual effort.

The friction I encounter most often is overengineering and missing context. AI can introduce more structure than a task needs, or propose a change without understanding how it fits into a larger codebase. Part of my job is keeping the solution proportionate and making sure it belongs in the system around it.

Hallucinations used to be a major issue in my workflow. More recently, I’ve seen a substantial reduction as models have become more capable and I’ve split larger tasks into smaller, straightforward units. That’s an improvement I’ve noticed in my own work; I still verify the output.

Where it helps.

  • Move from planning to implementation faster

    AI assistance helps me turn a plan into working changes sooner. The speed improvement starts before I write the implementation.

  • Carry momentum through development

    I use AI during implementation and refactoring, reducing manual effort as I work through a task.

  • Automate the path to release

    The benefit extends beyond writing code. I also use AI assistance to automate release workflows and get changes ready to ship.

Where I stay critical.

  • Solutions can become unnecessarily complex

    AI often overengineers a task. I need to question whether the proposed structure is justified by the actual problem.

  • Large codebases expose context gaps

    A suggestion may address the immediate task without fitting the wider system. Existing architecture and constraints need to remain part of the decision.

  • Security-sensitive apps need closer scrutiny

    I’m especially careful with AI-generated code involving authentication, authorization, or sensitive data. I review the security assumptions and failure paths, including whether access is actually enforced and what happens when checks fail.

  • Hallucinations have become less frequent

    I’ve seen a substantial reduction with more capable models and smaller, clearer tasks. I still check the result rather than treating that improvement as a guarantee.

Smaller tasks. Clearer context. Hands-on verification.

Breaking a large task into smaller, straightforward units has become an important part of how I work with AI. It makes the scope clearer and gives me a more manageable change to review.

I’m responsible for deciding how much complexity a task warrants and how a change fits the existing codebase. AI helps me ship faster; hands-on verification remains part of getting that work ready for release.

START A CONVERSATION

Have a difficult mobile problem?

Let’s talk about playback, SDK architecture, or getting a mobile product unstuck.