Close the gaps in the design
I review the flow before implementation and identify the loading, empty, error and success states that static screens leave open. Missing decisions are resolved with the design or product owner.

REACT FRONTEND · PRODUCT TEAMS + AGENCIES
I build responsive React and TypeScript interfaces for teams that already have a product direction but need someone to own the interaction details, component work and browser behaviour.
I review the flow before implementation and identify the loading, empty, error and success states that static screens leave open. Missing decisions are resolved with the design or product owner.
I implement responsive React and TypeScript components using the existing design system where one exists. Repeated patterns share the same spacing, type, states and behaviour.
I connect the interface to its data and cover validation, permissions and failure states. The interaction is checked with realistic content rather than only the cleanest design example.
I check keyboard use, screen sizes and browser behaviour, and add automated browser tests where they protect important journeys. The review happens in the working build.
04 / REACT FRONTEND DEVELOPMENT
THE HANDOFF ENDS WHENWORKS IN THE BROWSER.
The final decisions often appear during implementation. Keeping design judgement close to the code means those details can be resolved without weakening the interface.
Design · Frontend · Full-Stack
A bilingual web product with a 23-step planning flow, proportional budget logic and production browser checks.
Read case studyProduct Design · Full-Stack
A social product and browser-based pixel editor built from reusable interface patterns across discovery, creation and sharing.
Read case studyUX Research · Product Design · Full-Stack
An Astro and React product backed by Supabase, with accessibility checks and automated browser tests around important paths.
Read case study07 / CONTACT