Coding Steve's Blog
RSS FeedI'm a senior software developer with about 10 years of experience doing devops and development work. This is my blog where I write posts I wish I had found online myself.
I also write on my substack, which is a little less technical and sometimes a bit more personal. You can find that at https://substack.com/@stevenpg1
Quick Reference Posts
Featured
The Ultimate Guide to Fuzz Testing in Java
Published: at 12:00 PMA hands-on introduction to fuzz testing for developers. What fuzzing is, how Go bakes it into the standard library, and how to do coverage-guided fuzzing in Java with Jazzer, including the regression-corpus loop that locks every discovered bug in forever.
The Ultimate Guide to Spring Modulith
Published: at 12:00 PMA comprehensive guide to Spring Modulith — covering module boundaries, event-driven communication, the Event Publication Registry, Moments, testing with ApplicationModuleTest, and observability.
The Ultimate Guide to Spring Batch 6
Published: at 12:00 PMA deep-dive guide to Spring Batch 6 — covering architecture, chunk processing, readers/writers, fault tolerance, partitioning, testing, and every meaningful change from Spring Batch 5.
Fixing Page<T> Deserialization in Spring Boot 4 with Jackson 3
Published: at 12:00 PMSpring Boot 4's Jackson 3 upgrade silently breaks Page<T> deserialization for REST clients. Here's why it happens and the one-dependency fix.
Stop Guessing Your GraalVM Native Image Metadata
Published: at 12:00 PMHow to use the native-image tracing agent with Testcontainers integration tests to automatically generate accurate GraalVM native image metadata — and how to iterate when new reflection errors appear.
GraalVM Native Image Reflect Config Demystified
Updated: at 12:00 PMThis post digs into the native-image configurations, specifically the reflect-config.json!.
GraalVM Native Spring Boot vs Go — Build, Boot, and Benchmark
Published: at 12:00 PMA head-to-head comparison of GraalVM native Spring Boot 4 and Go, build time, startup time, and runtime throughput on a real HTTP + Kafka workload.
The Ultimate Guide to Spring Boot 4 Migration
Published: at 12:00 PMA comprehensive, practical guide to migrating from Spring Boot 3.x to 4.0 — covering Gradle 9, Jackson 3, starter renames, testing changes, and everything in between.
Guide to Migrating From Retired Ingress Nginx
Published: at 12:00 PMA comprehensive guide to migrating from the retiring ingress-nginx controller to the Kubernetes Gateway API, covering implementation options like Traefik, NGINX Gateway Fabric, and Envoy Gateway.
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.
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
Spring Boot 4 - What is JSpecify?
Published: at 12:00 PMAn article walking through JSpecify support in Spring Boot 4.
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%.
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.
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.
Easy Spring Rest Client w/ OAuth2
Published: at 12:00 PMUsing the new Spring RestClient with newly supported OAuth2 capabilities!
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.
Recent Posts
How I built Visual Finances
Published: at 12:00 PMHow I built a free suite of calculators for the modern web.
Running Claude Code Locally on Apple Silicon
Published: at 12:00 PMHow to run Claude Code locally on a Mac using llama.cpp, Qwen3.6-35B, and Apple Silicon to avoid API limits.
Stop Reinventing the Cesium Timeline
Published: at 12:00 PMA high-quality, highly configurable open source Cesium timeline exists — with React and Angular support, swim lanes, theming, and canvas-based rendering. Here's why you should just use it.
Running PostgreSQL on Less Than 150MB of Memory
Published: at 12:00 PMA deep dive into every PostgreSQL configuration property needed to run a functional Postgres instance inside a 140MB Docker container, with a full working demo.
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 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.