Welcome!

Scroll down to find out more about me and my interests.

Software Engineering

I mainly specialise in using C/C++ in real-time systems, particuarly for signal processing applications and the synchronization of distributed systems. I also frequently use Python for temporary or more exploratory work.

I started developing in PHP while still at school, and still contribute to a number of websites. I am in the process of learning Go, Rust and React.

Notable projects:
  • Active developer for Camdram - an open source project which provides a data hub and API for Cambridge's busy student theatre community.
  • 8 month internship at Evi Technologies (2008-9), which later became the AI behind Amazon's Alexa.
  • Side projects include a PIC-based USB MSC controller and an RTLinux-based media playback system.
Specialisms:
  • Linux kernel development and board bring-up in C/Assembly
  • Systems programming in C/C++ on Linux and Windows/MSVS
  • Backend programming (PHP/Symfony, Python/Django, Node.js)
  • Frontend programming (React, Angular, Vue)
  • Scientific computing (Python/Numpy, Matlab)

Automation & Show Control

In my career to date, I have been instrumental in seamlessly integrating systems from multiple vendors in venues across the world, combining my rigorous technical background with a dedication to the art of the live event.

I am familiar with Siemens, Emerson and Lenze PLC and drive systems.

I studied Computer & Information Enginering at Jesus College, Cambridge and was active at at the ADC Theatre.

Notable projects:
  • On-site integration of on-board audio, animatronics and other systems for the 25th Anniversary Parade at Disneyland Paris.
  • Member of team providing catenary systems for performer flying at the 2015 European Olympics in Baku.
  • In opening team for Eye of the Storm stunt show at Shanghai Disneyland. Primary responsibility for integrations with the central control system, collaborating with wind tunnel, liquid nitrogen and automation vendors.
  • Technical Director for the 2012 Cambridge Footlights International Tour Show. I designed and built a tourable set and was responsible for technical logistics and show programming.
Specialisms:
  • Control systems programming (Siemens, Beckhoff, Allen & Bradley)
  • Systems integration consulting
  • Networking and IP protocols
  • Sound engineering and signal processing
  • Expert user of the Tait Navigator and Disguise platforms

Hobbies

I hold a DipABRSM on the violin, and also play piano and church organ.

I have a working proficiency in technical French and speak basic German.

Curriculum Vitae

Arm Ltd (2021 - present)
  • Software engineer on the Automotive & Industrial Solutions team
  • Working on bringing up new platforms for real-time workloads.

Disguise Technologies Ltd (2017 - 2018)
  • Fixed bugs and developed new features for R14.3, R14.4 and R15 in C++ and Python
  • Responsible for the initial development of new functionality for Pro Audio playback, which involved incrementally refactoring existing code to create a new audio engine with WASAPI and ASIO backends.
Tait Towers Inc (2013 - 2017)
  • Commissioned automation and show control systems for events and permanent installations in the West End, Hong Kong and mainland China.
  • Performed custom PLC development (Siemens/Beckhoff) and drive system setup (Siemens/Emerson/Lenze).
  • Acted as technical lead on assigned projects, helping to guide a project from design stages through to client sign-off, including on-site set-up and commissioning.
University of Cambridge (2009 - 2013)
  • MEng - Distinction in dissertation entitled Automated editing for the music industry, which used signal processing and dynamic programming algorithms to synchronize audio to its score.
  • BA in Engineering Tripos (Electrical & Information Sciences) - II.i
  • Specialised in control theory, signal processing, information theory, machine learning and language processing.
  • 2 years of courses in mechanics, material science, thermofluids and structural engineering.
View LinkedIn profile

Contact Me