I’m Kyle, a software developer who likes understanding how things work, fixing things that don’t, and building useful software without making it needlessly complicated.
Most of my work is backend-focused C#/.NET running on Linux, with a mix of APIs, self-hosted services, networking, observability, and developer tools. I’m also drawn to the older and
stranger parts of computing: Gopher, Gemini, DN42, Yggdrasil, Unix, C, and the occasional game-modding rabbit hole. This site is part portfolio, part workshop, and part record of
whatever I’m currently building or figuring out.
A few projects that best represent the kind of software I like to build.
Infrastructure / applications
Mission Control
A self-hosted operations system combining durable event history with live host, container, and protocol monitoring across multiple machines. Agents collect current state while NATS
JetStream carries operational events to the archive and shared web/mobile clients.
A fast Steam backlog picker and library exporter built for people with too many games and not enough desire to choose one. It supports unplayed filtering, local exclusions, aggressive
caching, and CSV exports with playtime and Steam Deck compatibility.
A self-hosted planning tool for deciding what to work on when time and energy are limited. It filters todos by available energy and effort, then favors useful work based on project
neglect and priority instead of always sending me back to whatever I touched most recently.
I use a mix of VPS providers for public services, self-hosted applications, and networking experiments. GreenCloud hosts several of my public services, including Mission Control, Random
Steam Game, and the Happy protocol services. I also use Servitro for a Frankfurt, Germany DN42 POP, which gives me another location for routing and network experiments.
Networking experiments, strange protocols, small tools, and whatever rabbit hole I wandered into this week.
DN42Atlas
A .NET tool for discovering and browsing public DN42 services. It starts from registry data, resolves .dn42 names, conservatively probes web services, respects exclusions and
robots.txt, and builds a static viewer from the results.
Small C sensors watch exposed ports for unsolicited connections; a separate .NET observatory turns that stream into sanitized recent activity and aggregate Internet-noise statistics.
An experimental .NET browser-automation tool that detects Pluto ad breaks and switches to YouTube instead, with DOM and learned visual detection plus a Windows GUI.