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.
My collection currently includes:
- Commodore 128D
- JiffyDOS (for C128, C64 and 1571)
- External Pi1541
- CGA to SCART adaptor
- Apple iMac G4 (white half-sphere or 'lampshade')
- 886 MHz G4
- Original 60GB hard drive, keyboard, mouse and speakers
- Apple Powerbook G4 1GHz
- SD2IDE replacement drive
- Amstrad PCW9512
- 3" CF2DD Drive A:
- Gotek Drive B:
- Daisywheel Printer
- Amstrad CPC464
- Acorn RiscPC 600
- 486 PC card
- Twin-slice case
- BBC Master
- 3.5" floppy drive
- Panasonic Centronics dot-matrix printer
- Dell Precision T3400 Workstation
- Core 2 Duo
- Windows XP
- nVidia Quadro 600
- Pentium III @ 450 MHz
- Windows 98 / MS-DOS 6.22 dual-boot
- Diamond Viper V770 Ultra
- SoundBlaster AWE64
- Adaptec AHA-2940UW SCSI card
- Sega MegaDrive
- Microsoft Xbox
- Nintendo Wii
- With Gamecube memory module and controllers
- Sony Playstation 2
- Sony Playstation 3
- Sony Playstation 4
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.
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.
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.
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.
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.
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.
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
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
You can contact me via: