Skip to main content
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast
View all authors

A Practical Guide to Java Records

· 9 min read
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast

Java records, introduced in Java 16 (JEP 395), finally let you delete Lombok. You know, that library you added to avoid writing 50+ lines of getters, then spent hours debugging @Data annotation conflicts and weird IDE plugin issues. One line. No plugins. No magic. Just the Java compiler doing what it should have done 25 years ago.

In this guide, you'll learn:

  • The problem records solve — why we needed them
  • Core syntax and features — compact constructors, immutability, and generated methods
  • Real-world patterns — DTOs, value objects, projections, and configuration
  • When records fit (and when they don't) — practical guidance for your codebase

Optimizing Spring Boot Docker Images

· 5 min read
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast

Docker images for Spring Boot applications often start bloated—large downloads, slow CI/CD pipelines, and unnecessary attack surface. This post shows you how to dramatically reduce image size while improving security and build speed.

In this post we'll look at:

  • Using JRE base images on Alpine Linux
  • Multi-stage builds for clean, consistent images
  • Layered JARs for blazing fast rebuilds
  • Summary of improvements and trade-offs

What’s New in Java 25

· 9 min read
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast

Java 25 continues the recent Java trend: fewer flashy features, more small, sharp tools that make everyday code safer, faster, and easier to reason about.

In this post we’ll look at:

  • simpler main and java.lang usage
  • constructor “prologues” and inheritance
  • ScopedValue vs ThreadLocal
  • runtime & performance improvements
  • _ as an unnamed parameter/pattern
  • sealed types with safer switch
  • **gatherers: custom intermediate stream operations **

Building a Flexible Calculator Engine with Strategy and Factory Patterns in Spring Boot

· 3 min read
Ouwesh Seeroo
Senior Java Developer | Tech Enthusiast

In this article, we'll explore how to build a flexible and maintainable calculator engine using the Strategy and Factory design patterns in a Spring Boot application. This pattern is particularly useful when you need to apply different calculation rules based on different jurisdictions or conditions.