I design enterprise products and build their UI, from a working prototype to merged code.

Twelve years designing internal platforms, CRM and operations software. On Hanlun’s DSE practice platform I built the working Next.js prototype, then contributed frontend code to the production React and TypeScript apps through pull requests merged by the team’s engineers.

Production frontendShared components, Storybook stories and unit tests in Hanlun’s student and teacher apps
81 merged pull requestsMerged by the team’s engineers, February to October 2026
Working prototypeA Next.js app of the student and teacher views, before and alongside production
12+ years in product designSenior UI/UX Designer at Oursky since 2016

Design to code

How a new feature reached Hanlun’s production codebase, and which code lived where.

  1. MeDesignflows and screens in Figma
  2. MePrototypea working Next.js app, Cursor-assisted
  3. MeBuildUI and states as Storybook stories and in the apps
  4. MePull requestopened by me, with screenshots
  5. TeamReviewscreens reviewed in the thread
  6. EngineerMergeafter CI passes
PrototypeNext.js and React: one app, with the student and teacher views switched by URL. Behaviour gets tried here before it’s built for real.
ProductionReact on Vite with TypeScript: two apps sharing a component package and an API client generated from the backend’s schema. My pull requests landed here.
ReviewStorybook stories for the states, unit tests with logic changes, screens discussed in the pull request, and an engineer merging after CI.
This siteThe demos on these pages are reconstructions in this portfolio’s own React, with synthetic data. Hanlun’s code stays private.

Hiring for design engineering? Write to me.