Case study
Lampstand job board
A production job board with anonymous employer posting and bounty-based hiring, built alongside the Lampstand reading app.
- JWT
- authenticated REST APIs
- TDD
- Jest tests gating CI/CD
- Next.js app: The candidate-facing frontend, deployed on Vercel.
- GitLab CI: Runs unit and integration tests before every deployment.
- REST API: Enforces anonymous posting and bounty rules server-side.
- PostgreSQL: Stores employers, roles and applications.
Context
Lampstand’s second product was a job board that shared a monorepo, and a component library, with the reading app. Employers could post anonymously, and hiring could be bounty-based.
Problem
Anonymous posting and bounty-based hiring are unusual rules for a job board. The backend had to enforce them server-side, and the frontend had to make them feel simple to candidates.
My role
I delivered the job board backend and paired it with the Next.js/TypeScript frontend, working across the API, database and deployment pipeline.
Approach
Scalable REST APIs with JWT authentication, PostgreSQL for data, Jest unit and integration tests written test-first, and GitLab CI plus Vercel for automated deployment.
Outcome
A production job board supporting anonymous employer posting and bounty-based hiring workflows, shipped with automated CI/CD.
Decisions
Shared monorepo and UI library
The job board reused the Storybook component library from the reading app, so the two products shared UI patterns instead of drifting apart.
Tests before release
Jest unit and integration tests ran in GitLab CI to catch regressions before production and reduce deployment failures.
What shipped
Anonymous employer posting
Employers can publish roles without exposing their identity.
Bounty-based hiring
Hiring workflows that attach a bounty to a role.
Stack
Next.js · TypeScript · Node.js · PostgreSQL · Jest · GitLab CI · Vercel
A second product in the same monorepo: backend, frontend and delivery pipeline owned end to end.