I'm a designer working where design, code, and AI meet.
Featured
When making something is nearly free, the scarce skill becomes knowing what’s worth building and being able to say why. A fifteen-year arc from graphic design to agent experience, which turned out to be the same story as vibe coding.
An audit came back sure of itself, every number in it was correct, and its first recommendation was backwards. Three times I lost the reasoning behind a handoff, and none of them were caused by AI.
I’ve fallen into months-long traps over kerning and button states. The tell was swapping between ideas. The details still matter. Everything should be touched at least once.
I built something I still think is great, and it isn’t doing what I built it to do. I assumed changing the format would change the perception. Sometimes it’s flipped.
A quote I’ve reached for as long as I can remember, read next to the design spec. What passes, what lasts, and why my work is life written down that rhymes with design.
An AI flags the line before I send it, and I feel relief, then the part that stings. Almost twenty years of messages went out with nobody flagging anything. On the mindfulness pause that was already doing that job, and the rule I run so a second reader doesn’t quietly become a replacement.
An isolated Storybook environment powered by AI — one command to start. How I built a design layer on top of an agentic framework, and what I learned about operationalizing change in a service company where the best handoff is still a handoff.
How I built a unified token architecture, an AI-guarded lint pipeline, and a one-command dev loop that kept Figma, code, and AI tooling in sync across four brands, two themes, and two modalities, for a multi-display, multi-brand product platform.
A planning tool for a Fortune 100 company’s localization team, bringing scope, per-language schedules and team capacity into one place without flattening them.