All Posts
Every article on one page, grouped by month.
February 2026
Spring Boot 4 and Logbook Now Work Together
Published: at 12:00 PMLogbook 4.x now supports Spring Boot 4 and Jackson 3. Here's how to upgrade.
January 2026
UUID4 Shouldn't Be Your Primary Key
Published: at 12:00 PMA comparison of UUID4, UUID7, TSID, and sequential IDs for database primary keys with practical PostgreSQL 18 examples and Spring Boot integration.
Project Leyden vs GraalVM Native Image - A Complete Guide
Published: at 12:00 PMA comprehensive comparison of Project Leyden and GraalVM Native Image for Java developers deciding how to optimize startup time and memory footprint.
The Ultimate Guide to Spring Web Clients with OAuth2
Published: at 12:00 PMA comprehensive guide to Spring's HTTP clients - RestClient, WebClient, and declarative interfaces - with complete OAuth2 integration patterns.
The Ultimate Guide to Spring Cloud Streams
Published: at 12:00 PMA comprehensive guide covering every aspect of Spring Cloud Streams - from functional programming models to multiple binders, error handling, and beyond.
Part 6: Vibe Coding for Non-Coders
Published: at 12:00 PMAn introduction to vibe coding, a method for creating software without traditional coding skills.
Writing an Instancio Extension Library
Published: at 05:00 AMCreating an Instancio Extension for Testing Java Applications
Why you should use Instancio in 2026
Published: at 05:00 AMAn introduction to Instancio and why it's the best testing library you're not using yet
December 2025
Part 5: Vibe Coding for Non-Coders
Published: at 12:00 PMAn introduction to vibe coding, a method for creating software without traditional coding skills.
Spring Boot 4 and Logbook: ClassNotFoundException
Published: at 12:00 PMAttempting to use Logbook with Spring Boot 4 (broken on arrival)
November 2025
Part 4: Vibe Coding for Non-Coders
Published: at 12:00 PMAn introduction to vibe coding, a method for creating software without traditional coding skills.
Should I use Java 25 Compact Object Headers?
Published: at 05:00 AMWith the release of Java 25, should you consider using Compact Object Headers for better memory efficiency?
Spring Boot 4 - What is JSpecify?
Published: at 12:00 PMAn article walking through JSpecify support in Spring Boot 4.
October 2025
Latitude/Longitude Distance Decrypted
Published: at 12:00 PMDeciphering latitude and longitude and their relation to meters for Cesium!
August 2025
Part 3: Vibe Coding for Non-Coders
Published: at 12:00 PMAn introduction to vibe coding, a method for creating software without traditional coding skills.
Part 2: Vibe Coding for Non-Coders
Published: at 12:00 PMAn introduction to vibe coding, a method for creating software without traditional coding skills.
July 2025
Building a Website Purely with Vibes
Published: at 12:00 PMI'm usually skeptical of AI-generated content, but I wanted to see if I could build a website purely with vibes. Here's how it went.
Part 1: Vibe Coding for Non-Coders
Published: at 12:00 PMAn introduction to vibe coding, a method for creating software without traditional coding skills.
Always Set Up AuditorAware in Spring JPA
Published: at 12:00 PMAuditorAware is a powerful feature in Spring JPA that allows you to automatically populate auditing fields like createdBy and lastModifiedBy. In this post, I explain why I always set it up in my projects and how it can simplify your code.
June 2025
JLink - Java Runtime Optimization Reference Guide
Published: at 12:00 PMComplete reference guide for using JLink to create optimized Java runtime images and reduce application size by 60%.
Getting Camera Height in Cesium.js - A Complete Guide
Published: at 12:00 PMA comprehensive tutorial on how to retrieve and display camera height in Cesium.js, including terrain-relative altitude calculations.
Multiple OAuth2 Resource Servers with Spring Boot 3.5.0
Published: at 12:00 PMHow to configure Spring Boot to handle multiple OAuth2 Resource Servers using JwtDecoder based on token issuer
UV - The Modern Python Package Manager
Published: at 12:00 PMExploring uv, the ultra-fast Python package manager and resolver that's changing how we manage dependencies.
Spring Data Pagination Serialization Warning
Published: at 12:00 PMA short post detailing a common serialization error and the potential solutions
Dynamically setting audience for using Spring OAuth2 Client
Published: at 12:00 PMAn article walking through a demo of dynamically setting a query parameter using spring-oauth2-client.
May 2025
Casual Machine Performance Test
Published: at 12:00 PMJust a fun little comparison of a group of machines and how they handle Java and GraalVM native images.
Spring Version Compatibility Cheatsheet
Published: at 12:00 PMA continuously updated page for easy reference!
March 2025
Hibernate 6.6 Breaking Changes - StaleObjectStateException
Published: at 12:00 PMSpring Boot's update to Hibernate 6.6 brings with it a breaking change that could silently cause issues in projects using it.
February 2025
Spring Cloud Stream's Record Recoverable Processor
Published: at 12:00 PMAn example using the new RecordRecoverableProcessor class in Spring Cloud Streams for highly configurable error handling.
October 2024
Cesium JS Volume 2 - Drawing a Circle w/ Primitives & Entities
Published: at 12:00 PMThe second post about basic CesumJS components!
Cesium JS Volume 1 - Drawing a Rectangle w/ Primitives & Entities
Published: at 12:00 PMThe first of a series of posts about basic CeisumJS components!
September 2024
Jdk 23 Streams - How To Use Gather Operations
Published: at 12:00 PMAn article on how to use the Gather stream operation in JDK23
Easy Spring Rest Client w/ OAuth2
Published: at 12:00 PMUsing the new Spring RestClient with newly supported OAuth2 capabilities!
July 2024
Homelab Drives & Buying Used
Published: at 12:00 PMAn article with a short overview of my experiece buying used drives and using smartctl.
June 2024
Partitioning Tables with Progress
Published: at 12:00 PMAn article walking through a demo of partitioning tables with postgres.
April 2024
GraalVM Native Image Reflect Config Demystified
Published: at 12:00 PMThis post digs into the native-image configurations, specifically the reflect-config.json!.
March 2024
Logging Request Body with Spring WebClient
Published: at 12:00 PMAn article describing the latest way to log spring web client requests and responses using Logbook.
Converting Spring Boot 2 to Spring Boot 3 Native Image w/ GraalVM
Published: at 12:00 PMA walkthrough of updating a Spring Boot 2 application to Spring 3 running on GraalVM as a native application.
February 2024
Freedom of Travel for the Three Legged Cat
Published: at 12:00 PMMy first blog post, describing the original Jekyll blog and a migration to Astro.
My First Post, on My First Blog
Published: at 12:00 PMMy first blog post, describing the original Jekyll blog and a migration to Astro.