Back to portfolio

Backend / SDE

Employee Management REST API

Engineered a production-grade Employee Management REST API with Spring Boot, Spring Data JPA, and MySQL featuring full CRUD operations, request validation, centralized exception handling, pagination, sorting, and unit-tested service layers.

Overview

Challenge

Interviewers expect clean, layered REST services with real validation and error handling, not just a controller that writes to a database.

Solution

Designed a layered Spring Boot architecture (Controller → Service → Repository) with DTOs, Bean Validation, and a global exception handler returning structured error responses.

Status

Production-style SDE Build

Architecture

CLICK ANY STAGE TO INSPECT ITS INPUT / OUTPUT SPECDATA FLOW 6 STAGES ✓

Implementation

  • Built full CRUD endpoints (GET/POST/PUT/DELETE) with path variable and query parameter routing.
  • Enforced Bean Validation constraints (NotNull, Size, Email, Pattern) on request DTOs.
  • Implemented a centralized @RestControllerAdvice exception handler mapping validation and not-found errors to RFC 7807-style responses.
  • Added pagination and sorting with Spring Data Pageable and wrote JUnit 5 service-layer tests with Mockito.

Results

  • Every endpoint returns consistent, well-formed JSON responses with proper HTTP status codes.
  • Invalid input is rejected at the boundary before touching business logic or the database.
  • Unit tests cover the service layer, validating the interview-relevant separation of concerns.

Lessons Learned

  • Layered architecture makes a REST API maintainable and is the first thing senior engineers look for.
  • Validation should live on DTOs at the API boundary, never scattered across controllers.
  • A single global exception handler keeps error responses uniform across the whole application.

Tech Stack

Java 17Spring BootSpring Data JPAMySQLSpring ValidationJUnit 5