Now
updated 2026-05-26Trying to be a better softball coach, and a better father to my two daughters, than I was yesterday.
Figuring out what stays on the priority list and what gets to fall off. Some days, barely keeping it together.
Sad about the German exchange student we’ve hosted all year heading home in a few weeks.
And in the late-night hours where I’m fighting to stay awake — applying agentic AI coding tools to the work. They take the tedium out of writing code, which is helping me find my passion for creating things again.
Reading Now
- Dungeon Crawler Carl (series) · Matt Dinniman
Watching Now
- Star Wars: Maul – Shadow Lord
Eating Now
- Self-Made Charcuterie
Drinking Now
- Chianti Classico tasting at Porto Vino · Porto Vino
Projects
-
Foundation Design Suite
activeThe civil-engineering software I lead at Dimensional Solutions, Inc. — Foundation3D, Mat3D, and Shaft3D — a desktop product suite used in production by engineers to design code-compliant foundations, back-calculate loads on existing structures, and track project materials. Currently piloting its evolution to a three-tier server architecture.
C# · .NET 8 · WPF · MVVM · Prism · SQL Server · Azure DevOps
-
Riftward
activeA browser-based 2D top-down pixel-art space game in the buy-to-play multiplayer sandbox category (Valheim / Factorio / V Rising shape). Authoritative Node.js server, WebSocket realtime, one seeded procgen galaxy per server. Currently in alpha playtest.
TypeScript · Node 22 · Vite · Canvas 2D · WebSockets · zod · SQLite · Fly.io · Cloudflare Pages · Vitest · Biome · GitHub Actions
-
Provenance Map
activeAn interactive graph visualization mapping relationships between chefs, restaurants, winemakers, and wineries — type a name, see a force-directed graph of mentors, alumni, sister labels, similar styles. Click any node to recenter on that entity. Alpha, Houston-chef-scene seed dataset.
TypeScript · Next.js 16 · React 19 · React Flow · Tailwind 4 · zod · Cloudflare Workers (OpenNext) · Cloudflare R2 · Anthropic API · Vitest · ESLint
-
Ranks Texas retail electricity plans by projected annual cost using your actual smart-meter usage, not the generic 500 / 1000 / 2000 kWh benchmarks PowerToChoose advertises. Pulls plan listings and per-REP Electricity Facts Labels, applies each plan's pricing structure to your real consumption. Engine and UI in progress.
Python 3.12 · uv · FastAPI · Jinja2 · HTMX · SQLModel · Alembic · Postgres 17 · Cloudflare R2 · pdfplumber · uPlot · Docker on Synology · Cloudflare Tunnel · pytest · ruff · pyright · GitHub Actions
-
Softball Lineup Sim
activeMonte Carlo lineup simulator for 8U coach-pitch softball — feed it season and two-game batting stats, get a ranking of lineup orders by expected runs over N simulated games. Pseudo-AB shrinkage toward team mean so a 4-for-6 weekend doesn't dominate the projection.
Python · stdlib only · Monte Carlo · argparse CLI
-
Cruise Price Tracker
activeNightly tracker for Royal Caribbean and Celebrity casino-club offers and sailing prices. Reads the cruise lines' own JSON and GraphQL endpoints rather than scraping the DOM, keeps every observation in Postgres, and emails each user one digest per run when a watched sailing moves. Invite-gated alpha.
Node 22 · Express · Postgres 17 · Playwright · Resend · Docker Compose on Synology · Cloudflare Tunnel · node --test
-
Price Watch
activeScheduled price collector for things I want to buy, flights included. Tiered fetchers step up from plain HTTP to a headed Chromium session for retailers that refuse headless browsers, every reading lands in Postgres, and an alert fires when a rule becomes true. Deploys itself from main every five minutes.
Node 24 · Postgres 17 · Playwright · Xvfb · Cloudflare Access · Resend · ntfy · Docker Compose on Synology · node --test
See the CV for work history.