Clarity in code, craft in every interaction
I partner with teams to turn complex requirements into maintainable front-ends: design systems, performance budgets, and UI that holds up in production — not just in mockups.
Whether you're shipping a new product surface or untangling a legacy app, I care about the interface people actually live in — load times, clarity, and code that the next developer won't dread opening.
Principles
What guides my work
Non-negotiables I bring to every engagement — so quality isn't a phase, it's the default.
Systems, not one-offs
Reusable patterns, tokens, and docs so the next feature doesn’t fight the last one.
Accessible by default
Keyboard, focus, motion preferences, and real content — not bolted-on audits.
Velocity with guardrails
Fast iteration with TypeScript, reviews, and performance budgets that stay honest.
Working style
How we'll work together
- Embedded with product and design — or tight async loops with clear written specs.
- PRs small enough to review; previews or Storybook so UI changes stay visible.
- Honest trade-offs: what ships now, what waits, and what we’ll revisit after launch.
“The best UI is the one teams can evolve without fear — documented, tested, and kind to the next person who opens the repo.”
— How I think about delivery