How I work
A method, not a diagram.
I don't run every problem through the same rigid framework. This is the shape my thinking tends to take — adapted each time to what the problem actually needs.
- 01
Understand the problem
Start with the actual problem, not the requested feature. What is someone really trying to do, and why is it hard right now?
- 02
Clarify user & business intent
Name the user need and the business objective in the same breath. A design that serves one and ignores the other won't survive.
- 03
Map the workflow
Lay out entry points, stages, states, and transitions. The map usually reveals that the hard part isn't the screen — it's the space between screens.
- 04
Explore interaction models
Chat vs. staged, canvas vs. guided, default vs. custom, immediate vs. batched. Hold a few models in tension before committing to one.
- 05
Design system states & edge cases
The happy path is the easy 20%. Loading, success, failure, disabled, confirmations, warnings, recovery — that's where trust is won or lost.
- 06
Reconcile constraints & trade-offs
Catalog, geometry, AI reliability, generation cost, responsiveness, browser behaviour, dev effort. Every decision pays a price somewhere; name it.
- 07
Collaborate & validate
Figma, prototypes, copy, documented issues — shared with product and engineering. Be precise about what's proposed vs. agreed vs. built.
- 08
Learn from implementation & outcomes
Compare intent to what shipped. Audit the build. Where there's data, read it honestly; where there isn't, say so.
Decision stories
The method is only real in the decisions it produces.
Generate once, not on every tap
In Auto Design, generation has real cost and latency. Rather than regenerate after each selection, the flow stages choices and generates once from a confirmed action — trading instant previews for a clearer, cheaper journey.
See it in contextSeparate selecting from applying
In the Leap moodboard, upper cabinets, lower cabinets, and islands take finishes independently, and changes are batched before a single re-render — so people stay in control of an expensive operation.
Make failure legible
Across the AI systems work, a single spinner became per-design progress with explicit success and failure cards, and human-readable reasons — because an unexplained failure reads as a broken product.