Consistent Hashing: The Algorithm Behind Every Scalable Distributed System
Adding one cache server shouldn't invalidate every key. Consistent hashing with virtual nodes and bounded loads — full Go and Java implementations.
Modern Java — virtual threads, records, sealed classes, and JVM internals.
Adding one cache server shouldn't invalidate every key. Consistent hashing with virtual nodes and bounded loads — full Go and Java implementations.
Why exactly-once is a myth, and how idempotency keys, database constraints, and the outbox pattern make retries safe in Go and Java.
Java collections: computeIfAbsent, getOrDefault, removeIf, immutables, and Comparator chains that eliminate entire bug categories.
Stop fighting java.util.Date. Master LocalDateTime, ZonedDateTime, Instant, and Duration — predictable, thread-safe time handling.
Java singletons: enum patterns, double-checked locking, and holder-classes — and when dependency injection is the better answer.
Write tests that catch real bugs: JUnit 5 lifecycle, parameterized tests, Mockito, WireMock, Testcontainers, and mutation testing.
The features that changed Java: lambdas, streams, records, sealed classes, pattern matching, and virtual threads. Java 8 to 21.
SOLID beyond theory: real production anti-patterns, Spring Boot refactorings, and the design constraints that prevent codebase rot.
Java streams: pipeline internals, where streams beat loops, parallel stream traps, and when to use collectors vs teeing.
Production REST APIs with Spring Boot: JPA, Bean Validation, global exception handling, MockMvc testing, and scalable patterns.