JP's Website


About Me

I am a husband and father of two, living in the town of St Ives, Cambridgeshire, England.

We have two cats and a dog. I have a a growing collection of old computers and memories of an old Jaguar.

I successfully stood for election to St Ives Town Council as an Independent in 2016 and again in 2018. In 2019 my fellow Town Councillors elected me as Deputy Town Mayor, and in 2020 as Town Mayor.

For my day job, I have spent over 15 years as an Embedded Systems Consultant for several Cambridge based product design consultancies. I am currently working at Ferrous Systems remotely from my home town of St Ives, providing consulting and training in Rust.

In 2023 I joined the new Rust Leadership Council as the representative for the Launching Pad team.

Technical Skills

I have delivered client projects on everything from the smallest Microchip PIC, to huge multi-core Arm Cortex-A based SoCs. I can program in Rust, C, C++, Python, JavaScript, BASIC, Perl, PHP and SQL.

Computers

My collection currently includes:

My day-to-day laptop is an Dell Inspiron 7400, running Windows 11. I've used a variety of Linux distributions as my desktop OS pretty much exclusively since 2003, but these days I need to share the laptop with my family.

Cars

I used to own a 1995 Jaguar Sovereign 3.2 LWB (long wheel-base), between 2011 and 2021.

I owned an electric Nissan Leaf for three years, but currently just have the use of my wife's electric MG 5.

Model Railways

My N-Gauge model railway was dismantled in 2018 owing to a lack of space. I still have a collection of rolling stock and landscaping items in storage, and when time and funds allow, a new layout will be created. My preferred location and era for modelling is Warwickshire and the West Midlands circa 2000-2004 (which is where and when I was at University), so I have several Chiltern and Virgin Voyager DMUs. I am a member of the N Gauge Society.

Personal Projects

Rust

I have been a huge fan of the Rust programming language since the 1.0 days. As part of this, I produced some workshop material for the Raspberry Pi Party 2017. I've also delivered several Embedded Rust training workshops, and it's been a key theme of my projects over the last seven years. In 2021 I was lucky enough to join Ferrous Systems, where I write and teach Rust full-time. In 2023 I was also invited to join the Rust Leadership Council as the representative for the Launching Pad team.

Monotron

I wanted to make a 1980s style home computer using an inexpensive Cortex-M4 devkit. Can you generate VGA from this board? In colour? How about handle a PS/2 keyboard? Load applications? Let the user write BASIC programs? Generate audio? More importantly, can you do all this in pure Embedded Rust, with no C or C++ in sight? The result was The Monotron, a small single-board computer inspired by early CP/M and MS-DOS machines. This was presented at several tech conferences, including Rust Fest Paris (2018), Rust Belt Rust (2018), ACCU 2019 and RustConf (2019).

You can see more on my Github.

Neotron

Monotron has been followed by Neotron - a family of Arm Cortex-M powered systems which share an OS, through the use of a custom BIOS acting as a hardware abstraction layer. The lead system is powered by a Raspberry Pi Pico microcontroller board and has VGA output, PS/2 keyboard and 16-bit stereo audio.

You can see more at https://github.com/neotron-compute.

Grease

With a background in Telecoms firmware which use a strict layered message-passing approach to stack implementation, I wrote a proof-of-concept message-passing framework in Rust, called Grease (because it makes rusty threads work more easily).

The source code is on Github

Beagleboard X15

I wrote a pure-Rust firmware for the Cortex-M4 sub-system in the Texas Instruments AM5874 SoC found on the Beagleboard X15. This implemented VirtIO vrings and could exchange messages with a C or Rust user-space application on the Linux/Cortex-A side via a socket.

The source code is on Github

Contact

You can contact me via: