Loading case study
Loading case study
End-to-end recruitment platform with public job discovery, candidate self-service, and protected backoffice hiring workflows.
Role
Full-Stack Engineer
Timeline
2020
Platform
Web
Focus
Recruitment Workflow
Built a hiring workflow system that combines a React/Vite frontend, candidate-facing application flows, recruiter backoffice tools, and a TypeScript Express.js backend.
Recruiting workflows were spread across manual tools, making job status, candidate progress, access control, and decision history difficult to manage consistently.
Delivered a structured job posting platform with public job pages, candidate accounts, application review workflows, RBAC, audit logs, file handling, notification foundations, and production-style CI/CD.
Full-Stack Engineer
2020
Functional & non-functional
Architecture + data flow
The system uses a React/Vite frontend with feature-first modules and a TypeScript Express.js backend with PostgreSQL, OpenAPI, RBAC, audit logging, file storage, notifications, and background jobs.
State flow and data model
Rules that drive decisions
Available app and product links
Project boundaries
What I handled directly
Key problem solving
Public, candidate, and backoffice users needed different flows without mixing access rules.
Separated route surfaces, auth providers, permission gates, and backend authorization checks by user type.
Application review involved many state transitions, notes, interviews, offers, and candidate-visible updates.
Modeled the workflow around explicit application actions, status history, and feature-specific modules.
Frontend and backend changes needed to stay aligned across many endpoints.
Used OpenAPI contracts and generated TypeScript types to keep API usage explicit and maintainable.
Decisions and compromises
What we would repeat
Stability in production
Results and outcomes
Key screens

What mattered most