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

The 5 Steps of AI Adoption: Which One Are You On?

AI/

The 5 Steps of AI Adoption: Which One Are You On?

Learn the 5 steps of AI adoption mapped out by Boris Cherny, creator of Claude Code, and how to move from copy-pasting code to supervised autonomy.

Read article 12 min read
Can You Trust AI-Generated Code?
· 13 min read

Can You Trust AI-Generated Code?

Can you trust AI-generated code? It depends on what you already know. A look at why AI code feels great in unfamiliar stacks and how to verify it.

Spring AI: Build Real Guardrails that hold
· 21 min read

Spring AI: Build Real Guardrails that hold

Learn how to build Spring AI guardrails with SafeGuardAdvisor, custom PII masking, and output rails to stop prompt injection and data leaks.

Docker Compose for Java Developers, Explained
· 17 min read

Docker Compose for Java Developers, Explained

Learn what that docker-compose.yml in every Java repo actually does. Spin up Postgres with one command and run any project you clone with zero setup.

Spring AI 2.0 Tool Calling: Build a Live Claude-Style UI
· 19 min read

Spring AI 2.0 Tool Calling: Build a Live Claude-Style UI

Build a Claude-style 'Calling tool...' UI with Spring AI 2.0's ToolCallingAdvisor. Stream live tool call events over SSE from the ChatClient advisor chain.

Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA
· 12 min read

Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA

Embabel 1.0 is GA. What Rod Johnson's AI agent framework for the JVM means for Java developers, what changed on the road to 1.0, and how to get started.

Self-Correcting Structured Output in Spring AI 2.0
· 16 min read

Self-Correcting Structured Output in Spring AI 2.0

Learn how Spring AI 2.0 validates LLM JSON against your schema and automatically retries failures with self-correcting structured output. A beginner guide.

Can You Use Java for AI? Why Java Is Better Positioned Than You Think
· 14 min read

Can You Use Java for AI? Why Java Is Better Positioned Than You Think

Can you use Java for AI? Yes. For building real AI applications it might be the better choice. Why the JVM, Spring AI, and your existing team are enough.

Spring Boot End of Life: Every 3.x Branch Is Now Unsupported
· 11 min read

Spring Boot End of Life: Every 3.x Branch Is Now Unsupported

Spring Boot 3.5 reached end of life in June 2026 and every 3.x branch is now unsupported. What that means, and how to plan your Spring Boot 4 upgrade.

How to Kill a Process Running on a Port (Windows, macOS & Linux)
· 7 min read

How to Kill a Process Running on a Port (Windows, macOS & Linux)

Port 8080 already in use? Learn how to find and kill the process running on a port on Windows, macOS, and Linux—with copy-paste commands for each.