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 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 42 Technology in St Ives.

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 Acer Swift 3 (SF314-51), running Pop OS!. I've used a variety of Linux distributions as my desktop OS pretty much exclusively since 2003.

Cars

I have a 1995 Jaguar Sovereign 3.2 LWB (long wheel-base), which I purchased at the end of 2011. Its condition varies as time and funds allow, but when it working order it is used for family trips at the weekend.

I owned an electric Nissan Leaf for three years, but currently just have the Jaguar, and 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 five years.

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.

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: