Product front-ends
Interfaces that hold up on a mid-range phone on a bad connection. Semantic HTML, real focus states, motion that respects reduced-motion.
- React
- Next.js
- TypeScript
About
I design and build web products end to end — from the physics of an animation to the query behind it. I care about interfaces that feel right, not just render.
I build things for the web and I like the parts other people skip. Not just the layout that looks good in a screenshot, but the frame budget behind it, the reason a spring feels bouncy, what happens when the database is cold.
Most of my work sits between design and engineering. That means I can tell you not just that a transition works, but why it works, and what it costs. When I pick an easing curve I know how long it takes to settle and how far it overshoots — because I built the tool that measures it.
Outside of client work I maintain open source, write about the things I get wrong, and try to leave codebases calmer than I found them.
What I do
Most projects land in one of these. Each one is a different reason to hire me, and each one comes with the unglamorous parts included.
Interfaces that hold up on a mid-range phone on a bad connection. Semantic HTML, real focus states, motion that respects reduced-motion.
Finding the three things costing you the most and fixing them. Bundle size, layout thrash, waterfalls, and the animations that quietly force a repaint every frame.
Animation that is measured rather than guessed. Settle time, overshoot and onset latency computed from the actual spring, then exported as CSS you can ship.
Choosing the stack, the shape of the data and the boring parts nobody demos. Architecture that a team can still read six months later.
Skills
Levels are honest. A 75 means I have shipped with it and can debug it, not that I could answer a quiz about it.
Contact
Tell me what you're building and what's in the way. I reply to everything, usually within a day.