On reducing complexity

2025-03-23

Traditional team structures treat designers and engineers like mayo: immiscible liquids coming together for a pragmatic and yummy cause. In due time, they seperate into enclaves.

Yet both roles center on reducing complexity. User experience (UX) and developer experience (DX) are all about making it easier to work a system.

The recent convergence of UX design and frontend engineering has been really successful. You standardize the language (Figma + HTML -> HTML), simplify the product development cycle, and reduce shipping time. 37Signals, Vercel, and most YC-backed startups do this.

But there's so much more to learn! Frontend engineering is a subset of web development, which is a subset of software design. Plus, modern frontend is mostly composed of 1) framework markup or 2) business logic. Legendary complexity wars have been fought in other domains like networking/OS/PL.

Designers should read A Philosophy of Software Design. Engineers should read The Design of Everyday things. Better yet, they should learn to do each other's jobs.