Security and privacy, in practice
Adding Claude Haiku to my CV builder: sign-in first, a spend cap, and a fallback
BuildCV ran entirely in the browser. Here is how I added four opt-in Claude Haiku 5.5 actions on my own API credit: behind LinkedIn sign-in, capped three ways, falling back to built-in coaching when the money runs out, plus what the first real calls got wrong.
31 Oct 2026
·
8 min read
·42 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
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
Working with Codex / ChatGPT
Codex Meets IntelliJ's Debugger: MCP on a Tiny Play App
I connected Codex to IntelliJ's MCP server, then used a one-route Play 3 app to verify the connection with a real breakpoint and a live variable. The exercise also exposed Play's sbt layout and what Action[AnyContent] means.
23 Sep 2026
·
6 min read
·190 views
Scala and the JVM
·
Part 1
Scala: Part 1: From Java to Scala with a Runnable sbt Project
Starting Scala 2 from Java and Spring: val and var, expressions, a first method, and a small sbt project you can run. The first step in the Scala/Play series.
16 Sep 2026
·
5 min read
·114 views