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.

Spring Security Lambda DSL vs Chaining Configuration
· 10 min read

Spring Security Lambda DSL vs Chaining Configuration

Spring Security's Lambda DSL vs the older chaining style with and(). Configure a SecurityFilterChain both ways in Spring Boot and see which reads cleaner.

Notion API File URLs Expire: Fixing 403 Errors on Images
· 11 min read

Notion API File URLs Expire: Fixing 403 Errors on Images

Notion API file URLs carry an expiry_time and expire after 1 hour, so your images start returning 403 Forbidden. Here's how I fixed it in a Nuxt 3 static site.

Learn Spring & Spring Boot: A Free Crash Course for Beginners
· 13 min read

Learn Spring & Spring Boot: A Free Crash Course for Beginners

New to Spring? This free crash course shows you where to start, whether to learn Spring or Spring Boot first, and how to build your first Spring Boot app.

Building Command Line Applications in Spring with Spring Shell
· 12 min read

Building Command Line Applications in Spring with Spring Shell

In this introduction to Spring Shell, you will learn you how to build CLI applications in a familiar programming environment using Java + Spring.

Building Native Images in Java with GraalVM
· 8 min read

Building Native Images in Java with GraalVM

Learn how to handle GraalVM Native Image reflection errors in Java by using the tracing agent to generate reachability metadata and fix ClassNotFoundException.

GraphQL Scalars - How to use Custom Scalars in Java
· 14 min read

GraphQL Scalars - How to use Custom Scalars in Java

Learn how to use GraphQL custom scalars in Java. We build a Spring Boot 3 app with Spring for GraphQL and register the BigDecimal and LocalDateTime scalars.

Easily Implement UUIDs as Primary Keys in Spring Boot 3
· 9 min read

Easily Implement UUIDs as Primary Keys in Spring Boot 3

In this tutorial you will learn how to use one of the new features in Jakarta EE 10 in a Spring Boot 3 application.

Happy New Year 2023
· 12 min read

Happy New Year 2023

Happy New Year! I want to take a few minutes and talk about a few of my priorities as we head into the new year.

2022 Reflections
· 9 min read

2022 Reflections

In this article I am going to spend some time reflecting because I believe it's a good reminder of the good and the bad as I began to set some goals for next year.