Speed comes from removing the unnecessary,not from rushing the necessary.
design philosophy_
My workflow has one goal: as few steps as possible between a problem and a decision. I sketch before I prototype, research before I wireframe, and write before I polish. Every step has to earn its place, and anything that doesn't move the product forward gets cut.
The tools, rhythm, and principles behind how I work
Hover over any tool to see when and how it fits.
Figma · FigJam · Make
DESIGN + SYSTEMSVS Code
FRONT-END + CODEClaude + MCPs
CORE WORKFLOWMaze
RESEARCH + TESTINGNotion
DOCUMENTATIONGit / Vercel
DEPLOY + REVIEWThe rest of my stack
sprint rhythm_
A week in my workflow
Not every project follows this exactly, but the rhythm holds.
Align & plan
Review sprint goals, reread research notes from the previous week, sync with the team. Write a rough brief before touching any design file. Surface risks early, before they cost a sprint.
Concept & structure
Stitch for IA sketches and early flows. Sometimes generate an HTML preview to align with engineering before I open Figma. Gets the interaction model right first.
Design & system work
Deep Figma sessions. Token audits, component states, pattern consistency. If something doesn't fit the system, I fix the system before I ship the exception.
Prototype & validate
Build interactive prototypes, test with real users or internal stakeholders. Deploy to Vercel for async review. No meeting required to get feedback.
Handoff & document
Write the dev handoff spec. Document decisions, not just outcomes. Capture what changed and why so the next sprint starts with context, not confusion.
principles_
How I think about work
What I default to, and what I never compromise on.
Scope what's out, not just what's in
A sprint brief that only lists what's being built invites scope creep. I write down what we're explicitly not touching this cycle, and why.
Deploy before demo
Feedback on a Figma file is feedback on a Figma file. I push to a live preview before showing anyone, so the reaction is to the real thing.
One decision, one place
If a call only exists in a Slack thread or someone's memory, it didn't happen. Every decision gets written down where the next person building on it will actually look.
Async by default, meetings by exception
Reviews happen on a deployed link with written comments. A live meeting is reserved for something that genuinely needs a conversation, not a status update.
Every exception gets logged, not just patched
When a screen needs to break the system, that's not a quiet one-off. It's a ticket, so the system either absorbs it next cycle or the exception stays visible.
AI handles research and docs, never the design itself
Claude and MCPs speed up synthesis, notes, and specs - the parts that are about words, not pixels. Every interface, flow, and visual decision stays mine, start to finish.
The retro happens even when nothing broke
A clean sprint still gets fifteen minutes of what I'd do differently. Postmortems aren't just for fires.