Working with Claude Code
From one loop to a verified graph: graph engineering in Claude Code, read through EIP
I grew a resilience audit from a single agent into a scatter-gather graph with typed edges, an adversarial verification gate and injected failures. Recall barely moved; trust did.
12 Oct 2026
·
11 min read
·159 views
Working with Claude Code
Write for readers that can't ask back: Simplified Technical English for agents
Aircraft maintenance manuals solved the problem of readers who can't ask what you meant. I took ASD-STE100's rules and applied them to tool descriptions, error messages and prompts for AI agents.
12 Oct 2026
·
5 min read
·205 views
Working with Claude Code
How Claude Code mods work: building a live pane that shows every request to the model
A walkthrough of harness-stats, a Claude Code mod that shows cost, context, cache and every model request live. It covers the ($, e, next) hook chain, turn.step streaming, $.state and testing.
10 Oct 2026
·
6 min read
·136 views
Cats Core
·
Part 6
Cats Core, Part 6: NonEmptyChain or NonEmptyList for Validation Errors
What the Nec in ValidatedNec guarantees, why errors.toList failed to compile in my Play controller, and when NonEmptyList is the better container.
10 Oct 2026
·
6 min read
·64 views
Cats Core
·
Part 5
Cats Core, Part 5: Combining Optional Amounts with Apply and Applicative
A price and a delivery cost are both optional, and nested map gives me Some(Some(15)). Apply combines independent values into one result, and Applicative adds the starting value a whole cart needs.
10 Oct 2026
·
6 min read
·72 views
Scala and the JVM
·
Part 18
Spring Boot to Scala and Play on a live site, without losing an email
I replaced this site's Spring Boot backend with Scala 2.13, Play 3, Anorm and Twirl in one pull request. The rewrite was the easy part: this is how I fixed the contracts, kept the outbox wire format, and rehearsed the rollback on a restored production backup.
9 Oct 2026
·
6 min read
·102 views
Security and privacy, in practice
Hiding the Keycloak admin console from the internet with an SSH tunnel
For a month my Keycloak admin console was one HTTPS request from anyone. How I closed it at the Traefik edge, opened a loopback-only door over SSH, and the details that decide whether the tunnel works or locks you out.
9 Oct 2026
·
6 min read
·93 views
Cats Core
·
Part 4
Cats Core, Part 4: Teaching Cats to Map Our Own Types
List and Option already know how to map. I give my own Quote a Functor instance, reuse the same discount function, and trace why identity and composition matter.
8 Oct 2026
·
6 min read
·70 views
Working with Codex / ChatGPT
From Chat to Dinner Planner: Testing ChatGPT Visualizations
I tried the Visualizations preview with a dinner request, then changed the guest count, dietary split, and budget to see what really updated. The result was useful precisely because its assumptions were visible.
8 Oct 2026
·
4 min read
·115 views
Cats Core
·
Part 3
Cats Core, Part 3: From Empty Batches to Checkout Totals
I knew how to combine two error reports. Monoid gives an empty batch a useful result, and foldMap takes the same idea to a shopping cart: turn each line into a contribution, then combine the totals.
8 Oct 2026
·
6 min read
·78 views