Self-hosted cluster across mini PCs and Dell PowerEdge servers
At a glance
Mixed RAIDZ2 pool on TrueNAS, plus a fast NVMe tier
Co-authored production observability strategy for Vault at scale
Trading systems, multiplayer game, homelab platform, AI tooling
Migrated off GitHub, building behind my own infrastructure
MultiStrat composite scoring engine inside Inspector Gadget
Writing
HashiCorp Vault observability: Monitoring Vault at scale
A production-grade playbook for monitoring HashiCorp Vault: log analysis, telemetry, API and synthetic monitoring, and how to combine them into a coherent strategy. Written for platform teams running Vault as a shared service, with real guidance on baselines, alert thresholds, and the questions a mature Vault deployment should be able to answer.
Recent Projects
CritScalp
Active buildLatency-aware options scalper, written in Go, runs in a TUI
Day-trading bot for 0 to 3 DTE options on the Alpaca platform. EMA crossover entries on 1-minute candles, local Black-Scholes Greeks via Newton-Raphson IV solving, multi-instance coordination through a shared SQLite WAL, hard circuit breakers on daily P&L and consecutive losses, and a bubbletea TUI because staring at terminals is more fun than staring at browser tabs. Slack notifications when the math gets interesting.
Inspector Gadget Strategy
Active buildComposite-signal options system with 30+ pluggable strategies
Where CritScalp scalps, this one swings. A MultiStrat catalogue of 30+ strategies feeds a single composite score from -1.0 to +1.0, gated by EMA crossover confirmation. Decide on candles, execute on ticks. Targets 30 to 45 DTE contracts with delta in the 0.55 to 0.65 zone, sized at 2% account equity per trade.
ShellGrind
LiveBrowser-based multiplayer tank combat, inspired by classic Mac Bolo
Top-down tank warfare in the browser. PixiJS v8 on the client, Go on the server, MessagePack over WebSockets, SAT collision detection. The fun part: I wired in a multi-agent Claude Code review workflow with five distinct reviewer personas critiquing every PR before merge, because if you're shipping multiplayer netcode you might as well make the AI yell at you first.
Pondside Datacenter
Always onProduction-grade infrastructure for an audience of one
A seven-node Nomad cluster running on GEEKOM mini PCs and Dell PowerEdge servers, fronted by Traefik, secured with Vault using JWT workload identity, discovered through Consul, balanced by HAProxy and Keepalived. TrueNAS-backed storage with roughly 72 TiB usable on the spinning rust pool plus a fast NVMe tier. Yes, my home network has SLAs. No, I will not apologize for it.
Pondside Power Backup
Mid-buildWhen 'high availability' starts including the power company
5000W inverter/charger paired with 48V LiFePO4 rack batteries to keep the homelab fed when the grid blinks. Class T fusing, 2 AWG runs, BMS data flowing through RS485 into Prometheus and Grafana, because if it isn't graphed, it didn't happen. Solar-ready when the panels arrive.
claude-task-queue
ShippedSelf-hosted Go task queue for AI coding agents
Replaced a duct-taped Google Sheets workflow with an actual REST API: Chi router, embedded pure-Go SQLite, atomic claim semantics, bearer token auth, vanilla JS frontend, and a one-agent-per-app concurrency model. Deployed through Gitea Actions to my private container registry, then onto Nomad with Vault-managed secrets. Because Claude Code agents deserve better than spreadsheet polling.
homelab-mcp
ShippedA conversational front door to the homelab
Go-based MCP server and chat interface that lets non-technical family members deploy Minecraft modpacks by literally just asking. Discovers modpacks across CurseForge, Modrinth, and FTB; orchestrates Nomad job templates; manages Cloudflare DNS; persists worlds on TrueNAS NFS. Eight gateway services, UUID bearer tokens, zero IT support tickets from the family.
Homelab Observability Stack
Active buildOne year of metrics, logs, and traces, on my own iron
VictoriaMetrics for long-term metrics on NFS, Prometheus as a short-window scrape buffer doing remote_write, MinIO-backed Loki for logs (object storage beats NFS for log workloads, every time), and Grafana Alloy as the unified collector. Shelly Gen 4 smart plugs feed power telemetry into the same pipeline. One-year retention target. Thanos and Cortex were considered and politely declined.
Interests
Go as a default
Boring on purpose, fast where it counts, the binary always ships, and the standard library does most of what you actually need. Pick a language for the next decade, not the next thread.
Self-hosted everything
I run my own git, container registry, DNS filtering, identity, observability, and AI inference. Cloud bills make terrible souvenirs. Sovereignty over your tooling compounds in the same way debt does, just in the right direction.
The HashiCorp stack
Nomad, Vault, Consul. Kubernetes is great if you have a Kubernetes-shaped problem. Most people don't, and Nomad gives you 90% of the wins with 10% of the operational tax.
AI infrastructure and agentic systems
Local LLMs on consumer hardware, MCP servers in front of every system I run, and strong opinions about where agentic tooling lands in the next 24 months. Spoiler: most of the value will be in the boring plumbing, not the chat UIs.
Quantitative finance, applied
EMAs, Greeks, walk-forward analysis, deflated Sharpe, Monte Carlo. Less 'get rich quick,' more 'watch the math work and respect when it doesn't.'
Long-game life design
Index-fund discipline, deliberate skill stacking, and a written plan for an EU-based second act. The spreadsheet reconciles, the passport math works, the language lessons started yesterday.
SRE as a worldview
Error budgets, blameless postmortems, and the conviction that most outages are systems telling you the truth about decisions you made six months ago. The discipline transfers to almost everything else worth doing.
Hobbies
Dungeons & Dragons
Player and DM, currently running an Aasimar Cleric and a Bard while occasionally subjecting friends to homebrew encounters from the other side of the screen. Best therapy I've found that doesn't involve a copay.
Live-fire cooking
Pellet smoker, slow cooker, Instant Pot, in roughly that order of patience required. A 14-hour brisket teaches you something a pressure cooker never will, and vice versa.
ATV riding and wrenching
2007 Yamaha Raptor 700, maintained in my own garage. Utah has the kind of trails that make you grateful for both a strong engine and a healthy spine.
Path of Exile
Currently running CI Spark with CoC Comet. The build-complexity-to-reward ratio scratches the same itch as infrastructure design, with fewer pager alerts.
Electronic music
Dark techno, bass house, tech house. The soundtrack to most of the projects above and the reason my home office occasionally doubles as a small club.
Traveling well
Delta Platinum Medallion. Recent trips through Morocco, California redwoods queued up, Spain on the long horizon. The miles are a hobby; the language lessons are an investment.
Two terrible coworkers
An Aussiedoodle and a Maltipoo who report directly to me and respect exactly none of my uptime guarantees.