Recent work

Systems I have designed, built and run in production, including the site you're on. Where the source code is public, it's linked, so you can evaluate the work before we speak.

This website

The site you're on: a small-business site built the same way as the ones I deliver to clients.

Challenge
A one-person consultancy needs to explain its services, take free and paid bookings and receive messages, without a monthly website-builder bill or cookie banners.
Solution
A static, mobile-first site on its own domain, with Calendly for free consultations, Square Appointments for paid sessions with a deposit, and a contact form that saves every message before emailing it.
Result
Scores 95+ on Lighthouse performance, accessibility and SEO, a check that runs on every change. No cookies, no trackers, and it runs on hardware I control.

AstroTypeScriptNode.jsCalendlySquare

InsiderTrack

A data platform that scores stock trades by Congress members, corporate insiders and funds.

Challenge
Congressional, insider (SEC Form 4) and institutional (13F) trade disclosures are public, but scattered across sources and formats — with no way to tell which signals have actually worked.
Solution
A platform that ingests all three sources, scores each stock by who is buying, and weights each trader by how their past purchases performed against the S&P 500.
Result
Runs in production with nightly encrypted backups and monitoring. Every score is recorded, so its accuracy at 30, 60 and 90 days is measured rather than claimed.

PythonFastAPIPostgreSQLReactDocker

Visit the live site for InsiderTrack →View the source code for InsiderTrack →

Self-hosted server and network

One small server that runs several public web apps securely, with no open ports.

Challenge
Publishing several apps on a custom domain from a home-office network usually means opening firewall ports or paying for cloud hosting.
Solution
A Mac mini running each app in Docker, published through Cloudflare Tunnel and Tailscale so the network accepts no inbound connections. Prometheus and Grafana track CPU, memory and response time for every app and public site, and an outside uptime monitor emails an alert if any app or this site goes down. Business email is routed through Cloudflare.
Result
This site, InsiderTrack and AI Lecture Notes all run from it. Every app starts with one script, each app's data is backed up nightly with encryption to off-site storage, and a daily check catches a backup that has quietly stopped running.

DockerCloudflare TunnelTailscalePrometheusGrafana

View the source code for Self-hosted server and network →

Staging environment and tested backups

A test copy of the live apps, rebuilt from real backups, so changes and restores are proven before they matter.

Challenge
A backup that has never been restored is a guess, and a change that goes straight to a live app gets tested by its users.
Solution
A Kubernetes staging environment managed with Argo CD. Each app's copy is restored from the previous night's encrypted backup, with live credentials removed. Every change merged on GitHub deploys there automatically, and a weekly job restores both apps again and checks them. Production changes only by hand.
Result
Full restores of both apps were verified in September 2026, covering 200+ lectures and nearly 20,000 trades. Staging also found that every backup relied on a Google Drive access setting being retired this year. It's paused while it waits for dedicated hardware, because sharing one machine with production left too little CPU headroom. Production was never affected.

Kubernetes (k3s)Argo CDHelmGitHub ActionsSealed Secrets

View the source code for Staging environment and tested backups →

InsiderTrack AI integration

Lets Claude and other AI assistants query InsiderTrack in plain English.

Challenge
Cross-cutting questions — are insiders and Congress members buying the same stock, and how good is that member's record? — meant clicking through several pages.
Solution
A Model Context Protocol server that gives AI assistants safe access to the platform: read-only by design, token-gated, rate-limited and audit-logged.
Result
Questions that took several screens are answered in a single request, with no way for the assistant to change data.

PythonMCPDocker

View the source code for InsiderTrack AI integration →

AI Lecture Notes

Live transcription and structured notes for university lectures.

Challenge
Keeping complete, accurate notes while following a fast-paced graduate lecture.
Solution
A web app that records from any browser, transcribes live, writes structured notes during class and answers questions afterwards from the transcript, notes and slides.
Result
In daily use for a graduate course since March 2026. Exports to PDF, Word, Markdown or the user's own Google Drive.

PythonWhisperPostgreSQLReactDocker

View the source code for AI Lecture Notes →

Book a free consultation