The designer-who-codes debate is tired. Here's the real reason I ship what I design — and what I've learned from being on both sides of the Figma handoff.
Every time a designer hands a Figma file to an engineer and walks away, something is lost. Microstates that weren't specced. Edge cases that weren't considered. Animations that seemed obvious in the designer's head but were never documented. The engineer makes judgment calls. Reasonable ones, usually. But not the designer's judgment calls. The product that ships is a translation of the design, not the design.
Not because I wanted to be a full-stack engineer. I have no interest in database schemas or DevOps. But the last mile — the React components, the interactions, the CSS that makes something feel right — that's still design work. It's just design work in a different medium.
Code is the only design medium where what you make is exactly what ships. Every other output is an instruction set for someone else to interpret.
From being on both sides of the file
Designing with the constraint of implementation makes you a better designer. When I know what a smooth animation costs at 60fps versus a janky one at 30fps, I make different decisions in Figma. When I know that this layout will need three breakpoints, I design with those in mind from the start. The constraint doesn't limit creativity — it focuses it. Designers who've never built often design things that are beautiful and impractical in ways that could have been avoided.
The first time I tried to implement one of my own hover animations, I rewrote the Figma file three times. Each version was better.
[THINKING]The first time I tried to implement one of my own hover animations, I rewrote the Figma file three times. Each version was better.
[THINKING]The best designs I've ever built were the ones where the designer and engineer were the same person having an argument with themselves.
When I'm in a room with engineers and I can say 'let's do this in a CSS variable instead of hardcoding it' or 'that animation can be done in 8 lines of Motion' — the dynamic changes. I'm not an outsider handing down a spec anymore. I'm a collaborator speaking the same language. That changes what's possible. Engineers suggest interactions they would have assumed were too expensive. Design reviews become dialogues. The product gets better because the friction went away.
Designer and builder — I prototype to learn what's possible, then refine until it ships. Systems-thinking, hands-on builds, and interfaces people remember.