My Projects

A collection of backend applications and systems I've built, showcasing my expertise in Java, Spring Boot, and scalable architecture.

Smart Tailoring Management System

50+ concurrent users, <2s load time, 99% uptime

Production-ready web platform solving the disconnect between customers and local tailors. Built to streamline custom clothing orders with real-time notifications, location-based tailor discovery within 5km radius, and dynamic measurement profiles. Implements Repository + Service Layer architecture with CSRF protection, XSS prevention, and SQL injection defense. Features automated CI/CD pipeline and handles 50+ concurrent users with <2s page load times.

Problem

Local tailors struggle with digital presence while customers can't easily find nearby tailors or manage custom measurements

Solution

Full-featured booking platform with geolocation, secure authentication, measurement management, and automated deployment

Key Highlights

  • Repository + Service Layer pattern for clean architecture
  • CSRF, XSS, and SQL injection protection
  • CI/CD pipeline with automated deployments
  • Geolocation-based search with MapLibre GL
  • Comprehensive documentation with deployment guides

Tech Stack

PHPMySQLJavaScriptMapLibre GLOpenStreetMapGitHub ActionsDockerCloudinary

Event-Driven System with Transactional Outbox

100+ events/min, <1s latency, 100% delivery guarantee

Advanced backend system implementing the Transactional Outbox Pattern to solve the dual-write problem in distributed systems. Guarantees 100% reliable event delivery between microservices with automatic retry logic. Handles 100+ events/minute with <1s latency using HikariCP connection pooling. Built to understand event-driven architecture and ensure data consistency across service boundaries without message loss.

Problem

Distributed systems face data inconsistency when writing to database and message queue simultaneously - if one fails, data becomes corrupted

Solution

Transactional Outbox Pattern ensures atomic writes to database, with separate processor reliably delivering events with state machine tracking

Key Highlights

  • Solves dual-write consistency problem
  • State machine: PENDING → PROCESSING → COMPLETED
  • Automatic retry with exponential backoff
  • Idempotent event processing
  • HikariCP for high-performance connection pooling

Tech Stack

Java 23PostgreSQL 18n8nHikariCPJDBCSLF4J

Student Management System V2.0

Handles 10k+ student records, <50ms query time

Robust CLI application demonstrating evolution from JSON file storage to production-grade MySQL database. Built to understand database migration, connection pooling, and proper resource management. Implements clean layered architecture with Service-Repository pattern, HikariCP for connection pooling, and H2 in-memory database for fast integration testing. Features immutable Java Records for type safety and JVM shutdown hooks for graceful resource cleanup.

Problem

V1.0 used JSON file storage with data corruption risks and poor scalability - needed production-ready database solution with proper testing

Solution

Complete migration to MySQL with connection pooling, integration tests, and professional error handling without data loss

Key Highlights

  • Migrated from JSON to MySQL with zero data loss
  • H2 in-memory database for fast integration testing
  • Java Records for immutable, type-safe data models
  • Graceful shutdown with resource cleanup hooks
  • Repository pattern for clean data access

Tech Stack

Java 25JDBCMySQLH2 DatabaseHikariCPJUnit 5SLF4J

Java Servlet MVC Auth System

Handles 100+ concurrent sessions, secure against SQL injection

Educational authentication system built from scratch to understand core servlet concepts without high-level frameworks like Spring Boot. Implements secure user registration and login with SHA-256 password hashing, session management, and backend validation. Follows strict MVC architecture with Servlets as Controllers, JSP as Views, and POJOs as Models. Uses SLF4J for production-grade logging instead of System.out.println. Demonstrates understanding of fundamental Java web development before framework abstraction.

Problem

Need to understand how authentication actually works at the servlet level before jumping to Spring Security abstractions

Solution

Built complete auth system from scratch with secure password hashing, session management, and MVC separation of concerns

Key Highlights

  • SHA-256 password hashing (no plaintext storage)
  • Strict MVC architecture without frameworks
  • Raw JDBC with prepared statements
  • Session-based authentication
  • Professional SLF4J logging

Tech Stack

Java 25Java ServletsJSPJDBCMySQLMavenSLF4JApache Tomcat