Profile
Lead engineer specialising in embedded software delivering firmware for ARM Cortex microcontrollers and real-time systems. I've worked on diverse projects from mobile phones at Nokia to IoT devices for fintech applications, always focusing on creating reliable, efficient embedded solutions. My expertise spans the complete development cycle - from working with hardware teams on initial design through to deploying and maintaining production systems in the field along with full stack integration for observability. I'm particularly skilled at building robust CI/CD pipelines for embedded projects and applying test-driven development practices utilising source control hooks to create firmware that's both reliable and maintainable.
Professional Experience
SENIOR FIRMWARE ENGINEER III
M-KOPA
United Kingdom, Kenya ยท Remote
What I do:
- Flexible knowledge worker, integrating across teams in different countries and timezones, in person and remote
- Design and develop embedded firmware for ARM Cortex-M devices, focusing on real-time performance, power-efficiency and reliability
- Build secure communication systems and over-the-air update mechanisms for devices deployed in remote locations
- Integrate IoT device data into backend and full stack applications to support sales and credit functions
- Work closely with hardware teams throughout the development process, from initial PCB requirements to final testing and manufacturing
- Set source control policy with deployment pipelines to ensure code quality is maintained
- Create troubleshooting workflows and automated testing systems that keep projects on track
- Leverage a wide range of hardware debugging tools (JTAG, Oscilloscopes, Logic Analysers, Power Monitoring) to ensure firmware and hardware work together in harmony
Recent Project: Connected battery monitoring system for 72V packs in Kenya (Jun 2022 - May 2025)
- Lead firmware developer for a distributed team working on ARM Cortex-M0 based battery management system
- Built CAN bus communication systems for monitoring and power management
- Developed wireless communication using GSM modules, creating custom AT command interfaces for reliable connectivity
- Implemented real-time battery management algorithms including accurate state-of-charge estimation and thermal protection
- Architected a verifiable full life cycle battery health passport for fault prediction facilitating safe buy-back schemes and second life use
- Created robust bootloader and over-the-air update systems for devices operating in challenging field conditions
- Set up comprehensive testing including unit tests, integration tests and hardware-in-the-loop validation
SOFTWARE ENGINEER
tvONE Ltd.
Maidenhead
Worked on embedded systems for professional video processing equipment, focusing on low-latency performance and real-time video handling.
- Developed firmware for ARM controller module managing FPGA video processing systems where timing was critical
- Built a custom TCP/IP stack and HTTP server so customers could configure devices through a web interface
- Implemented various communication interfaces including RS-232, USB, and Ethernet
- Integration of embedded Linux based video source into video wall processor
Project: tvONE ISE 2015 Gesture Wall (Jan 2015 - Feb 2015)
- Created an interactive video wall demo that responded to user gestures
- Developed PC-based gesture recognition algorithms
- Built communication protocols to coordinate multiple embedded devices working together based on gestures
SENIOR SOFTWARE ENGINEER
Nokia Mobile Phones
Farnborough, Hampshire, UK
Spent 8+ years developing embedded software for Nokia's S40 mobile phone platform, with over a billion devices shipped worldwide.
- Developed embedded applications in object oriented C for ARM-based mobile phone processors
- Led the architecture and implementation of the phonebook application, optimizing it for devices with very limited memory
- Pioneered code quality and style guides around graphical programming tools used for application development at Nokia including training and mentoring peers
- Worked extensively with real-time operating systems and interrupt-driven programming for responsive user interfaces
- Implemented device drivers for flash memory, display controllers, and keypad interfaces
- Constantly optimized code for power consumption and memory usage
SOFTWARE ENGINEER
Teleca
- Worked as a contractor for Nokia UK, developing embedded UI applications for their S40 mobile phone platform
- Built user interfaces and keypad input handling using embedded C
- Gained experience with memory-mapped I/O and hardware abstraction layers for mobile device peripherals
Technical Skills
Programming
Firmware updates
Microcontrollers
Communication
Development Tools, software and hardware
Embedded Operating Systems
Testing & CI/CD
Hardware
Standards
What I Bring to Projects
System Architecture
Hardware Collaboration
Full stack IoT integration
Battery Systems
Wireless Integration
Safety-Critical Development
Education
University of Surrey
2.2, Computer aided chemistry
1993 - 1997
Patents
SCROLLBAR
US 20100333016 ยท Filed Jun 30, 2009
A method for changing the scrolling granularity of a scrollbar to allow easier navigation of long files. Especially applicable to devices where the input method is limited.
Courses
Clean Code Master Class
M-KOPA
New World Leadership by Change Innovators
M-KOPA
Scrum master
Nokia Mobile Phones
Coaching for success
Nokia Mobile Phones
Developing Linux device drivers
EL-504, Nokia Mobile Phones
Developing for embedded Linux
EL-503, Nokia Mobile Phones
Kepner-Tregoe problem solving
Nokia Mobile Phones
STM32 Security
M-KOPA