IWAN ATTWOOD

Embedded Software Lead Engineer

๐Ÿ“ Greater Guildford Area, United Kingdom

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

Jul 2017 - Present (7 yrs 11 mos)
M-KOPA provides affordable smartphones and digital financial services to underserved customers across Africa. M-KOPA pioneered an innovative pay-as-you-go financing model that combines mobile payments with GSM enabled technology, allowing customers to make affordable daily payments and has now served 6+ million customers. The company has received numerous accolades, including being listed in TIME's 100 Most Influential Companies in 2023 and 2024, and appearing in the Financial Times' "Africa's Fastest Growing Companies" rankings for three consecutive years.

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
Embedded C/C++ Source Control (Git) Software quality (SonarCube, MISRA C, ISO 26262) ARM Cortex-M Real-time Systems Azure DevOps Observability Hardware-in-the-Loop Testing

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
ARM Cortex-M0 CAN Bus GSM/LTE Battery Management Real-time Systems OTA Updates

SOFTWARE ENGINEER

tvONE Ltd.

Maidenhead

Nov 2012 - Jun 2017 (4 yrs 8 mos)

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
ARM7TDMI ThreadX TCP/IP Stack Real-time Processing Video Algorithms Embedded Linux (Yocto, Arch)

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

Jan 2004 - Aug 2012 (8 yrs 8 mos)

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
ARM Processors RTOS Device Drivers Memory Optimization Power Management

SOFTWARE ENGINEER

Teleca

Apr 2000 - Dec 2003 (3 yrs 9 mos)
  • 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

C/C++, Real-time Programming, Build systems (cmake, cross compilation toolchains), Python, C#, PySpark

Firmware updates

Secure bootloader, Over-the-air, Firmware integrity

Microcontrollers

ARM Cortex-M Series, STM32, Nordic nRF Series

Communication

CAN Bus, I2C, SPI, UART, USB, TCP/IP, GSM/LTE AT Commands, IoT protocols

Development Tools, software and hardware

KIEL MDK, IAR EWARM, STM32CubeIDE, JTAG/SWD Debugging, Oscilloscopes, Logic Analysers, Power Monitoring

Embedded Operating Systems

FreeRTOS, ARM Mbed OS, ThreadX

Testing & CI/CD

Unit Testing (Unity/CMock), Hardware-in-the-Loop Testing, Azure DevOps

Hardware

PCB Design Collaboration, Schematic review

Standards

ISO 26262 (Functional Safety), MISRA C, IEC 61508

What I Bring to Projects

System Architecture

I design embedded systems that are both power-efficient and reliable in real-world conditions

Hardware Collaboration

Adept at working closely with hardware engineers from initial concept, schematic review through to production testing

Full stack IoT integration

Building observability of device reliability and usage with fleet wide aggregation through data analytics and creating information rich dashboards

Battery Systems

Deep experience with battery management including state-of-charge estimation and thermal protection

Wireless Integration

Proven track record integrating GSM/LTE, WiFi, and Bluetooth into embedded products

Safety-Critical Development

Experience following automotive and industrial safety standards for critical applications

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