About

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.

8+
Years shipping webFrom early-stage products to enterprise surfaces.
40+
Launches & refactorsPerformance, a11y, and DX kept center stage.
Remote
EU / US-friendly hoursClear async updates and overlap when it matters.

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

Tell me what you're building next.

Share the product, stack, and timeline — I'll reply with availability, fit, and sensible next steps.

Get in touch