About
I'm a full-stack engineer working in React/TypeScript and Python (Django REST Framework, FastAPI), with UX training in user research and Figma prototyping. My background also includes data science work, including a DISC personality classifier built with BERT and XGBoost on the Enron email corpus.
My best work happens with non-technical domain experts. Unknot, a conflict resolution research platform, came out of a partnership with a workplace conflict specialist whose methodology I translated into a guided data-capture flow. I pick up unfamiliar domains quickly and build the right tool for them.
I'm a former university badminton captain with a coaching certificate, currently in the longest break between games of my life. Working on fixing that.
Selected work

Unknot - Conflict Resolution Research Platform
A structured research platform for capturing workplace conflict data, built in collaboration with a workplace conflict specialist. Participants follow a guided four-step flow with progressive disclosure, load-balanced content distribution to keep data coverage even, and session-based anonymous identity with optional Auth0 OIDC.

DISC Classifier - DISC Personality Email Classifier
A multi-label classifier that predicts DISC personality types from email text using BERT embeddings and XGBoost. Trained on the Enron corpus via a pseudo-labelling pipeline and served through a FastAPI endpoint. Built as an end-to-end ML project: dataset construction, embedding, training, and serving.

EatSafe - Allergen Checker (UX Research)
A UX case study for a food-safety app concept: photograph a dish and flag likely allergens. Designed the flow in Figma and built the first screens in React Typescript via Figma MCP, then ran validation research that surfaced a fundamental trust barrier and ended in a recommendation not to build.

Miles & Miles - Car Rental Booking Flow (UX Engineering)
A multi-screen car rental booking flow designed in Figma and converted to React components using Claude Code with the Figma MCP server. A happy-path prototype built using Claude Code with the Figma MCP Server, featuring reusable UI components, form validation, date and time modal pickers, and React Router navigation with disabled-state management.

NotFbook - A social network with real-time chat and notifications
A team-built real-time social network covering authentication, WebSocket live private and group messaging, notification infrastructure, and frontend state managed across multiple React contexts. I was mostly responsible for the frontend.

GoPulse - Secure Forum with Custom Infrastructure
A forum with a custom rate-limiting system built from scratch using Go channels and goroutines. Provisions HTTPS certificates automatically via Let's Encrypt ACME, with environment-adaptive TLS that supports both managed-platform and bare-metal deployment.

Tetris - Tetris with Leaderboard
Full-stack Tetris with a vanilla JS engine with DOM-based rendering and a requestAnimationFrame game loop and a decoupled Go backend for score persistence, a leaderboard with real-time search, and Jest testing boundary conditions, consecutive and non-consecutive clears, and scoring rules.

Thymynd - Decision-Support Concept Site
A mobile-responsive concept site for a personalised decision-making platform spanning education, social services, and justice sectors. Built in collaboration with the same workplace conflict specialist behind Unknot, as the first project in an ongoing partnership.
Contact
Currently taking on one new contract. The fastest way to reach me is the email below, I read everything within a day.
davidchoy.dev@gmail.com
LinkedIn