Work
A selection of projects where I owned design engineering end-to-end — from systems and architecture decisions through to shipped, measurable outcomes.
Accessible defaults → scalable systems
Semantic-first components carry accessibility forward at scale.
System constraints → runtime quality
When the system constrains what ships, the frontend stays lean.
Clear boundaries → useful automation
AI helps most at repetitive operational bottlenecks, not as a feature.
Content structure → interaction quality
Wrong content model means the interaction layer fights it forever.
Motion that explains → without excluding
Every transition has to stay predictable for all users.
Fast pages → content discipline
Payload shape, caching, and hydration all start with content structure.