2004 - 2009
Queen’s University, Belfast
MEng Electronic and Software Engineering [First Class Honours]
Thesis: ‘Investigation into Trust and Reputation Metrics for Open 802.11 Networks’ [PDF]
OpenFX Award for Engineering Software Excellence, EEECS Faculty, Queen’s University, Belfast
C, Python, C++ (recreational!)
UART/SPI/I2C, TCP/UDP, RTOS(µC, FreeRTOS), M2M(MQTT/CoAP), Protocol Design & Implementation, Wi-Fi Connectivity, Bluetooth Low Energy, Smart-Home, Low Power Design, Boot Loaders, Multi-Threaded Design, DSP Filtering, Agile/SCRUM
Git, IAR, GCC/GDB, Valgrind, Docker, Balena.io, Wireshark, Arbitrary Waveform Generator, Oscilloscope, Logic Analyser, Spectrum Analyser, Soldering Iron
Bluetooth Mesh, Thread, MQTT-SN, Zephyr, Apple ADK
Senior Embedded Connectivity Engineer, Bristol
Currently, I am a senior member of the Connectivity Research Team at Dyson - in this role, I take embedded, connected ideas from research through to production, while simultaneously developing the company’s connected vision / strategy.
This involves working with Bluetooth, WiFi and Mesh Technologies across multiple vendor platforms (and multiple development languages) to architect new product features so that they can be user-trialled, refined and eventually handed over to delivery teams. These embedded prototypes interface with not only cloud platforms and mobile devices, but often with each other, and as such this role has allowed me to become quite expert in M2M/IoT protocols and technologies, such as BLE, MQTT & CoAP, while also utilising my past embedded experience.
My role often involves working closely with both technical and non-technical people to ensure that features are shaped within the confines of available technology, and to this point, I would often operate as a Technical Product Owner to assist in bringing a proposition to realisation.
This role also requires that I carry out research into new technologies and concepts, and to date, this has allowed me to explore such things as mesh technologies (Thread, Bluetooth Mesh), BlueZ (the ever evolving Linux Bluetooth Stack), LPWAN (LTE-M, NB-IoT), Apple HomeKit and Docker on Embedded Linux platforms.
Advanced Firmware Engineer, Malmesbury
In this role, I worked on the development of a robust robotics platform for current and future Dyson products, built in C, on ARM using μC/OS. My role was to develop and maintain all serial communication links between higher level platforms and lower level peripherals which meant both middleware and protocol design. This ultimately led to the adoption of a company wide serial communications protocol, which I led the development on.
I also built graphical peripheral emulators in Python using PyQT and these went on to be widely used and adapted across the embedded teams.
Firmware Lead, Belfast
In this role, I was Firmware Team Leader (3 members) and sole Firmware Architect for Seed Funded startup based in San Francisco & Belfast. We developed the firmware for an internet connected, automated brewery. We went from paper-based idea to fully shippable product in 12 months.
The entire product firmware was developed in C++ on Particle’s WiFi Platform (STM32 ARM Cortex M3 with Broadcom Wi-Fi chip). The firmware controlled and automated the entire brewing process on the Brewbot machine and interfaced with all on board sensors and actuators (Temperature, Flow, Load Cells). The system also communicated with a Cloud Platform (MQTT) and mobile devices (CoAP).
I also maintained the build system (written in Python) and managed the team’s workload, releases and milestones (vaguely SCRUM).
2013 - 2014
Firmware Engineer, Belfast
My time at Sensata was spent in their Automotive Innovation Team working on a series of novel Fluid Level Sensing technologies for a new Audi platform. These were developed on 8-bit, 8051 MCUs and developed in MISRA C.
During my time at Sensata, I worked with 2 other Engineers to take a product from prototype stage to production floor, implementing all product features (RF based liquid level sensing), a debug interface (1-Wire), an MCU Bootloader & ECU Communications (J2716 SENT). I also developed testing tools for Windows in C++ Qt to aid in testing and calibration development.
2013 - 2014
Platform Software Engineer, Belfast
As a member of the Platform Team, I focused on development and maintenance of the companies Data Fabric product. Data Fabric is a high performance, low latency, message-oriented middleware platform used to distribute large volumes of application level information. It is a multi-threaded middleware for Linux Systems, written in C, that operates on typically available IP network hardware. It could leverage Infiniband hardware/networks to implement RDMA, Kernel Bypass solutions.
My role was to implement robust, production ready C code for regular patches & new features while also managing the Data Fabric Lab and triaging Customer issues. I also developed Python tools to assist support, development and QA.
2009 - 2013
Embedded Software Engineer, Belfast
As a member of the “New Products Group” at Schrader, my job was to design, prototype and develop Firmware (in C) for various industrial sensing solutions, all based around an SiLabs 8051 8-bit MCU, often taking concepts from breadboard to in-situ prototype. All sensors were bare-metal solutions with a core focus on low-power design on small footprint, <64kB. The sensors communicated with base stations via 433MHz Manchester-Coded RF. As this was a small team, my role had a significant amount of global customer interaction, where I had to distil technical decisions into coherent presentations.
I am an avid Home Brewer and I run the Homebrew Collab Brewing Club in Bristol where I encourage Home Brewers to come together to share knowledge, techniques and advice (and beer!). Like most curious engineers, I like to marry my job with my hobby and have recently developed a 3G connected, temperature controlled fermentation chamber in my shed.
I am also a multi-genre music fan and like to attend as many gigs as I can afford.
References available upon request.