Software developer · IT consultant · photographer · radio enthusiast
I build software around radio systems, cloud infrastructure, and digital imaging. A lot of it starts with hardware I use, a workflow that could be better, and the occasional proprietary format that looked interesting enough to reverse engineer.
Professionally, I run a small IT consulting business working with Microsoft 365, Azure, AWS, networking, identity, security, and automation.
A desktop operator console for P25, DMR, and NXDN radio systems, built with .NET and Avalonia. It brings independent channels, talkgroup patching, secure voice, recording, and graphical configuration into one workspace.
NEO is a ground-up rewrite of the original application, with releases for macOS, Windows, and Linux.
Explore the project → · Download
A browser-based tool for exploring Nikon’s NP3 Flexible Color Picture Controls. I reverse-engineered the format and built an analyzer that decodes all 44 parameters, visualizes tone curves and LUTs, and exposes the color-blending and grading data inside each file.
Built with Rust and WebAssembly. Files are processed locally in your browser.
My radio work spans digital voice networks, HF, SDR, audio, and hardware integration. DVMHost and FNECore are part of the wider ecosystem I work with.
I’m also a Nikon photographer, interested in both making photographs and understanding how the camera arrives at that point. NP3 Studio is where those interests overlap.
More radio projects and forks
- KFDtool — P25 keyloading software and hardware tooling
- NetworkIcom — Icom IC-7610 Ethernet control in Swift and SwiftUI
- P25Clients and NXDNClients — gateways and parrots
- MMDVM_CM — cross-mode conversion tools
- anytone-flash-tools — Anytone radio flash tools
- OpenHPSDR-wdsp — SDR and digital signal processing
Some are active work; others are older experiments or forks I used to explore a radio, protocol, or piece of hardware.
Tools I work with: C# · .NET · Avalonia · C/C++ · Rust · WebAssembly · Python · JavaScript
Mostly, I like figuring out how complicated things work and making them easier to use.
And occasionally fixing things that probably would have been easier not to take apart in the first place.


