Software Engineer in Boston. Most of my years have gone into React, and most of those into real-time maps that stay smooth under far more on-screen load than they should. When something's slow or tangled, I follow it down the stack into Rust or Go until I find the cause. That chase is my favorite part, and lately it keeps ending in Rust.
Open source: I publish to crates.io and npm, and I've upstreamed a few type contracts to DefinitelyTyped, including new @types packages.
|
Geofence manager & TSP route optimizer — full-stack app. Live ↗ |
Real-time map frontend self-hosted by many communities. Founder and #1 committer. |
|
Multithreaded solver for the Traveling-Salesperson Problem. |
Published React wrapper for the leaflet-geoman drawing plugin. |
|
Convenient JS class for the UICONS icon standard. |
Async browser automation in Rust via the Chrome DevTools Protocol (tokio). |
Simpler Work — the AI product I'm heads-down on most days. TS · React · Next.js. (closed source)
Dragonite Admin — control panel for the Dragonite Go scanner backend; I'm the #1 contributor. React 19 · Leaflet, wired to Go. (closed source)
Deepening Rust services & AI-agent tooling. A few recent builds:
Ridiculously typed shadcn components — template-literal validators & a 6-mode oklch picker. Demo ↗
Custom skills & tooling for AI coding agents.
Local-first Pokémon TCG collection tracker over a ~20k-card catalog. Server-rendered pages with client islands hydrating on top, and your collection never leaves the browser. Demo ↗
Polyglot Pokémon GO masterfile bindings (TS/Rust/Go), auto-generated from upstream.
Type-level dot-notation paths for TypeScript. Compile-time only, nothing ships at runtime, and it type-checks about 40% faster than the usual keyof cascade.
Internationalization for the Bevy engine: localized text that swaps the instant you change locale, with about as little boilerplate as I could manage. My most-used Bevy crate.
Async Rust wrapper over the curl-impersonate CLI, so every request carries a byte-exact Chrome TLS and HTTP/2 fingerprint. It spawns a subprocess instead of linking BoringSSL, so there are no native build deps.
Bevy game-dev (Pumpkin Palooza ↗, a browser horde game in Rust) · PC watercooling · real-time Pokémon GO data nerdery








