Things I've designed and shipped.
Each write-up focuses on the reasoning — the problem, the architecture, what was actually measured, and what the thing honestly is not.
Agent Egress Proxy — a fail-closed perimeter for outbound AI traffic
Every request an agent sends to a model vendor is redacted, metered and logged before a single byte leaves the machine.
Grit — a policy gateway for MCP tool calls
A tool with no declared policy is denied, never defaulted. Every path is resolved before it is checked. Anything that may write is snapshotted first.
ADLC — adversarial verification judged by the filesystem, not the agent
Generate hostile variants of a tool call, snapshot before and after, and judge the diff against a declared expectation. Never read what the tool said happened.
PreviewProof: see your link the way the internet sees it
Paste a URL and see the Google, X, LinkedIn, Slack and WhatsApp previews it really produces, fetched the way the bots do, with a fix for each problem.
Agent OS — the control plane that decides whether an agent may act
Not an agent. The thing that decides whether one may act, which runtime runs it, what it may spend, and when it must stop and ask a human.
News Brief
My own rebuild of Google's spoken news briefing: short bulletins I choose, stitched on Google Cloud into one brief that skips what I've already played.
This site — a self-hosted portfolio with a real pipeline
Next.js, GSAP, a WebGL aurora and route changes that never wait on an animation — built accessibility-first and deployed on the same Coolify box as everything else.
Also building
Smaller tools, mostly built for my own work with Claude Code and other agentic coding assistants. No case studies below — just what each one is, and where the code lives when the source is public.
CI Runner Router
When GitHub's free Actions minutes run out, private CI jobs move to single-use runners on Google Cloud Build's free tier, under a cap counted per second. It is designed to fall through to the next provider that still has free minutes as more are added, keeping jobs that hold secrets on Google's or GitHub's machines. In use since October.
MCP Front Door
An owner-only OAuth front door on Cloudflare Workers that connects my own MCP servers to Claude as custom connectors, with per-server signed tokens and passkey approval for the most destructive actions, such as deleting a project or writing to my Oracle Cloud account.
Hosted MCP Products (in development)
Not launched yet. A metering and billing layer for hosted MCP servers on Cloudflare Workers, tested end to end against stubs, and a TypeScript port of an MCP-server readiness scanner (46 checks, tested against the Python original).
Design System (in development)
OKLCH design tokens in the W3C DTCG format with automated WCAG 2.2 contrast checks, and React components on Base UI whose Storybook stories pass axe in five display modes, including high contrast and forced colours. Not yet released.
Codebase-Intelligence MCP Server
Hybrid retrieval for Claude Code: keyword search fused with vector similarity via Reciprocal Rank Fusion, reindexed incrementally from the git history.
Semantic Code-Search MCP Server
Extended an open-source Rust MCP server with the resources, prompts, progress and cancellation surfaces it was missing — roughly doubling the codebase.
Jank-Detection MCP Server
Watches web animations like a human tester and flags jank, stuttering and visual artefacts using AI vision.
MCP Orchestration & Tooling
An orchestration platform for running multiple MCP servers together, plus a persistent Java language-server daemon that gives Claude Code instant reconnects instead of a cold restart per session.
OpenAI-Compatible API Proxy
Adapts the Augment Code SDK behind an OpenAI-compatible API, containerised and deployed.