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.

Running AI Models Locally with Docker and Spring AI
· 14 min read

Running AI Models Locally with Docker and Spring AI

Master Docker Desktop's revolutionary Model Runner feature and discover how to build privacy-first AI applications with Spring Boot. This complete tutorial shows you how to run powerful open-source AI models like Gemma locally on your machine, eliminating API costs, protecting sensitive data, and simplifying development workflows. You'll get step-by-step instructions...

Java
· 16 min read

Creating Your First Model Context Protocol (MCP) Server in Java

Build powerful AI integrations by creating your own Model Context Protocol (MCP) server using Spring Boot and Spring AI. This comprehensive guide walks you through implementing a custom MCP server from scratch, enabling AI models like Claude to access your private data sources, execute specialized business logic, and interact with...

Java
· 31 min read

Stream Gatherers in JDK 24: Building Custom Intermediate Operations for the Stream API

Discover how the new Stream Gatherers feature in JDK 24 provides a more elegant solution for processing blog content compared to traditional stream operations.

Spring AI
· 14 min read

Supercharge Your LLM Applications with Model Context Protocol (MCP)

Learn how Model Context Protocol (MCP) enables LLMs to access external data sources and tools, with practical implementation guides for getting started today.

AI
· 6 min read

AI-Powered Dev Hacks at ConFoo 2025

Recently, I had the pleasure of presenting on a topic that I'm pretty passionate about: how artificial intelligence can amplify developer productivity and creativity.

GraphQL
· 9 min read

Building Dynamic GraphQL APIs with Spring Boot and Query by Example

Learn how to build flexible and maintainable GraphQL APIs using Spring Boot's Query by Example support, reducing boilerplate code while enabling powerful search capabilities.

Modern Java: Why You Might Not Need Lombok Anymore
· 12 min read

Modern Java: Why You Might Not Need Lombok Anymore

A detailed exploration of why Java developers should reconsider using Project Lombok, examining its drawbacks and modern alternatives in Java development.

Spring Boot
· 9 min read

Query By Example in Spring Data JPA: A Clean Approach to Dynamic Queries

Learn how to simplify your Spring Data JPA queries using Query By Example (QBE) and create dynamic, type-safe queries without the boilerplate code.

Spring Boot
· 10 min read

RestClient OAuth2 Support in Spring Security 6.4: A Complete Guide

Learn how to implement OAuth2 authentication in your Spring applications using the new RestClient OAuth2 support in Spring Security 6.4. This guide covers architecture, implementation, and best practices for secure service-to-service communication.

Spring AI
· 13 min read

Understanding Tokens in Large Language Models with Spring AI

Learn how to track and manage token usage in Spring AI applications, including implementing custom response types and automated logging with AOP.