Open to senior full-stack & AI engineering roles
Building intelligent systems. Containing the agents that run them.
Thirteen years shipping production software, most recently as web tech lead at Adthena. Now designing infrastructure that keeps autonomous agents contained, verified and affordable.

Over six years at Adthena.
Latterly tech lead on the web team of an AI search-intelligence company: 0-to-1 product, identity, platform and AI tooling.
AIO Signals
Lead web engineer from discovery to GA on a 0-to-1 tab of the AI Overview Dashboard, winner at the European and Global Search Awards 2026.
Agent-ready rebuild
Contributed to the foundation of an agent-ready rebuild: one monorepo for the frontend, backend and services, so engineers and coding agents work with the whole system in one place.
Enterprise SSO
Built OIDC and SAML single sign-on end to end, then owned the rollout with customer success.
AI tooling
Took AI code review from a hackday demo, through a multi-week team trial, to the standard across engineering, and built the Claude Code tooling the web team used on incidents.
Systems, not demos.
Three pieces of the same argument: an autonomous agent should be contained by structure, not by instruction — and the containment should be something you can check from outside the agent.
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.
An autonomous agent, contained.
Five stages for one agent action: four separately built and tested components, then the record they keep. They are not one wired pipeline yet.
- 01
Gate
Agent OS decides whether this agent may act at all — on this target, with this budget, right now. Spend, external communications, production changes and anything with legal consequence always stop for a human.
- 02
Contain
Grit checks the tool call against a declared policy. Undeclared tools are denied, every path is resolved before it is compared, and anything that may write is snapshotted first.
- 03
Egress
The egress proxy redacts PII, meters cost, and only then forwards — so nothing unredacted is ever measured, logged or sent. A vendor outage becomes a fast refusal, not a hang.
- 04
Verify
ADLC judges what actually changed on disk against what was declared. It never reads the tool's output or the agent's account of itself — the filesystem is the witness.
- 05
Audit
Every decision lands as structured, append-only records — what was refused, what was redacted, what it cost — built to be queried, not merely tailed.
Let's build something
Building something people have to rely on?
I'm open to senior full-stack & ai engineering roles. If you're hiring or collaborating, I'd love to hear about it.