Portfolio
Selected projects
Ideas brought to life. Personal, client, and network details are omitted.
Pencils Down
In development pencilsdown.dev
A product that turns a code repository into a plain-language owner's manual for people who built an app with AI and can't fully explain it.
- Fixed manual format adapted from equipment technical manuals: operator tasks, troubleshooting, maintenance, parts. Every claim has to trace to a file.
- Before building, I tested an existing repo-to-docs tool. It was fast and wrote plenty. It also invented security features, cited files that don't exist, and cut a chapter off mid-sentence. That's why the format is evidence-first.
- Built the full waitlist: Cloudflare Worker deployed from GitHub, confirmation email through Resend, sign-ups stored in a Google Sheet via Apps Script, one-click removal.
- Proof of concept is in testing. No public users yet.
Built with: Lovable, Cloudflare Workers, Resend, Google Apps Script, local and hosted LLMs.
AI-assisted system administration
In use in my lab
I run my lab the way I ran teams: the AI does the legwork, I stay at the controls, and every change is planned, checked, and written up.
- I led a 30+ person organization for years. Directing an AI uses the same muscles: a clear task, scoped access, a written plan, and review before anything goes live. It's a fast, capable worker. I still sign off.
- The AI investigates the system and drafts the runbook. Changes go in stages.
- Split by reversibility: the AI can make changes that live in Git and can be rolled back. Anything that touches a running system, I execute myself.
- Every significant effort ends with an after-action review: what was planned, what happened, what to do differently.
Built with: Claude Code, Hermes, Git, written runbooks.
Scout: market research and client identification
Working, used on my own prospecting
A research agent that finds and qualifies potential clients from public sources, then hands me a sourced shortlist to review.
- Given a type of business and an area, it searches, reads, and returns candidates with the source for each claim. I review everything.
- It has already produced a shortlist I'm working from.
- Security boundary: Scout never touches the internet directly. It goes through a gateway I built that holds the search API key, caps searches and spending per task, blocks requests to internal addresses, has a kill switch, and fails loudly instead of quietly switching providers.
Built with: Hermes agent framework, a local model on my own GPU, Tavily search through the gateway, Python, SQLite.
GLabs homelab
Running
The self-hosted platform everything else runs on, built and operated by me.
- Proxmox host with virtual machines and a Docker application host running automation (n8n), databases (PostgreSQL with pgvector, Qdrant), document processing (Paperless with a local model), and monitoring (Prometheus, Grafana, Uptime Kuma).
- Local models on my own GPU. I benchmarked candidates and picked one with roughly 14x the throughput of the runner-up. Prompts and data never leave my network.
- Encrypted 3-2-1 backups with pull-only, locked-down access, verified by a bare-metal disaster recovery drill, plus an audit script that flags data not covered by backups.
- Found and reported a bug upstream in the open-source agent framework I run.
Built with: Proxmox, Docker, Ubuntu, Ollama, Cloudflare Tunnel and Access, Git.