About Me

I'm an accomplished principal software engineer with team lead, scrum master & mentoring experience. I have a wealth of experience based in the embdedded software industry, with specialist knowledge of short range wireless telecommunication technologies. I'm highly experienced in Python, C, Linux, Software Architecture & UML, CI Systems, Virtualization, Git, SVN, Bluetooth, BLE, and many more technologies.

In my spare time I enjoy cycling, running and spending time with my family. When time allows, you might find me tweaking and administering my home network, or tinkering with some of my personal coding projects; I like to blog about my personal projects, which you can find here (TODO).

Professional Skills

  • Coding Expert
  • Linux Expert
  • Embedded Expert
  • CI Expert
  • VCS Expert

Experience

  • Cambridge Consultants

    Principal Engineer

    Aug 2019 - Current

    As a principal engineer, my role is to engage with a range of clients to specify, design and create embedded systems at every scale from the tiny - where they might be looking to squeeze every last microamp of power out of an extremely constrained system - to the heavyweight, where they could be developing ultra high reliability communications for life and death situations.

  • Owlstone Medical

    Technical Lead

    October 2017 - August 2019

    As the tech lead, I was responsible for software design, implementation & release cycle, engaging with teams of scientists and data scientists and mentoring junior engineers. The software stack (Linux/C/Python) was responsible for controlling Owlstones hardware platform and providing a User Interface (PyQT) to capture, analyse and present data in "real time".

  • Espial

    Senior Software Engineer & Scrum Master

    July 2015 - October 2017

    I worked on the lower layers of the software stack, which was running on a custom containerised, buildroot-based Linux platform (deployed to both Broadcom & Humax hardware platforms). This stack was used in both the NOS and

  • Cambridge Silicon Radio (CSR)

    Senior Software Engineer

    August 2010 - July 2015

    I was a member of the team responsible for writing reference software applications for the CSR Audio Development Kits (ADKs) in order to provide customers with a complete reference from which to develop their own applications on CSR SoCs. This included developing new products such as the Bluetooth stereo headset (unbelievably, stereo Bluetooth headsets were few and far between back in 2010), soundbar and subwoofer applications.

    Fun fact: If you have ever seen, or purchased a cheap Bluetooth headset or Bluetooth headphones, it's more than likely running on software I've helped develop :).

  • Cambridge Silicon Radio (CSR)

    Senior Software Engineer

    July 2007 - August 2010

    I was responsible for starting this project, I architected, developed and maintained a fully automated test system capable of executing system level tests by leveraging devices from an array of connected CSR SoC reference hardware platforms. Tests were automatically scheduled and hardware resources autonomously managed in order to efficiently execute tests in parallel. The purpose of this system was to autonomously verify CSR reference applications (running on CSR SoCs) as we had several thousand tests which needed to successfully pass in order to green light an ADK release candidate. This system was relatively complex, started off being multi-threaded (has since moved to asyncio) and was initially written using Python 2.4.

    Fun fact: Although it's not running the same code I wrote all those years ago, I'm told this system is still in use today and based on many of the concepts I designed all those years ago!

Education

  • University of the West of England

    2003 - 2007

    Bsc(Hons) Computing for Real Time Systems

    This award is an Applied Computer Science course with a particular focus on Real-time Systems. Using case studies, you will learn how important it is for the software and hardware to operate reliably, the result of failure can be expensive, even life-threatening. You will specialise in the design and implementation of software for embedded processors used to control a range of real-world devices. For example, in the first year, along with the core programming concepts, there are case studies in the use of Finite-state methods for embedded systems equipment, such as a washing machine controller. In the second year, you will learn the details of the Linux operating system and networking architectures. You'll also learn about server-side development and distributed systems. While in the final year, students, working in groups, you will port the Linux kernel to an embedded architecture. Your curiosity is a key asset when studying the exciting field of Real-time Systems.

    Learn More
  • Newbury Regional College

    2000 - 2003

    BTech National Extended Diploma in Computing

    This is an advanced-level computing course involving theoretical and practical study of both computing and IT related topics. It includes a wide range of units designed to provide an excellent platform for students wishing to progress towards a higher education course or start a career in the IT industry.

    The course has been developed to focus on education and training for current and potential IT employment opportunities. Students will build their knowledge of computing fundamentals whilst developing skills in a variety of technical areas such as systems support, analysis and design, software development and testing, and network administration, amongst others.

    Learn More