
Software Engineer
I design and ship resilient software at scale, from React Native apps on mobile and TV to the cloud infrastructure, APIs and video players behind services millions rely on every day.
Live · OTNet circle player
About

Samuel East
Senior Software Engineer with 15+ years experience, specialising in media streaming. Cardiff, UK.
I have been working in software engineering for over 15 years, with a deep focus on media streaming, running my own company and building services across the industry. Most recently I was on the player team at Plex, working in React Native and TypeScript with native Swift and Kotlin underneath, shipping one codebase to iOS, tvOS, Android, Android TV, Fire TV, Samsung Tizen and web. Before that, two years at 3SS building Vodafone's next generation set top box from the ground up, and two years at NBC PeacockTV across PeacockTV, SkyShowTime, and NowTV.
My role at Plex was eliminated in October 2026 when the company cut 24 positions and restructured its development teams, so I am available immediately.
I specialise in video player architecture, React Native apps on mobile and TV, DRM integration (Widevine, PlayReady, FairPlay), adaptive streaming (HLS, DASH, CMAF), and cross platform delivery across iOS, Android, web, Samsung Tizen, LG WebOS, Xfinity, and custom STB hardware.
Ad tech is a big part of that. I've worked with server side ad insertion (SSAI) on AWS Elemental MediaTailor since building it into the S3Bubble workflow, then on live SSAI at NBC PeacockTV and FAST channel ads at Plex. OTNet, my own platform, runs its own SSAI stitcher for live and VOD across HLS and DASH with DRM, SCTE-35 ad signalling and MediaTailor channel assembly.
I ship reliable, performant video experiences at scale. Whether it's reducing video start times, solving playback issues on constrained devices, or architecting a player that handles live, VOD, catchup, and recordings, I deliver.
Agentic AI is how I build software now. At Plex the whole engineering workflow ran on it. A Linear ticket went into Claude Code, an agent planned and wrote the change, AI reviewed the pull request, and an engineer signed it off. We shipped production React Native, Swift and Kotlin that way every day, so this isn't something I've only tried on side projects.
Working like that taught me that agents are fast but not careful. Left alone, they duplicate logic, ignore the patterns already in the codebase and slowly wear the architecture down one pull request at a time. So I treat the architecture as my job. I set the boundaries and the contracts between layers and platforms, and I keep the agents working inside them.
Skills and plugins are how I make that stick. An agent will happily solve the same problem a different way every time, so I write the way a team works into Claude skills, plugins and MCP tooling: how to trace the code before changing it, how to keep platforms in parity, how to test and verify a change. Every engineer and every agent then works the same way, and the output stays consistent and easy to review.
Testing holds it all together. I write the tests first, so each agent has a clear definition of done, and I run agents in parallel with a plan agreed before any code is touched. Nothing lands until the E2E tests and on device checks pass. Along the way I question the decisions agents make, catch the regressions they introduce and push back when an AI review invents a fix for something that was never broken. That's what lets me take a feature from ticket to production cleanly, with code that's small, readable and easy for the next engineer to pick up.
Outside of work I built my own AI suite, a desktop app in Rust and TypeScript (vybecoding.sh), and I use it to build iOS apps in Swift, Android apps in Kotlin, Electron desktop apps and web platforms that run on a single API.
After 15 years as a software engineer, working with Claude and Codex feels like running my own dev team. The experience is what lets me direct that team well, and that combination is what I bring to a role.
Skills
Languages & Frameworks
React Native
Video Players
DRM & Protocols
Ad Tech & SSAI
Mobile, TV & STB Platforms
AWS Media
AWS Infrastructure
Tooling
Experience
Broken down by the parts of the video pipeline I've worked on, from encoding through to playback, ads and analytics.
Plex
Aug 2026 – Oct 2026 · PermanentSenior Software Engineer · Player Team (most recent)
Player team engineer on Plex's cross platform React Native client, shipping one TypeScript codebase to iOS, tvOS, Android, Android TV, Fire TV, Samsung Tizen and web, with native Swift and Kotlin underneath. My role was eliminated in October 2026 when Plex cut 24 positions and restructured its development teams, a company wide decision rather than anything to do with the work.
- Client side ad insertion driven by VMAP ad tags in Plex's metadata: the player fetches the VMAP and plays the ad breaks alongside the content without touching the stream, using our own ad handling on ExoPlayer and Google's IMA SDK on AVPlayer
- Shipped ads on FAST channels: live SSAI stitched into the linear stream, plus a client side pre roll at the front before the channel starts
- Carried the ad tag through play queue rebuilds and fixed the ad pod lifecycle, seek blocking and the ad countdown
- Worked on pause ads, showing an ad when the viewer pauses playback
- Kept ads scoped to Plex's free streaming content, so media from a viewer's own server never carries an ad tag
- Extracted the native playback layer into a standalone PlexPlayerSDK across Swift and Kotlin, a 134 file refactor, with a reference app and an automated SDK boundary check wired into CI
- Worked across three playback engines: AVPlayer and KSPlayer (FFmpeg based) on Apple, ExoPlayer and androidx-media on Android, including engine selection by codec and content type
- Rebuilt the seek path so the dpad, the remote's seek buttons and double tap gestures all run one implementation on Apple TV, Fire TV and Android, coalescing bursts of step seeks into a single engine seek to stop playback stalling minutes behind
- Fixed seek preview thumbnails so they hold for the whole scrub, and brought them to the remote's seek buttons across both the current and the next player UI
- Fixed Android picture in picture rendering and controls in Kotlin, hiding the OSD and fitting the video to the PiP tile
- Added a post play overlay over the closing credits, and Siri transport commands that honour the skip interval asked for
- Built plex-test, a Claude Code plugin that drives a real device or simulator through a library, measures start time, seeking and sustained playback against an adb audio counter, then scores the run and renders it in a dashboard
- Added playback metrics for the skip buttons
- Pinned the Android navigation bar hidden behind the OSD using react-native-edge-to-edge, including a patch to react-native-safe-area-context for a stale inset bug on Android 10
- Delivered inside a fully AI driven workflow, writing custom Claude skills, MCP tooling and plugins so generated code stayed reviewable and grounded
3SS
Mar 2024 – Mar 2026 · ContractSenior Software Engineer · Vodafone
Built Vodafone's next generation set top box from the ground up. Also worked across Yettel, Entel, and OneTV, delivering live, catchup, start over, channel switching, on demand, and recordings. Worked closely with Nagra on DRM and content protection integration. Helped the team hit critical launch deadlines, working remotely from the UK.
- Integrated Nagra DRM and content protection
- Manifest manipulation for live and catchup streams
- Architected DVB/OTT playback switching using Shaka Player with seamless protocol handoff
- Implemented Live, StartOver, TimeShift, Catchup, VOD, and recording playback with 7 day rolling buffer
- Ported STB app to Samsung Tizen with minimal code changes
- Reduced zapping times and improved playback resilience through KPI driven optimisation
- Developed stall detection and custom debug UI for memory diagnostics
- Created remote development suite using ZeroTier & Raspberry Pi for real time STB access
- Built high performance UI with LightningJS optimised for low end STB hardware
NBC PeacockTV
Mar 2022 – Mar 2024 · ContractSenior Software Engineer
Worked across PeacockTV, SkyShowTime, and NowTV. Focused on video start times, rebuffering reduction, and cross platform delivery at scale.
- DASH, HLS and EME implementation across Web, Xfinity, and Samsung
- Live catch-up on SSAI streams: when stitched ad breaks left the playhead behind live, raised the playback rate to drift it back to the live edge without a hard seek
- BrightLine ad integration
- MSE based playback and mid stream adaptive bitrate capping
- AAMP player development for Xfinity X1 platform
- KPI monitoring and performance optimisation using Conviva (VST, VSF)
- Memory and CPU profiling on low end Samsung and Xfinity Xi3/Xi6 devices
- CVSDK development in TypeScript with Jest and CI integration
S3Bubble
2014 – 2021 · 7 yearsFounder & CEO · AWS Certified
Founded and scaled a cloud media streaming platform on AWS, distributing millions of video players monthly via API. Built the full product stack end to end, from encoding tools and DRM protected playback to the underlying Amazon infrastructure: large RDS databases, EC2 Auto Scaling groups behind Elastic Load Balancers, bastion hosts inside hardened VPCs for secure access, and the full AWS Media stack. AWS Certified, with hands on experience running production services at scale.
- ElectronJS encoding app with multi bitrate HLS/DASH, encryption, subtitles, thumbnails, and bulk upload
- CloudFormation & Lambda automated encoding pipeline via MediaConvert
- Architected resilient AWS infrastructure: RDS (MySQL/Postgres) at scale, EC2 Auto Scaling groups, ELB / ALB load balancers, multi AZ VPC with bastion hosts and IAM hardened security
- Production live streaming workflow with MediaLive, MediaPackage, and OBS integration
- Fully automated CloudFormation stack that spun up complete live streaming setups on demand, covering MediaLive channels, MediaPackage endpoints, IAM, networking, and DRM wiring
- Studio approved DRM via SPEKE API with Widevine, PlayReady, FairPlay using BuyDRM and EZDRM
- Built AWS Elemental MediaTailor server side ad insertion into the streaming workflow, alongside MediaLive and MediaPackage
- Built and scaled a media streaming API and player serving millions of video players monthly across thousands of sites
- AngularJS media streaming application integrated with AWS cloud workflows
Side Projects
OTNet
Bring your own infrastructure streaming platform with server side ad insertion built in. Publishers encode on their own machine, keep content in their own cloud bucket, and ship branded apps to every screen.
- Built its own SSAI ad stitcher for live and VOD across HLS and DASH: multi period DASH and discontinuity stitched HLS, reusing encoded segments with no transcoding or segment proxying
- DRM aware ad insertion: Chrome can't switch between cenc and cbcs mid stream (decrypt error 3 at the ad boundary), so the ad picker matches protocol, container, encryption scheme and audio layout before stitching, and every possible ad key ID rides in the playback token so rotated ads never fail at the license server
- CMAF with one cbcs key covering FairPlay, Widevine and PlayReady from a single set of segments, while DASH defaults to cenc because pre 2018 Tizen and webOS PlayReady 3.x silently fails to decrypt cbcs
- SCTE-35 splice_insert cues and ad metadata signalled in HLS (EXT-X-DATERANGE) and DASH (EventStream)
- Content and ads served from Cloudflare R2 with zero egress fees, against roughly $0.09/GB on S3, with server verified ad impressions fired from the publisher's own Cloudflare Worker
- Linear live channels with DVR, plus AWS MediaTailor channel assembly alongside its own channels and EPG
- Desktop encoder for HLS, DASH and CMAF, with Widevine, PlayReady and FairPlay DRM via EZDRM or BuyDRM
- TV apps for Samsung Tizen, LG webOS, Android TV and Fire TV
Built with Next.js, AWS MediaTailor, Cloudflare R2 and Workers, Electron, FFmpeg, Shaka Packager, Lightning, SwiftUI, Kotlin
Vybe Coding
AI coding terminal. The desktop app runs your coding agents, and the phone app picks up the same sessions so you can keep working away from your desk.
- Carry desktop AI coding sessions over to your phone
- Runs Claude Code, Codex, Copilot and Gemini
- Voice commands turned into shell commands
- Safety checks that flag or block destructive commands
- Build on your computer, install straight to your phone
- VNC remote desktop and SFTP file transfer
Built with Tauri (Rust), React, xterm.js, whisper.cpp, SwiftUI, Kotlin
Audibase
Marketplace for creators selling AI generated music. Listeners preview for free and buy the full quality master to keep.
- Upload tracks and set your own price
- Choose the preview: short clip, lower quality or audio tagged
- Creator store pages with payouts straight to Stripe
- Radio stations by genre, BPM or musical key
- Sales charts and Slop or Drop listener voting
- Desktop app detects tempo and key automatically
Built with Next.js, Hono, Electron, SwiftUI, Kotlin, Firebase, Stripe, R2
YT Streamer
Go live on YouTube straight from your phone, with no stream keys or RTMP setup.
- One tap Google sign in connects your channel
- Broadcast at up to 1080p and 60fps
- Adjustable resolution, bitrate and frame rate
- Front and back cameras, mute on the fly
- Auto reconnect when the network drops
TVProber
Desktop developer suite for LG webOS and Samsung Tizen TVs. Deploy, inspect and debug TV apps on real sets without the SDK ceremony.
- Finds LG and Samsung TVs on your network automatically
- One click install from a URL, .ipk or .wgt
- Built in Chrome DevTools inspector for TV apps
- Virtual remote and Wake-on-LAN
- Live webcam view of the TV over WebRTC
- Remote access to TVs over ZeroTier
Built with Electron, Express, FFmpeg, MediaMTX, WebRTC
Education
Swansea Metropolitan University
2007 – 2009BA Hons Interactive Digital Media, 2:1
Swansea College, Tycoch
2003 – 2005BTEC National Diploma Music Technology, Distinction, Merit, Merit
John Colet School, Wendover
1994 – 19989 GCSEs (A–C) including English, Maths, Sciences
Contact
Let's build something
amazing.
Cardiff, South Wales. Open to remote & travel.