Building agents on the JVM with Embabel
·
Part 9
The second run is cheaper: what an Embabel Context actually buys you
Ask the same question twice in one session and the planner drops a step. Not a cache — a consequence of A* refusing to schedule an action whose output is already on the blackboard, for better and for worse.
31 Jul 2026
·
6 min read
·92 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
·156 views
Spring and Java mechanics
Aggregate Roots in Spring Data JDBC: The Delete-Boundary Rule
Spring Data JDBC takes DDD aggregates literally. Here's a one-question rule for drawing aggregate boundaries — and how to avoid N+1 once you have them, verified against the real generated SQL.
5 Jul 2026
·
6 min read
·162 views
The Model Context Protocol, hands on
Building an MCP Tool with Spring Boot AI
How I turned Apache Kafka into a set of tools an AI client can call — using Spring AI's MCP server, a handful of @Tool methods, and one ugly-but-necessary servlet filter.
28 Jun 2026
·
5 min read
·176 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
·544 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
·267 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
·141 views