Samsung Research UK ( 2010 - 2017 )

DALi is an open source cross-platform 2D/3D User Interface Toolkit designed for embedded devices ( Linux, Tizen and Android). DALi engine is based on OpenGL and provides a clean cross-platform framework. This means that you can use high-level DALi APIs instead of accessing low-level OpenGL APIs directly.

DALi is currently used to power mobile/wearable and TV devices (Gear, Galaxy phones, Tizen TV).

DALi 3D Engine architect / developer working on Linux / Tizen / Android.

For platforms:

Example DALi Linux app I created for prototyping shaders for Galaxy wearable watch faces. Shaders we're written in GL-ES.

Imagestore 2/3, real-time VxWorks embedded C

The Imagestore is a product used in TV stations to perform real time video/audio mixing, along with graphics/text insertion and digital video effects. Responsible for developing new features and maintaining the product.

Came across some of the hardest bugs I've ever had to deal with on VxWorks! Don't mention priority inversion.

Imagestore HighDef/300, real-time Linux embedded C

Working with a team of engineers developing and maintaining a new generation of Imagestore platform which supported high definition video and ran on Linux

Imagestore 3D DVE option

Project to integrate a 3rd party 3D effects card into the Imagestore (to rotate live video). Developed a software driver for it whilst working with a hardware engineer and the 3rd party vendor. Managed to produced a working prototype in a very short period of time so it could be demonstrated at the annual N.A.B. exhibition in Las Vegas.

Indus, pSOS embedded C

When digital TV is transmitted, broadcasters may scramble the content so a viewer needs a smart card to watch it. Cable TV providers pick up the scrambled broadcasts, unscramble them and re-broadcast on their own cable network. The Indus is a device which performs the de-scrambling.

Developed the device driver for extracting/parsing PSI/SI information from the MPEG stream and some software for the controlling the Conditional Access module (CAM).