A British software developer living in Berlin. Most of my career has been focused on multimedia and entertainment applications, including broadcast automation, set-top-box middleware and cloud-based live video processing. I’m flexible though, and enjoy jumping into new challenges. Other work I’ve done recently includes automatically finding ads in Android apps, and keeping the device farm used for that running.
I have lots of experience working with video formats and delivery mechanisms, including MPEG2-TS and WebRTC. I’ve worked on both Windows and Linux systems, but my more recent experience is mostly Linux (including within containers).
I work mainly in C++, but I’m also very comfortable working in Rust, Golang or Java. I’m also very familiar with Python.
Skills
Language
Work Experience
Education
Qualifications
Industry Experience
The task was to take an existing MPEG-2 transport stream, and merge in DVB-TXT subtitles live, using subtitles delivered over EBU-TT live (using a websocket)
I designed and implemented, using some existing building blocks where possible, a program to read the input transport stream and create a low-resolution, low-latency preview to be sent to subtitlers. The subtitles were then received via a websocket in EBU-TT format (XML) and encoded as DVB-TXT, then merged into the existing stream.
The DVB-TXT encoder was written in Rust, since it requires a lot of data manipulation, and therefore is ideal for Rust’s safety guarantees.
The preview stream was generated using FFMpeg for encoding, and Nablet’s MPEG-2 muxer for mulitplexing. We considered using WebRTC for this, however the customer decided it was too hard to deploy for their network.
- Led further development of an Android ad-harvesting platform, with a strong focus on reliability, robustness, and defect resolution.
- Advised on and executed device farm upgrades, including building and deploying a patched Android OS to meet project requirements.
- Rebuilt and standardised backend servers controlling the device fleet using Ansible, dramatically improving consistency, repeatability, and maintainability.
- Introduced infrastructure-as-code practices, providing living documentation of system configuration and reducing operational risk.
Hire a Developer
We have the best developer experts on Twine. Hire a developer in Berlin today.