Principal Software Engineer and founding engineer at Contrast Security. I build runtime instrumentation and security systems: CLR internals and IL rewriting, Windows kernel drivers, process attachment and injection, and eBPF-based workload visibility on Linux, in C++, Rust, and C#.
Co-inventor on US Patent 11,222,122: Method and System for Runtime Instrumentation of Software Methods.
microsoft/CLRInstrumentationEngine
Microsoft's cooperative profiler for running multiple .NET profilers in one process.
- #303: Fixed stack-depth calculation for calls to generic methods. The engine used the MethodSpec signature, which encodes only generic arguments, producing a too-low maxStack and InvalidProgramException in instrumented applications.
- #278: Reused the existing AssemblyInfo in AssemblyLoadFinished instead of creating a new one that overwrote the instance already registered during ModuleLoadFinished.
- #276: Fixed AssemblyInfo::GetModules, which always returned a NULL IEnumModuleInfo.
Rust crate for creating core dumps of running Linux processes.
- #39: Fixed the aarch64 build of the Linux ptrace path, added ARM64 CI builds and tests, and updated tests for aarch64 register layouts.
- PearlHq: Pet food and water sensors on an Adafruit Feather ESP32-C6, with a backend and web UI.
- SpaceViewportStudio: Generates deep-space panoramas spanning linked Lian Li TL LCD case fans.
- ClueSnake: Snake on the Adafruit CLUE (nRF52840) in C++.
- PwnNetShell: ASP.NET web shell built for authorized penetration testing engagements at Aspect Security (circa 2012).




