All work

Role-based LMS

A learning and career-development platform for teams, combining courses, career ladders, skills assessments and reporting with separate trainee and manager experiences.

Client
Professional work
Role
Full-stack engineer
Timeline
Sep 2024 — May 2025
Year
2024–2025
4
Product areas built
Full-stack
Product UI, backend, data & CI

01

The challenge

Teams need a clear way to develop people against the skills and expectations of their roles.

This platform brought learning, career development, skills assessment and reporting into one product, with separate experiences for trainees and managers.

The application was built around a Next.js frontend, a separate web service and PostgreSQL, with security requirements aligned to OWASP throughout development.

02

My role

I worked across the stack, with most of my work in product UI alongside backend, data and CI.

Over about nine months, I built the main product surfaces in sequence: the learning experience, career ladders and skills, assessments and reporting, followed by user and organisation management.

03

The engineering

Learning experience

I built the core course experience across course, lesson, quiz and certificate pages, alongside team and member dashboards.

I also handled Markdown lesson rendering, separate trainee and manager navigation, design tokens, responsive work and database seeding.

Career development and skills

I built a career-ladder experience from the ground up, including a drag-and-drop role builder, skills management and organisation-level collaboration.

The experience supported creating, previewing and modifying career structures while remaining responsive across devices.

Assessments and reporting

I owned most of the assessment product, covering assessment creation, management, preview and evaluation.

I also built the reporting visualisations, including multi-layer skill breakdowns with filtering.

Users, authentication and organisations

I set up the user-management architecture using CQS — commands, queries, handlers and repositories — and built the surrounding user flows for invites, onboarding and profile management.

I also handled Auth0 logout, callback and redirect flows.

Platform, CI and testing

I set up GitHub Actions to run tests against a database and apply Prisma migrations on pull requests and main, and added Playwright end-to-end navigation tests.

The development environment ran through Docker Compose.

04

What I shipped

  • Core course, lesson, quiz and certificate experiences, with team and member dashboards.
  • Career ladders with a drag-and-drop role builder, skills management and organisation collaboration.
  • Assessment creation, management, preview and evaluation.
  • Reporting visualisations with multi-layer skill breakdowns and filtering.
  • User and organisation management with invites, onboarding and Auth0 flows.
  • GitHub Actions workflows with database-backed tests and Prisma migrations, plus Playwright end-to-end tests.

05

Results

  • Built the platform's main product surfaces over approximately nine months, spanning learning, career development, assessments, reporting and user management.
  • Established automated pull-request checks with database-backed testing and Prisma migrations, alongside end-to-end navigation coverage with Playwright.

06

Stack

App
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
Data & auth
  • PostgreSQL
  • Prisma
  • Auth0
  • Zod
Product UI
  • Headless UI
  • Radix
  • dnd-kit
  • React Flow
  • Recharts
  • Dagre
Quality & infra
  • Jest
  • Playwright
  • Docker Compose
  • GitHub Actions

Next breakdown

Minute Master

AI-assisted board-meeting minutes: transcription streamed into an editable draft, then amended, e-signed and exported — the full minutes lifecycle in one editor.