Projects
Things I build on the side: compiler tooling, fuzzing, a game I loved as a kid, and notes from breaking things on purpose.
rllvm & rules_rllvm
Extract whole-program LLVM bitcode from any build: compiler wrappers for Make, CMake and Cargo, and Bazel rules that need no wrapper at all.
rllvm & rules_rllvm
Rust · Starlark · 2022 – now
Static analysis wants the whole program as one LLVM module, but a real build spreads it across hundreds of compile commands. These two get it back out without changing how you build.
Grammar-Mutator
Grammar-based mutator for AFL++. My Google Summer of Code 2020 project, which I still maintain.
Grammar-Mutator ★ 276
C · AFL++ · 2020 – now
A custom mutator that lets AFL++ fuzz highly structured inputs, like JSON or Ruby, by mutating parse trees instead of bytes.
- Tree-based mutation and trimming, after Nautilus and F1
- An ANTLR4 shim that parses test cases at runtime
- Started in Google Summer of Code 2020, mentored by Marc Heuse and Andrea Fioraldi
my-resume
XeLaTeX · Claude Code · 2026
One canonical LaTeX resume, tailored variants per job, facts defined once so they can't drift, and a template tested like code.
Chromatron Remake
Chromatron 1–4, rebuilt in Rust for Apple Silicon and the browser. The game I played with my dad in 2006.
Chromatron Remake
Rust · WebAssembly · Ghidra · 2026
Sean Barrett's laser puzzle games, rebuilt from a decompilation of the PowerPC originals. Four native Mac apps and the browser share one engine.
cairn
Rust · 2026
A cairn is a stack of stones that marks a route. Each CVE I reproduce is one stone: a self-contained crate with the same layout, notes and verification steps.
- Two reproductions so far, including Copy Fail (CVE-2026-31431)
- Public, patched bugs only, credited to the original researchers
HTB notes
Writeups · 2025 – now
Hack The Box machines I've solved, written up step by step on this blog, with the notebooks and scripts on GitHub.

