about

Engineer. Builder. Systems + AI.

I work full-stack on onchain products at Polygon, focused on shipping systems that improve speed and confidence through testing, reliability, and clear docs. Outside work, I build practical AI tools, agent workflows, and small products that force real feedback.

last updated: 2026-06-29

// Direction

north star

Build systems that help people move faster with confidence.

at work

make complex systems reliable, testable, and operable.

outside work

keep refining practical AI and agent orchestration through fast iteration and shipping.

// Current loop

Current loop: bigger scope at work, sharper public tooling outside work, and more writing about what survives contact with real use.

proof lives in /projects

Polygon

moving into Open Money Stack while still supporting core application work when needed. Same priorities as ever: reliability, testing, docs, and operability.

CLI tools

tfl-cli, companies-house-cli, rail-cli, fuel-cli, and parliament-cli — a growing suite. I am tightening the agent-first pass across all of them: predictable output, cleaner JSON, better landing pages, and better surrounding skills.

Writing

turning the agent, tooling, and product lessons into short practical notes instead of leaving them buried in logs and private chats.

// How I work

  • Public by default. If it can help others and is not sensitive, it should be in-channel, not buried in DMs.
  • Direct and clear. Cut fluff, get to the ask, and respect people's time.
  • Async first for documentation and reuse. Sync when collaboration genuinely benefits.
  • Meetings need value. I should be giving value or getting value I cannot get from notes, transcripts, or recordings.
  • Feedback should be direct and honest: understand the why, then help unblock.
  • Priorities: ownership and speed.

// Open questions / asks

  • If you are building practical agent systems, onchain products, or useful developer tools, email me or say hello on X.
  • Especially interested in comparing messy implementation notes on CLI/TUI tools, operator workflows, reliability, and product surfaces that have to work in real life.

// Stack I actually use

The stack changes, but the bias is stable: fast local loops, durable context, cheap routing, and enough observability to know when the agents are bullshitting.

AI + model stack

Coding
OpenAI Codex 5.5 as the main heavy-lift coding model
Planning/review
Claude Sonnet/Opus when I want a second opinion or sharper critique
Provider routing
Hermes routing across OpenAI, Claude, Gemini, OpenRouter, and local-ish tools where useful

Agent operating system

Harness
Hermes Agent. OpenClaw did the first messy tour of duty; Hermes is the current system.
Assistant shape
Giles as the main operator, with thinner specialist profiles only when they earn their keep. No swarm theatre for the sake of it.
Memory
Hermes memories for durable facts, session search for recall, and markdown ledgers for curated context that should survive model churn.
Skills
Reusable Hermes skills for coding, research, Gmail, UK public-data CLIs, tracking, meal planning, writing, and project workflows.

Agent observability + tools

Hermes Console
Read-only local UI for Hermes runtime health, sessions, cron, skills, memory, files, config, logs, and usage. Built because digging through five places gets old fast.
llm-usage
Small CLI for tracking token usage across Claude Code, Codex, and OpenRouter. Boring visibility, extremely useful.
Local CLIs
gog for Google Workspace, bird for read-only X/Twitter, plus UK-data CLIs for TfL, rail, Companies House, Parliament, and similar agent-friendly lookups.

Dev environment

Editor/IDE
VS Code, with terminal-native agents doing a lot of the heavy lifting now
Terminal
Ghostty on macOS, Kitty on Linux
Notes
Markdown files in git + wiki for durable knowledge; Notesnook for personal notes

// Not now

  • Dragging weak projects along just because time is already sunk. If the signal is bad, I would rather cut scope and move on.
  • Building dashboards or automation that look clever but do not change behaviour.
  • Trying to keep every work, builder, and personal lane equally hot at the same time.