Home/Capabilities
// capabilities

Don’t take my word for it. Run the software.

Anyone can list technologies. This page is the opposite: real systems I’ve shipped, led by one running live further down this page. If I can put a CAD engine in your browser, your project is probably not the hard part.

// flagship · live demo

dxf-engine — a CAD floor-plan viewer, in the browser

Architects and builders trade drawings as DXF files — a dense CAD format normally opened in desktop software like AutoCAD. dxf-engine parses those files and renders them directly in a web page: the parsing and geometry core is written in Rust, compiled to WebAssembly, drawing to a plain HTML canvas. No plugin, no upload to a server, no desktop install — the file never leaves the visitor’s machine.

It’s not a toy render, either. It handles real production drawings with layer visibility toggles, vertex snapping, and smooth pan/zoom — the interactions people actually expect from a CAD viewer — at native-feeling speed, because the hot path runs as compiled Rust rather than JavaScript. It was built for a concrete job: letting a construction company embed interactive floor plans on its own website instead of mailing PDFs around.

Why lead with it? Because it demonstrates the rare tier of web work: taking a heavyweight desktop-class problem and shipping it as a fast, self-contained browser tool. Most agencies can build you a website. This is what it looks like when someone can build you software.

Live — this is the actual viewer, not a video. Drag to pan, scroll to zoom, toggle layers. Runs entirely in your browser; nothing is uploaded.

// shipped, not promised

More of what’s left my workshop

Different stacks, same standard: it has to survive real users.

// desktop

ProofDeck — DJ library manager

A Rust/Tauri desktop app that analyzes an entire music library with real DSP — audio fingerprinting, BPM and genre analysis — then reconciles messy metadata with an AI pass and writes clean tags back to the files. Tested against a working DJ’s live library.

RustTauriDSPSQLite
// ai

AI application review for Discord

A community-management bot that reads whitelist applications against a real ruleset via the Claude API and hands moderators a structured, consistent assessment — recommendation only, human decision. Running live in a busy community. Write-up here.

Node.jsClaude APIdiscord.js
// systems

Framework-aware script installer

A desktop installer core that parses Lua with an embedded VM, fingerprints which game framework a server runs, plans changes as a reviewable dry-run, and applies them with a fully reversible manifest — installer discipline applied to game-server tooling.

RustLua VMSQLite
// tooling

Bulk asset optimization

C# utilities that audit thousands of game-streaming assets, flag and re-encode oversized textures, and detect duplicate archetypes across a whole server — turning an impossible manual cleanup into a repeatable pass. Case study.

C#automation
// web

Hand-coded client sites

Static, hand-written sites for local service businesses — fast enough to score green across Core Web Vitals, owned outright by the client, with structured data done properly. The site you’re reading is built the same way. Why static.

EleventyNetlifySEO
// automation

Marketing & ops pipelines

Self-hosted automation that turns one piece of content into multi-channel distribution, runs email drip sequences, and scores inbound leads with an AI pass — the unglamorous plumbing that lets a small operation punch up. The philosophy.

n8nPythonClaude API
// translation

What this means for your project

The pattern across all of it: browser-grade compute (if your product needs desktop-class processing without an install, WASM makes that real), desktop apps when the job lives on a machine, AI integrations that inform decisions instead of faking them, and automation that removes toil permanently. If your idea sits anywhere in that territory, it’s buildable — and I can usually tell you how, and how long, in one conversation.

// start

Have something that needs shipping?

Describe the problem — not the tech. Picking the tech is my job.