I've been designing software professionally for over 15 years, and for almost all of those years, I did it exactly the wrong way.

In 2013, I created prototypes in Rails because it was easier to evaluate if we were making good decisions. In 2014, I made hand-coded websites since they were simple to ship and maintain. In 2016, I co-built a weather web app that eventually became a proper iOS app for the fun of it. In 2021, I finally learned how to design products in Figma. And then I worked at Figma for three and a half years, helping to launch a bunch of awesome creative tools for designers and developers.

For most of that time, I rarely embraced anything trendy in design at all. When Flash was big, I was doing HTML. When people were busy designing software in Photoshop, I was hacking the web. When Sketch and InVision were hot, I spent my days with chalkboard sketches and Sublime Text. Instead of designing mobile apps in Figma, I just worked directly in Xcode and Android Studio.

I'm not a contrarian on purpose, but I never saw the point of chasing after the design tools de jour because they're popular, or because someone on the Internet said they were the right way to do something.

I’ve always been focused on one simple goal: build useful stuff. When you can imagine something, design it, build it, evaluate it, and ship it yourself, you are unstoppable as a creative person. But that point of view made me a weirdo designer with an uncommon philosophy and skillset.

My job at Figma was the closest I ever got to the mainstream design zeitgeist, and from that experience, I learned the deepest depths about corporate software development. It helped me appreciate the coordination challenges and process overhead of large enterprises, and I gained a real understanding of why the industry firmly divided design and development into separate camps.

To be honest, I always felt a little uncomfortable about "drawing pictures of software" as a job, and the devout adoption of tools like Figma or Sketch as the only way to design. For rapid exploration and divergent thinking, those products are amazing and still essential. But when you’re ready to execute, why spend so much time fussing around with a representation of a thing, when you could just work on building the actual thing?

Fast forward to 2026, and the recent advances in AI tooling have made it dramatically easier for non-technical designers (or anyone) to build real working products. Suddenly the zeitgeist has crash-landed straight into my wrong way approach. “Should designers code?” is so back! The wrong way is finally right.

The problem is: nobody has any idea how this new process is supposed to work. Designers are hanging out in Terminals and engineers are vibe coding designs. It’s upsetting the whole careful balance that the entire industry had spent a decade or more establishing.

Our prior workflow…

  • designers draw pictures of screens.
  • designers give the pictures to developers.
  • developers build the screens.
  • everyone argues for a hot minute.
  • ~ 1,500 Slack threads later ~
  • eventually we ship something that works.

…has now been compressed into:

  • everybody makes AI slop prototypes, which are 75% good but 25% annoyingly shitty.
  • nobody is quite sure what to do with them, but we’d better just make a call and ship something quickly to keep up with trends and justify using all these Claude Max tokens.
  • also we can’t collaborate on making the slop prototypes better, because they’re a bunch of random bad HTML files.
  • but anyway: who cares! ship! Do more with less! AI is the answer! (It’s the answer, right?)

as Karri wisely pointed out, this whole craze is speedrunning the prototyping and building part of the process, but often skipping over the “what to build??” part.

And the latter thing is what matters. Remember that my personal goal is build useful stuff, not just build stuff. The usefulness is the whole point.

Building some random software is pretty easy, and the cost of that is rapidly trending lower. Building great software that solves a real problem—and that real people actually enjoy using—remains an elusive sneaky bastard. I don’t see AI solving that, because it’s a human problem more than a technical one. But it can certainly help us find the answers faster.

I believe that eventually, the net result of all of this will be positive. Designers working directly with the real materials of software? Great. Broadening who’s able to demonstrate ideas with working code? Great. Accelerating the build process so we can prove or disprove ideas with less effort? Great.

We’ll just have to figure out how to make it all work in a way that’s sane and considered. My current advice is: slow the hell down and make sure you’re investing time on impactful things. Typing a prompt into a slot machine and hoping for the best does not mean you’ve actually solved a meaningful problem. That's what Design (with a capital D) is all about.