Skip to content
Projects

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.

0 bytes2026

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.

RustAxumPII redactionBudget enforcement
Read case study
49 tests2026

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.

RustMCPPolicy isolationPath containment
Read case study
8 strategies2026

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.

RustAdversarial testingMCPState diffing
Read case study
4 gates2026

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.

PythonControl planeHuman-in-the-loopBudget posture
Read case study
2 repos2026

Stratum & Docket — an agentic data lake with a human in the loop

Extraction that refuses to truncate, and a review tool that never rewrites history. Two repositories, one JSONL contract, no shared dependency.

RustData pipelineHuman-in-the-loopJSONL
Read case study
Morley2026

Cymatics Engine — a Chladni-plate eigenvalue solver as a service

Free-boundary plate vibration modes from a biharmonic eigenvalue problem, verified against published analytical references, served over FastAPI.

PythonFinite elementsscikit-femNumerical methods
Read case study
≈ £02026

This site — a self-hosted portfolio with a real pipeline

Next.js, GSAP and Motion, built accessibility-first and deployed on the same Coolify box as everything else.

Next.jsTypeScriptGSAPCoolify
Read case study