I'm a systems programmer and graphics developer working primarily in Rust, Zig, WGSL and OpenCL, with a focus on GPU pipelines, compilers, and emulators — the software layer closest to the hardware. I'm drawn to problems where performance and correctness are equally non-negotiable, from real-time rendering to bytecode and instruction-set translation.
I'm a systems programmer and graphics developer working across Rust, Zig, WGSL, WebAssembly and OpenCL. My work sits at the boundary between hardware and higher-level code — GPU pipelines, compilers, and instruction sets — the kind of layer where correctness and performance both matter and neither can be an afterthought.
I maintain a handful of open-source tools spanning graphics, compilers, language runtimes and GPU tooling, and I've spoken internationally about emulation and hardware translation — most recently at FOSDEM 2026 in Brussels.
Vulkan & wgpu, shader pipelines, acceleration structures, real-time rendering.
WebAssembly → SPIR-V, dynamic recompilation, instruction-set translation.
Rust & Zig runtime internals, FFI, memory models, GPU interop.
A real-time ray tracing renderer built on Vulkan and wgpu, supporting recursive traversal through portals.
Reference-counted pointers for Zig, inspired by Rust's Rc and Arc.
Compiles WebAssembly programs directly into SPIR-V shaders, bridging Wasm toolchains and GPU shader pipelines.
A Rustified OpenCL experience — safe, ergonomic bindings for compute on the GPU.
A C++20 library and engine framework for Vulkan applications — device setup, windowing, and an extensible system/layer architecture for the main loop.
A toy NES dynamic recompiler — translates 6502 game code into host machine code in real time. The subject of the FOSDEM 2026 talk below.

Building a dynamic recompiler for NES games together with the audience: translating code written for the console in real time into machine code directly executable on the host computer.

A second run of the DORS/CLUC talk for OpenSouthCode's audience — taking attendees through emulating the 6502 system on modern architectures.

A journey through emulators and hardware translation: building a program that compiles 6502 binary code into host-executable code, and exploring the architecture, strengths and limitations of the 6502 processor.