17 Years in Java — The 10 Mistakes That Cost Me Promotions
A candid retrospective on the technical and career mistakes I made as a Java developer in Singapore — and what I wish someone had told me earlier
A candid retrospective on the technical and career mistakes I made as a Java developer in Singapore — and what I wish someone had told me earlier
Modern Java clean code practices for 2026. Covers var usage, record patterns, Optional best practices, Stream vs loop decisions, immutability by default, and code smells to eliminate — with before/after examples.
A Terraform introduction tailored for Java developers. Covers HCL basics mapped to Java concepts, provisioning AWS resources (RDS, ECS, S3), state management, modules as libraries, and integrating Terraform into your CI/CD pipeline.
Design and build a URL shortener from scratch with Spring Boot. Covers Base62 encoding, database schema, redirect handling, click analytics, expiration, and scaling considerations — a classic system design interview question implemented.
Design and implement a distributed rate limiter with Spring Boot and Redis. Covers fixed window, sliding window, and token bucket algorithms — with a custom @RateLimit annotation, AOP aspect, and Redis sorted sets.
Design a multi-channel notification service with Spring Boot and Kafka. Covers email (JavaMail + Thymeleaf templates), SMS, push notifications, priority queues, retry with dead letter topics, template rendering, and scaling strategies.
Build interactive command-line applications with Spring Shell. Covers @ShellComponent, @ShellMethod, parameter validation, tab completion, custom prompts, and packaging as a native executable.
A complete guide to securing Spring Boot applications with OAuth2 and OpenID Connect using Keycloak. Covers the authorization code flow, JWT resource server, role-based access, token introspection, and testing secured endpoints — with working code and Docker setup.
Go beyond basic CRUD with Spring Data JPA. Master Specifications for dynamic queries, Projections for performance, and Auditing for automatic timestamps — with real PostgreSQL examples and Testcontainers tests.
A practical migration guide from deprecated Spring Cloud Netflix components (Ribbon, Hystrix, Zuul) to their modern replacements (Spring Cloud LoadBalancer, Resilience4j, Spring Cloud Gateway). Covers each component with before/after code, configuration changes, and migration strategy.