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

What's New in Spring Framework 7 and Spring Boot 4
· 29 min read

What's New in Spring Framework 7 and Spring Boot 4

A comprehensive look at the new features in Spring Framework 7 and Spring Boot 4, including code examples and resources to help you get started

Native Retry Support in Spring Boot 4: No External Dependencies Required
· 28 min read

Native Retry Support in Spring Boot 4: No External Dependencies Required

Spring Boot 4 includes native retry support with @Retryable, RetryTemplate, and @ConcurrencyLimit. Learn how to add resilience without the spring-retry dependency.

Java
· 22 min read

Stop NullPointerExceptions Before Production with Spring Boot 4's Null Safety

Discover how Spring Boot 4 and JSpecify annotations catch NullPointerExceptions at compile-time instead of runtime. Learn to implement @NullMarked and @Nullable for bulletproof Java code with practical examples.

My CYC 2025 Demo: Why Building MCP Servers in Java Just Got Ridiculously Simple
· 21 min read

My CYC 2025 Demo: Why Building MCP Servers in Java Just Got Ridiculously Simple

Learn how Spring AI 1.1.0-M2 makes building MCP servers in Java incredibly simple with just annotations. No callbacks, no complex setup. Includes complete code from my Commit Your Code 2025 conference demo, showing how to expose your Java application's data to Claude and other AI assistants.

Spring Boot 3.x Features: Complete Guide to Major Updates (2022-2025)
· 52 min read

Spring Boot 3.x Features: Complete Guide to Major Updates (2022-2025)

Explore the transformative features introduced in Spring Boot 3.0 through 3.5, from Java 17 requirements and GraalVM native images to virtual threads and enhanced observability. This comprehensive guide covers each release's major improvements, including Docker Compose integration, Testcontainers support, structured logging, and SSL certificate management. Learn how Spring Boot 3.x...

JDK 24's Major Improvement: Virtual Threads Without Pinning
· 18 min read

JDK 24's Major Improvement: Virtual Threads Without Pinning

Discover JDK 24's breakthrough enhancement that eliminates virtual thread pinning with synchronized blocks and methods. This comprehensive guide explores how this change revolutionizes Java concurrency, dramatically improving scalability for Spring Boot applications with legacy synchronized code. You'll learn about the technical details of thread pinning, see practical performance comparisons, and...

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.

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.

Java
· 9 min read

Building Generative AI Applications in Java: From Simple Scripts to Spring Boot

Explore how Java developers can leverage generative AI, from basic curl commands to robust Spring Boot applications. Learn to integrate OpenAI's GPT models, use Java's HTTP client, and harness the power of Spring AI for structured output and simplified AI integration.