← Latest posts

Engineering notes

Page 2 of 4

·5 min read

Java Optional: The Methods Worth Knowing, and the One That Fools Everyone

Optional's useful methods with real output — and a measurement showing orElse runs its fallback even when the value is present, while orElseGet does not.

Java
·5 min read

Java Stream API Examples, and Four Ways They Surprise You

Complete stream examples with real output — grouping, flattening, collecting to a map — plus four behaviours that cause bugs not looking like stream bugs.

Java
·6 min read

HashSet vs HashMap: One Is Built Out of the Other

The difference is not two designs but one — javap shows a HashSet holding a HashMap. Every behaviour, and every failure mode, follows from that.

Java
·8 min read

ArrayList vs LinkedList: The Numbers Behind the Table

Everyone knows the complexity table. Here is what each operation actually costs when you time it — including the one result that contradicts the folklore.

Java
·9 min read

How to Run a Spring Boot App as a Linux Service (and How Small a Box It Needs)

The systemd unit file for a Spring Boot jar, the one line most of them are missing, and measured answers to how much memory the thing actually uses.

Cloud & DevOps
·8 min read

How to Dockerize a Spring Boot Application, and What Each Choice Costs

Four images built from one Spring Boot app, measured — 785MB down to 531MB, and why the layered build that everyone recommends does not shrink anything.

Containers
·8 min read

How to Secure a Spring Boot API with JWT (Without Writing a Filter)

Spring Security already parses and validates JWTs. Here is the whole setup — two beans and one line of DSL — plus what a short example quietly defers.

Backend & APIs
·8 min read

How to Build a REST API in Spring Boot, Including the Failures

Build a working Spring Boot REST API — GET, POST, 201 with Location — then see what your callers actually get back when the request is wrong, and fix it.

Backend & APIs
·9 min read

How to Create a Spring Boot Project (and What the Generator Actually Gives You)

Create a Spring Boot project with Spring Initializr, then read every one of the ten files it writes — and find out what the 19 MB jar you build actually holds.

Backend & APIs