Skip to content

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.

  1. 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?

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 06

    Reconcile constraints & trade-offs

    Catalog, geometry, AI reliability, generation cost, responsiveness, browser behaviour, dev effort. Every decision pays a price somewhere; name it.

  7. 07

    Collaborate & validate

    Figma, prototypes, copy, documented issues — shared with product and engineering. Be precise about what's proposed vs. agreed vs. built.

  8. 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 context

Separate 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.