Hi, I'm Will, a software engineer in the UK. I build things from scratch to understand how they work, mostly in C and C++, and occasionally write about it here.

Writing

Building a CHIP-8 Emulator

CHIP-8 is an interpreted language from the mid-1970s and the classic first emulator project: a small spec, well documented, with real games at the end. Here's how I built mine in C++23 with SDL2, OpenGL and ImGui.

Read more...

Projects

CHIP-8 Emulator

A CHIP-8 virtual machine with an SDL2/OpenGL frontend and a live ImGui debug panel.

C++23 SDL2

See all projects...

About

Software engineer based in the UK. I am particularly interested in C++, software architecture and emulators.

I started in electronics and signal processing, and now write safety-critical embedded firmware, mostly in modern C++. I like working close to the hardware, and I learn best by building things from first principles. Current projects include a cycle-accurate Game Boy Color emulator, a custom oscilloscope-style trace viewer for an STM32 and a mini-chess game which is <1kB in size.

Away from the keyboard I compete in powerlifting and play chess.