Featured Articles
OOP Concepts in Java: The 4 Pillars and Composition, with Examples
Get object-oriented programming (OOP) wrong and you’ll pay for it for years: tangled classes, features that break other features, a codebase nobody wants to touch....
Big O Notation in Java: Time and Space Complexity for Coding Interviews
Big O notation describes how the running time or the memory of an algorithm grows when its input grows. An algorithm that is fast for...
All Articles
Replace OAuth2RestTemplate with RestClient: A Modern Spring Boot API Client
In the previous post, we built a program that walks an Order API (buyers, suppliers, customer numbers, articles) and places a test order. It works, but it’s built on OAuth2RestTemplate,...
The Trade-offs Every Engineer Should Know Before Their Next Whiteboard Interview
System Design on AWS: The Trade-offs Every Engineer Should Know Before Their Next Whiteboard Interview
Build a RESTful Web Service with Spring Boot, Gradle, and OpenAPI
By the end of this guide you’ll have a working Spring Boot RESTful API, built with Gradle and documented with OpenAPI, and a live Swagger UI page you can show...
Items in Containers: Count Items in Closed Compartments (Code Interview Problem)
This one shows up in online coding assessments under the name Items in Containers, and it’s a trap: the obvious solution passes the examples and then times out on the...
From O(n²) to O(n): Replace Nested Loops with a HashMap in Java
One endpoint in a B2B order system I worked on returned 1,000 orders, and it was slow. The database wasn’t the problem. Two innocent-looking nested loops were. Here’s how one...
Generate a Spring Boot Server from an OpenAPI Spec with Swagger Codegen
You’ve designed your API. Now comes the boring part: writing controllers, models and request mappings that only repeat what the spec already says. Swagger Codegen writes that code for you....