Practical writing on Java, Spring, AI, and the craft of software engineering.

If you're building with Java and Spring (or trying to figure out where AI fits into your development workflow) you're in the right place. I write practical, beginner-friendly deep dives on Spring Boot, Spring AI, and software engineering fundamentals, collected here in chronological order.

Filtering by tag: Java

Building Custom Spring AI Advisors for Tool Logging and Token Tracking
· 24 min read

Building Custom Spring AI Advisors for Tool Logging and Token Tracking

Learn to build custom Spring AI advisors with the BaseAdvisor interface to log available tools, track tool invocations, and count token usage on every LLM call.

SSRF Protection in Spring Boot 4.1 with InetAddressFilter
· 13 min read

SSRF Protection in Spring Boot 4.1 with InetAddressFilter

Learn how Spring Boot 4.1's new InetAddressFilter protects your applications against Server-Side Request Forgery (SSRF) attacks with a single bean definition.

Introduction to Spring Modulith: Building Modular Monoliths with Spring Boot
· 22 min read

Introduction to Spring Modulith: Building Modular Monoliths with Spring Boot

Learn how Spring Modulith helps you build a modular monolith in Spring Boot with enforced module boundaries, application events, and verified architecture.

Embabel MCP Servers and Tools for Agentic Flows on the JVM
· 16 min read

Embabel MCP Servers and Tools for Agentic Flows on the JVM

Add tools and MCP servers to your Embabel agents in Java. Build a blog writing agent that researches topics, calculates reading time, and generates front matter.

Embabel First Look: Building Agentic Flows on the JVM
· 21 min read

Embabel First Look: Building Agentic Flows on the JVM

A first look at Embabel, Rod Johnson's framework for building agentic AI flows on the JVM. Build a blog writing agent using goal-oriented action planning (GOAP).

GraphQL for Java Developers with Spring Boot
· 33 min read

GraphQL for Java Developers with Spring Boot

Build GraphQL APIs in Java with Spring Boot 4 and Spring for GraphQL. A free course covering schema-first design, batch loading, unions, and AOT repositories.

Spring, Build Me a Coding Agent
· 26 min read

Spring, Build Me a Coding Agent

Build an autonomous coding agent in Spring AI with the Spring AI Agent Utils library. This tutorial adds file system tools, shell commands, and agent skills.

Getting Started with Error Handling in the RestClient
· 18 min read

Getting Started with Error Handling in the RestClient

Learn best practices for error handling with Spring's RestClient, including global exception handlers, custom exceptions, Problem Detail responses, and built-in retry with resilience methods in Spring Framework 7.

JEP 500: Prepare to Make Final Mean Final in JDK 26
· 11 min read

JEP 500: Prepare to Make Final Mean Final in JDK 26

JDK 26 introduces JEP 500, which warns developers when final fields are mutated through reflection. Here's what this means for your Java code and how to prepare for the future.