Java Backend Developer Β
I'm a Java backend developer passionate about building scalable, production-ready microservices. I focus on writing clean, maintainable code and understanding the why behind architectural decisions β not just making things work, but making them scale.
I enjoy working across the full backend stack: designing REST APIs, integrating caching and messaging systems, securing services, and writing tests that actually catch bugs.
| Layer | Technologies |
|---|---|
| Languages | Java8/14/16/17, SQL |
| Frameworks | Spring Boot 3, Spring MVC, Spring Security, Spring Data JPA, Hibernate |
| Messaging & Cache | Apache Kafka, Redis |
| Databases | MySQL,Oracle |
| Tools | Docker, Docker Compose, Maven, Git, Postman |
| Testing | JUnit 5, Mockito, AssertJ |
Production-grade URL shortener built with Java 17 and Spring Boot β designed for high-throughput redirects with a fully decoupled analytics pipeline.
What makes it interesting:
- Redis cache-aside β resolves short codes in under 1 ms, bypassing the database on cache hits; TTL-based eviction with immediate cache invalidation on delete
- Apache Kafka β click events published asynchronously using
@Async+CompletableFutureso redirect latency is never affected by analytics writes; partitioned byshortCodeto preserve per-URL ordering - At-least-once delivery β manual Kafka offset commit (
MANUAL_IMMEDIATE); offset acknowledged only after successful DB write and Redis counter update - Spring Data JPA + MySQL β soft delete, URL expiry (TTL), custom aliases, and a
@Scheduledbulk cleanup job for expired URLs - Spring Security β stateless Basic Auth with
BCryptPasswordEncoder; global@RestControllerAdvicewith RFC 7807ProblemDetailerror responses - Java 17 features β records (DTOs), switch expressions,
CompletableFuture, Stream API with.toList(), text blocks for JPQL,Instant+ChronoUnitfor time arithmetic - Unit tested β JUnit 5 + Mockito; verifies cache-hit short-circuits the database call
- Fully containerised β Docker Compose wires Spring Boot app + MySQL + Redis + Kafka together
Tech: Java 17 Β· Spring Boot 3 Β· Redis Β· Apache Kafka Β· MySQL Β· Spring Security Β· Docker Compose Β· JUnit 5 Β· Mockito Β· Lombok
@Transactional / @Transactional(readOnly = true) β transaction management & Hibernate optimisation
@KafkaListener + Acknowledgment β manual offset commit, at-least-once delivery
StringRedisTemplate β cache-aside pattern, atomic counters (INCR)
@Async + CompletableFuture.whenComplete() β non-blocking background processing
Spring Data JPA derived queries + @Modifying β custom bulk UPDATE without loading entities
@RestControllerAdvice + ProblemDetail β centralised RFC 7807 error handling
@Scheduled(fixedRateString = "PT1H") β hourly cleanup of expired URLs
Java Records β immutable request/response DTOs
Switch expressions β clean time-range parsing
- Deepening knowledge of distributed systems and system design patterns
- Exploring Spring Cloud (Eureka, Gateway, Config Server) for microservice orchestration
- Practising DSA and system design for backend developer interviews
- Open to Java backend or full-stack developer roles
Thanks for visiting β feel free to explore the repos or reach out on LinkedIn!