Working with Claude Code
OKF: How to Wire Durable Knowledge Into an AI-Assisted Project
Open Knowledge Format (OKF) is a dead-simple convention for storing durable, executable knowledge alongside your code — no database, no network, just markdown files your AI agent can read and act on.
28 Jun 2026
·
6 min read
·318 views
The Model Context Protocol, hands on
Field notes: running my Fastmail inbox over MCP
Field notes from wiring Fastmail's MCP server into an AI client and pointing it at my real inbox — the search syntax worth memorising, plus the two gotchas (deferred schemas, and stage-vs-commit on calendar events) that cost me a few minutes.
25 Jun 2026
·
5 min read
·146 views
Traces, Tempo and the LGTM stack
An intro to TraceQL: how to actually query traces in Grafana Tempo
TraceQL has a tiny surface area but a few sharp edges. Here is the mental model — span scopes, the spanset, aggregates, and structural operators — that makes it click and stops the silent zero-result queries.
24 Jun 2026
·
6 min read
·675 views
Traces, Tempo and the LGTM stack
Manual tracing in Spring Boot with OpenTelemetry: @WithSpan, hand-built spans, and the traps in between
Wiring OpenTelemetry into Spring Boot 4 — the annotation way and the manual Tracer way — plus the context model that ties them together and the gotchas that cost me time (a silent @WithSpan, http/protobuf vs gRPC, and Docker's 'is a directory').
23 Jun 2026
·
6 min read
·545 views
Security and privacy, in practice
Docker secrets: the delivery channel is the whole game
Five ways to hand a secret to a Docker container, ranked by who can read it back out. The source is just plumbing - environment variable vs file is what actually decides your exposure.
20 Jun 2026
·
5 min read
·145 views
Working with Claude Code
I Turned My Website Into a Design System for Claude
I love how my site looks, so I taught Claude to build with it — extracting a live React app into a real design system on claude.ai/design, verified component by component.
19 Jun 2026
·
7 min read
·168 views
Building this site in public
Verifying a domain in Google Search Console — the DNS TXT gotcha
A Domain property covers your apex and every subdomain from a single DNS TXT record — if you place it right. Here is the split-field mistake that fails the first verify, and the one command that catches it before you click.
17 Jun 2026
·
4 min read
·598 views
Spring and Java mechanics
Spring MVC Won't Throw ConstraintViolationException (Here's What It Throws Instead)
Three validation mechanisms wear one annotation vocabulary in Spring MVC. Only one hands you a ConstraintViolationException — the rest give you Spring's own web exceptions. Here's the map, with live proof.
14 Jun 2026
·
5 min read
·270 views
Building this site in public
llms.txt: robots.txt for the age of AI agents
AI agents are a new kind of reader, and they don't want your rendered HTML. llms.txt is a tiny Markdown convention that hands them a clean index instead. Here's what it is, why it matters now, and how I wired it into my own Spring Boot site, with one URL path serving two different files by host.
14 Jun 2026
·
5 min read
·162 views
Building this site in public
One Spring Boot jar, two hosts: a gated SPA and a public blog
How I added a public, server-rendered blog to a login-gated CV site without a second app or container — one jar, two hostnames, and a host-dispatch filter.
14 Jun 2026
·
3 min read
·143 views