Software developer
StevenMcGee
I design and build software end to end: the product, the model inside it, and the tools that ship it.
Now building Ducatly and Muxwire
Selected work ↓Selected work
11 projects
A multi-user net worth app. Link accounts, upload a statement or a tax return and let AI read it, or add things by hand. Everything lands on a single chart, and private leagues let friends compare in ranges without ever seeing each other's numbers.
- Account linking through Plaid
- Document reading with review before anything is saved
- Private leagues that share ranges, never balances
TypeScript · React · FastAPI · Postgres · Plaid · Claude
ducatly.comA browser-first deck of terminals attached to tmux sessions on your own machines, streamed over WebSockets. Sessions outlive the tab, the laptop, and the network you opened them on. A file tree, editor, diff and preview sit beside the deck.
- PTY relay over WebSockets
- Machines joined over a private tailnet
- One container serves API, sockets and UI
React · FastAPI · WebSockets · tmux · Tailscale · Docker
muxwire.comA portfolio intelligence platform built for The Covington Group. Property managers send quarterly PDF reports; CovIntel reads them into structured rent rolls and financial statements, then puts the whole portfolio on live dashboards. Deal underwriting, entity records, market listings and news, and an AI research workspace sit alongside in the same app.
- AI extraction of rent rolls and financial statements from PDFs
- Underwriting with pro forma, IRR, DSCR, sensitivity and waterfalls
- A scraper fleet feeding listings and market news automatically
TypeScript · React · FastAPI · OpenAI · Google Document AI
A community-built card database with a collection vault on top. It is the catalog collectors check a card against, kept independent of any publisher, and structured so a second card game can live beside the first without the two tangling.
- Full catalog with a personal collection vault
- Scrapers and pipelines that keep the catalog current
- Publisher split with edge redirects for every legacy path
TypeScript · React · FastAPI · Postgres · Stripe
narutodb.comThe generalized successor to NarutoDB: one catalog for trading cards, collectible card games and sports cards, with a portfolio tracker built on top. The catalog comes first and stays neutral, so it can be trusted as a reference; the portfolio is what you do with it once you find your cards.
- One catalog model that spans games, sets and sports
- Portfolio tracking priced from real sale data
- Built on the pipelines proven on NarutoDB
TypeScript · React · FastAPI · SQLAlchemy · Postgres
cardboarddb.comA sports card database built for One of One Collectibles LLC. A fleet of browser-based collectors gathers active and sold listings around the clock and posts them to a central API, giving the business one place to see what a card is listed for and what it actually sold for.
- Sharded collector fleet that scales by adding machines
- One-command provisioning for a new machine in the fleet
- Active and sold listings joined in a single catalog
TypeScript · React · FastAPI · Postgres · Playwright
sportscardsdb.comA phone-camera scanner for an 894-card catalog. A fine-tuned DINOv2 vision model runs on the phone's own GPU through WebGPU, so recognition is real-time and nothing leaves the device. Scans are sorted into named batches, so when a card sells you know which box it is in.
- Fine-tuned DINOv2 ViT-S/14 with ArcFace, triplet and SupCon losses
- On-device inference through ONNX Runtime and WebGPU
- Query expansion and PCA whitening at retrieval time
PyTorch · ONNX Runtime · WebGPU · React · TypeScript
A heads-up no-limit hold'em agent built on self-play and search, with no precomputed strategy and no opponent data. Every decision is solved live on the GPU, with neural networks estimating the value of the streets still to come. Each round of self-play trains the next generation of networks, and a version only counts as better when it wins a test whose size and deals were fixed before it ran. Its predecessor, Midas, a precomputed-strategy bot, finished 15th of 100 on the GTO Wizard leaderboard at −16.2 bb/100 over 41,474 hands.
- GPU counterfactual-regret solver with value networks at the leaves
- Unattended loop: self-play, train, regression guard, graded tests
- Pre-registered evaluations on identical deals, pass or fail as written
Python · PyTorch · CUDA · C++ · RunPod
A mail client that brings Gmail, Outlook and plain IMAP accounts into a single workspace. Rules, categories, reminders and drafts work the same across every provider, and the app keeps working offline, replaying what you did once the connection is back.
- Gmail, Microsoft Graph and IMAP/SMTP behind one interface
- Provider credentials held in an encrypted vault
- Offline edits journaled and replayed on reconnect
TypeScript · React · FastAPI · Postgres · IMAP/SMTP
A tray-resident desktop app that attaches to a real Chrome session. Browse by hand while it records, share the wheel with an AI, or hand it a goal and let it work alone. Whatever it learns is saved as a playbook: a reusable, parameterized script that can run on a schedule and repair itself when a site changes.
- Chrome DevTools Protocol against a real browser profile
- Playbooks with parameters, schedules and run history
- Failed runs are handed back to the model and patched in place
Electron · Node · CDP · Playwright · Claude
A self-hosted reader in the spirit of a trading terminal. It pulls articles from the major U.S. outlets, stores the full text, and presents it in a layout built for scanning quickly. No ads, no tabs, no leaving the app.
- Async ingestion across a configurable source list
- Full-text storage and search in Postgres
- Runs on a single always-on box
FastAPI · Postgres · httpx · React · TypeScript
About
I build the whole thing: the interface, the API behind it, the model in the middle and the infrastructure underneath.
Most of what is on this page started as something I wanted for myself. A scanner for a box of cards. A calmer way to read the news. One chart for everything I own. I ship them as real products, with real users, payments and uptime.
Lately much of the work is agentic: building with coding agents, and building the tooling that lets them scaffold, deploy and operate software with as little hand-holding as possible.
Toolkit
- Interface
- TypeScript · React · Next.js · Vite · Tailwind
- Systems
- Python · FastAPI · Postgres · WebSockets · Node
- Models
- PyTorch · ONNX Runtime · WebGPU · LLM agents
- Desktop
- Electron · Chrome DevTools Protocol
- Infrastructure
- Render · Vercel · Cloudflare · Hetzner · RunPod · Docker
Contact
If you are building something and think I could help, or want to talk about anything here, write to me.
hello@stevenmcgee.com