Soomin Hwang
HR tech / Recruiting platform

Job Posting & Applicant Management Platform

Role
Service & Admin Panel Development
Timeline
Nov 2024 – Jan 2025
Stack
Next.js 14React QueryReact Hook FormMSWDockernext-translateTailwind CSSEmotion
Disclosure
Service discontinued
Frontend start date
Blocked on backend APIStarted against MSW mocksparallelized
Schedule risk
Sequential handoffFrontend/backend in parallelreduced

Context

The service has been discontinued, so there are no screens to show. Internal system names and non-public details are omitted; the process is as it happened.

I built a Next.js 14 service covering job-posting creation through applicant management, alongside the admin panel operations staff used. Both surfaces leaned heavily on input forms and server-state management.

Problem

Backend API development was scheduled to start later than the frontend. Left as-is, the frontend would have had to wait on the backend and proceed sequentially, stretching the overall timeline.

What I did

1. Build frontend-first against MSW mocks

I introduced MSW (Mock Service Worker) to mock responses against the agreed API spec, letting frontend development and testing start before the backend existed. When the API contract changed, only the mock handlers needed updating — the frontend was no longer blocked on backend progress.

2. Forms and server-state management

I implemented validation for complex forms — job-posting creation, application submission — with React Hook Form, and managed server state (applicant lists, status changes) with React Query.

3. Multilingual SSG pages

I used next-translate to statically generate (SSG) job-posting pages in multiple languages.

Results

MetricBeforeAfterChange
Frontend start dateWaiting on backend API completionStarted immediately against MSW mocksparallelized
Schedule riskSequential (backend → frontend)Frontend and backend progressing togetherreduced

The biggest win from adopting MSW wasn't speed so much as removing a category of schedule risk — backend delays stopped pushing back the frontend's start date.

Found this case study interesting?

Always up for a conversation — whether or not there's a project attached.