Working with Claude Code
82 agents, one bug: running Claude's security scanner on my own code
I pointed the new claude-security plugin at this very site. It spawned 82 agents, proposed 10 vulnerabilities, and then argued itself out of 9 of them. The one that survived was real — and it shipped to prod the same afternoon.
24 Jul 2026
·
6 min read
·194 views
Building this site in public
BuildCV: I shipped a free CV builder — no account, no paywall, no server-side data
I got annoyed at 'free' CV builders that paywall the download button, so I built one that is actually free: a guided wizard with a live A4 preview, French and English, and a PDF that never touches my server. Here is the product thinking, the architecture, and the near-outage a code review caught.
21 Jul 2026
·
6 min read
·157 views
Traces, Tempo and the LGTM stack
Metering the agent fleet: cost & metrics for Claude Code subagents
If you distribute a Claude Code agent to a marketplace, every developer who runs it spends your reasoning budget and yours to answer for. Here is how I wired Claude Code's built-in OpenTelemetry into a Grafana/LGTM stack to watch cost, tokens and tool decisions — per run.
19 Jul 2026
·
12 min read
·233 views
Security and privacy, in practice
The most honest cookie banner sets no cookies
I added a privacy notice to my site and refused to make it a cookie banner — because the only cookie I set is a functional one. Here's the reasoning, and why the dismiss flag lives in localStorage, not a cookie.
16 Jul 2026
·
5 min read
·166 views
Learning MongoDB
·
Part 2
MongoDB, Part 2: The Aggregation Pipeline, Stage by Stage
Part 2 of my MongoDB learning series: how the aggregation pipeline reshapes documents stage by stage — $unwind, $group, $lookup — plus the type-mismatch bug that silently joins nothing and why stage order is a cost decision.
15 Jul 2026
·
5 min read
·113 views
Learning MongoDB
·
Part 1
Learning MongoDB, one document at a time
Part one of a series: a Spring Boot 4 playground, the embed-vs-reference call that replaces schema normalization, and the Decimal128 default that would have quietly corrupted every price I stored.
15 Jul 2026
·
6 min read
·126 views
Shipping an AI feature into my own product
·
Part 3
Adding a job description match to my AI Concierge
I added job-description matching to the AI concierge on my career site. It shipped with no new bean, no new table, and no migration — because the leverage was in a seam I'd already built. A design note on shared streaming cores, streamable structured output, and treating a pasted JD as hostile.
13 Jul 2026
·
11 min read
·118 views
Building this site in public
I dropped an AliBaba's AI agent into my own website
A 5 minute experiment: wiring Alibaba's page-agent into my career site and pointing it at DeepSeek, so the whole UI takes orders in plain English. How it works under the hood, what its reasoning traces actually look like, and why I kept it strictly local.
9 Jul 2026
·
5 min read
·165 views
Running the box: Docker, Linux, the JVM
Where does app.jar find its dependencies? The JVM rule hiding in your Dockerfile
Spring Boot's layered jar extraction splits your dependencies from your code for faster Docker rebuilds. But the mechanism that makes the pieces find each other at runtime isn't Spring at all — it's a JVM rule from 1998.
8 Jul 2026
·
5 min read
·148 views
Security and privacy, in practice
Four security headers, and the CSP I deferred on purpose
The cheapest security win on a single-container stack lives at the reverse proxy. Here's the four-header Traefik middleware I shipped, the two things I deliberately held back, and the report-only CSP rollout I'm lining up next.
8 Jul 2026
·
6 min read
·128 views