Vibe Coding the Next Generation: How We Built AIMUD Using an AI Ensemble
In the traditional world of software engineering, building a Multi-User Dungeon (MUD) is a rite of passage. It requires handling complex state, real-time networking, concurrency, and deep game logic. Usually,…
Mastering Multi-Profile Environments with Spring Cloud Config
Spring Cloud Config simplifies configuration management for microservices, but its power truly shines when dealing with diverse environments. This post dives into how to leverage multiple profiles with Spring Cloud…
Goodbye Boilerplate: Mastering Declarative HTTP Clients in Spring Boot
For years, calling remote REST APIs in Spring Boot meant one of two things: wrestling with the aging, blocking RestTemplate, or writing verbose, reactive boilerplate with WebClient. While libraries like…
Using java.util.stream.Collector
You will find plenty of articles on how to create your own Collector, and calling Streams.collect() with a collector to gather the data into a collection. Learn how to add…
Spring CORS Configuration: A Comprehensive Guide
Cross-Origin Resource Sharing (CORS) is a security mechanism that browsers implement to restrict web pages from making requests to a different domain than the one that served the web page.…
Java’s missing TreeMap
One thing I have always found lacking in Java collections/containers is TreeMap. A simple class that takes a hierarchical approach to mapping data to a node. Given a hierarchical string…
Goodbye Resilience4j? Native Fault Tolerance in Spring Boot 4
For years, the standard advice for building resilient Spring Boot microservices was simple: add Resilience4j. It became the Swiss Army knife for circuit breakers, rate limiters, and retries. However, with…