Building frontend systems that ship quickly and still make sense later.
I take messy product goals and turn them into frontend systems that are clear to build on, easy to maintain, and practical for teams that need to keep shipping.
I'm a Frontend Architect and engineering leader with 12+ years of experience building and scaling web applications across enterprise, SaaS, and AI-heavy products.
My work sits at the intersection of frontend architecture, rendering strategy, and team leadership: choosing the right Next.js model per route, shaping design systems that survive across product lines, and setting standards people actually use.
Lately that has included conversational interfaces, structured outputs, and the review habits needed to keep AI-assisted code honest.
Products where rendering choices, system boundaries, and team habits were part of the design from the start.
Turned opaque AI research into a workflow with live state, manual checkpoints, reruns, citations, and exportable reports.
A guided multi-agent research assistant. You give it a goal, a planner breaks the work into stages, a research router grounds each step in web or reasoning, and a writer/critic loop turns the result into a cited report on local Ollama inference.






Built a product studio that moves from brief to blueprint, through deterministic UX checks, and out to exportable assets.
A browser-based UX studio: turn a brief into a structured page blueprint, check it against WCAG and readability rules, and export the result without leaving the tab.





Turned theme tokens, structured sections, page ordering, and responsive preview into a site-builder loop that hangs together.
A schema-driven website builder. Set a theme once, drop in structured sections — hero, FAQ, testimonials, CTA — drag them into order, and preview what ships on desktop, tablet, and mobile.












Bring the thorny frontend thing. I'll bring a sharper path to ship it.
Architecture, product UX, AI-native workflows, performance, design systems. The fun usually starts where the ticket gets vague.






