JP's Website
Curriculum Vitae
I am an Embedded Systems engineer specialising in safe, secure, reliable embedded systems design and development. I have a background in Local Government, having been elected to St Ives Town Council twice, and having served as Deputy Town Mayor and Town Mayor. I am also an experienced public speaker. In 2023 I joined the new Rust Leadership Council as the representative for the Launching Pad team.
Technical Experience
In the course of my career I have worked with a huge variety of embedded systems, including the following:
- Processor Families
- Arm Cortex-M
- Raspberry Pi RP2040
- Nordic Semiconductor nRF52, nRF91
- ST Micro STM32
- Texas Instruments Tiva-C, CC1310
- Silicon Labs EFM32
- Arm Cortex-A/ARM11
- Texas Instruments Sitara AM335x
- Texas Instruments Sitara AM57x
- Texas Instruments DaVinci DM81x
- Broadcom BCM283x
- SPARC
- Gaisler LEON3 (SPARC V8)
- Cambridge Consultants XAP2
- CSR BlueCore 5
- RISC-V
- Espressif ESP32-C3
- StarFive JH7100
- DSP
- Texas Instruments C66x
- Other Microcontrollers
- Atmel ATmega, ATxmega
- Microchip PIC18, PIC24
- ST Micro STM8
- Arm Cortex-M
- Programming Languages
- Rust
- C
- C++
- Python (inc Django)
- PHP
- Perl
- Java
- JavaScript
- Bash
- SQL
- Delphi / Pascal
- System Software
- Linux (Buildroot/Debian/Ubuntu/CentOS/Arch)
- U-Boot
- Mentor Graphics Nucleus
- FreeRTOS
- Zephyr
- mynewt
- Bluestack
- TI SYS/BIOS
- Communications Technologies
- L-Band Satellite
- Proprietary Sub-1GHz (ISM band)
- Wi-Fi
- NB-IoT and LTE Cat-M
- Bluetooth (Classic and LE)
- 802.15.4
- Ultra-wideband
Work Experience
Ferrous Systems
Senior Embedded Engineer - Dec 2021 to Present
Ferrous Systems (https://www.ferrous-systems.com) is a Rust programming language consultancy and training provider.
My role includes:
- Providing Rust training to clients
- Providing Rust consultancy and development services to clients
- Improving the training material
- Working on open-source projects
- Lectures and articles
42 Technology
Senior Consultant, Electronics and Software Group - Jan 2019 - Nov 2021
42 Technology (http://www.42technology.com) is a product design and development consultancy.
My role included:
- Embedded firmware development in Rust, C, C++ and Assembly Language
- Systems Engineering and Requirements Analysis
- Staff training
- Sales and proposals
- Improving Software Development processes
- Interviewing candidates
- Lectures and articles
Cambridge Consultants
Senior Consultant, Wireless and Digital Services - Jan 2018 - Jan 2019
Principal Engineer, Wireless and Digital Services - Jan 2015 - Jan 2017
Senior Engineer, Wireless Software - Apr 2009 - Jan 2014
Cambridge Consultants (http://www.cambridgeconsultants.com) is one of the original Cambridge-based product design and development consultancies, founded in 1960. Spin-out companies include Xaar, Domino, Cambridge Silicon Radio, AlphaMosaic, Aveillant and Evonetix.
My role included:
- Embedded firmware development in C
- Automated Test System development in Python
- Systems Engineering and requirements analysis
- System Test
- Demonstrations for client/VIP tours
- Staff training
- Sales and proposals
- Improving Software Development processes
- Product delivery and integration at client facilities
- Designing and developing an in-house CI system based on Python/Django and VMware ESXi
- Interviewing candidates
- Lectures and articles
HM GCC
Engineer: 2006 - 2009
Graduate Engineer: 2004 - 2006
HM GCC provides electronics and software to support the communication needs of the British Government.
My role included:
- Embedded firmware development in C, C++ and Assembly Language
- Desktop application development in C++, Delphi and C#
- Designing and developing a stock management system
- Systems Engineering and requirements analysis
- System Test
University of Warwick, Department of Computer Science
Software Developer - Summer 2003
I worked on the BOSS On-line Submission System, an open-source coursework submission server and client UI written in Java and using PostgreSQL.
HouseWeb.co.uk
Web Developer - Summer 2001 and Summer 2002
Developer for an early on-line property sales portal. Web development in Perl, PHP, HTML and JavaScript.
Local Government and Community Groups
The Rust Project
Member of the Rust Leadership Council: 2023 - Present
Council representative for the Launching Pad Team.
Rust Embedded Working Group
Member: 2018 - Present
I helped found the Rust Embedded Working Group, after meeting like-minded developers through my work getting Rust code running on the Texas Instruments Stellaris Launchpad. I regularly attend the weekly meetings, as well as review and submit PRs on their Github page.
St Ives Town Council
Town Mayor of St Ives: 2020 - 2021
Deputy Town Mayor of St Ives: 2019 - 2020
Chair of the Property Committee: 2017 - 2022
Vice-Chair of the Norris Museum and Library Trust Committee: 2019 - 2022
Vice-Chair of the Personnel Committee: 2021 - 2022
Vice-Chair of the Property Committee: 2016 - 2017
Member of the Property Committee: 2016 - 2022
Member of the Personnel Committee: 2016 - 2019; 2021 - 2022
Member of the Amenities Committee: 2019 - 2020
Member of the Planning Committee: 2019 - 2020
Member of the Promotion and Publicity Committee: 2016 - 2019
Town Councillor (Independent)
I was elected to St Ives Town Council twice, in May 2016 (for a two year term) and in 2018 (for a four year term).
St Ives is a historic Market Town in Huntingdonshire, and the Town Council has been in existence since 1974 (although it was preceded by St Ives Borough Council, which was founded in 1874). The Town Council has around 11 staff and provides services to the 17,000 residents of St Ives. These services include maintaining the following buildings and facilities:
- The Town Hall, Market Hill
- The Corn Exchange, The Pavement
- The Norris Museum and Library (the Museum of Huntingdonshire), The Broadway
- The Burleigh Hill Centre, Constable Road
- Hill Rise Cemetery, Hill Rise
- Hill Rise Allotments, Hill Rise
- Warner's Park and Warner's Park Pavilion, Park Lane
- Slepe Hall Field, Ramsey Road
- Eight children's play areas
As Chair of various committees, and as Town Mayor (i.e. Chair of the Town Council), I have extensive experience in conducting formal meetings, decision making and public events. I am independent, open-minded, and always try to ensure that discussions lead to a productive outcome.
Cambridge and District Classic Car Club
Chair: 2013 - 2016
Vice-Chair: 2013
Membership Secretary: 2010 - 2013
IT Officer: 2009 - 2016
The Cambridge and District Classic Car Club was founded in 1995 and is a multi-marque club offering regular club-nights and organised attendance at local car shows.
Warwick Student Cinema
IT Officer: 2002/2003
Open Source Developer
Outside of work (and occassionally in work), I have developed the following open-source projects:
- The Monotron - a single-board computer based around the Texas Instruments Tiva-C Launchpad, written in Rust
- The Neotron Project - a family of single-board computers with Arm processors that run the Neotron OS
- neotron-loader - an ELF parser that doesn't require the ELF data to already be in RAM
- monotron-synth - a three-channel basic wavetable synthesiser, used on the Monotron
- vga-framebuffer - a VGA-over-SPI rendering engine, used on the Monotron
- beagleboard-x15 - a demo for the Beagleboard X15 which exchanges messages between Linux on the Cortex-A core, and a bare-metal Embedded Rust application on the embedded Cortex-M4 IPU
- rp2040-hal - a HAL and set of Board Support Packages for the Raspberry Pi Pico and other RP2040 based boards
- tm4c-hal - a HAL and set of Board Support Packages for the Texas Instruments Tiva-C Launchpad and other TM4C123/TM4C129 based boards
- grease - a message-passing application framework for building layered protocol stacks in Rust
- embedded-sdmmc - a SD/MMC block device driver and FAT16/FAT32 implementation written in Rust
- multi-map - a two-key hashmap, written in Rust
- pc-keyboard - a Scancode decoder for PC XT, AT and PS/2 keyboards, written in Rust
- zube - an Open Source ASIC design for interfacing with Z80 CPU, developed as part of zero2asic and built on Google's MPW3 shuttle
- illyria - a stop-and-wait ARQ using postcard + COBS as a serialisation mechanism, in Rust
- pyvmlib - a Python library for interacting with VMware ESXi servers
- tockloader-proto-rs - an implementation of the tockloader protocol, in Rust
- rushtttp - an HTTP server written in Rust
These works and more can be found at my Github account.
Education
University of Warwick
MEng in Computer Systems Engineering (first-class): 2000/01 - 2003/04
Hills Road Sixth Form College, Cambridge
Computing (A), Maths (A), Further Maths (A), Physics (A) - 1998/99 - 1999/00
Articles and Appearances
Listed in alphabetical order.
ACCU
- Bristol, 2022, Neotron – writing a single-tasking ‘DOS’ for Arm microcontrollers, in Rust ([accu.org]https://accu.org/conf-main/main/) (youtube.com)
- Bristol, 2019, Monotron - a 1980s style home computer written in Rust (accu.org) (youtube.com)
- Bristol, 2018, Grease: A Message-Passing Approach to Protocol Stacks in Rust (accu.org)
BBC News
- On-line, 2013, Raspberry Pi aids cyber 'safety net' for African rhino (bbc.co.uk)
Cambridge Raspberry Jam
- Cambridge, 2017, Computing with Physical Quantities (youtube.com)
- Cambridge, 2016, Programming in Rust on the Pi (youtube.com)
Centre for Computing History
- Cambridge, 2022, Neotron – writing a single-tasking ‘DOS’ for Arm microcontrollers, in Rust (computinghistory.co.uk)
- Cambridge, 2019, Rust Tutorial with Jonathan Pallant (computinghistory.org.uk)
- Cambridge, 2017, Coding as an Art Form (youtube.com)
The Coriolis Effect Show, with Bil Herd and Ben Jordan
- On-line, June 2022, https://www.youtube.com/watch?v=Fgv_8H3h4Q8
- On-line, December 2022, https://www.youtube.com/watch?v=X1-mt4mrZ9E
Electronics Weekly
- Print and on-line, January 2020, Making embedded devices a little Rusty (electronicsweekly.com)
- Print and on-line, August 2019, 42 Technology advocates Rust for secure IoT (electronicsweekly.com)
Engineering Design Show
- Coventry, 2016, Using off-the-shelf boards in commercial products
High Integrity Software
- Bristol, 2017, Delivering quality, time after time (his-conference.co.uk)
The MagPi
- Print and on-line, Issue 73, Introduction to Rust on the Raspberry Pi (magpi.raspberrypi.org)
Meeting Embedded
- Berlin, 2019, IoT with Rust and the nRF9160 - more secure and lower power! (meetingembedded.com)
- Berlin, 2018, Remoteprocs in Rust (meetingembedded.com)
NDC TechTown
- Kongsberg, 2022, Neotron – why write a brand new 'DOS' for Arm in Rust (ndctechtown.com)
New Electronics
- Print and on-line, March 2021, Cooking up a connected product (newelectronics.co.uk)
- Online, October 2021, 42 Technology helps develop smarter monitoring for remote farms (newelectronics.co.uk)
Oxidize
- On-line, Oxidize 1K (2020), How We Got QUIC Running on the nRF9160 Before Everyone Else (oxidizeconf.com)
- Berlin, 2019, Event Host
PiWars
- Cambridge, 2017, Intermediate Category - First Place, (piwars.org)
- Cambridge, 2016, Runner Up
Raspberry Pi 'Big Birthday Weekend' / 'Big Pi Party'
- Cambridge, 2017, Rust as an alternative to Python (raspberrypi.org)
- Cambridge, 2017, Workshop: Introduction to Rust on the Raspberry Pi
- Cambridge, 2016, Driving Neopixels from Python
- Cambridge, 2015, Pi, Penguins, Rhinos and Space (raspberrypi.org)
Rust Belt Rust
- Ann Arbor, 2018, Monotron - a 1980s style home computer written in Rust (conf2018.rust-belt-rust.com) (youtube.com)
RustConf
- Portland, 2019, Monotron - Building a retro computer in Embedded Rust (2019.rustconf.com) (youtube.com)
RustFest
- Paris, 2018, Monotron: Making a 80s style computer with a $20 dev kit (paris.rustfest.eu) (youtube.com)
Safety Critical Systems Club
- London, 2022, Rust for Safety Critical Systems (last-minute stand-in)
UK Embedded
- Coventry, 2022, The Rust Programming Language and its applicability today on the development on secure, high-performance embedded systems (ukembedded.co.uk)
University of Cambridge
- Department of Computer Science, 2019, Rust and the Monotron
- Jesus College MCR, 2015, Pi, Penguins, Rhinos and Space
- Department of Engineering, 2015, My life as an Engineer
University of Warwick
- Department of Engineering, 2018, My life since Warwick
- Third-year Project, 2003, Fast image processing using a Gate Array