I used to think UX was the designer's problem.
My job was to build the thing. Their job was to make it look good. Somewhere in that hand-off, the user experience would just... happen.
It doesn't work that way.
UX is a systems problem
Most UX failures aren't aesthetic. They're architectural. A form that clears on error. A loading state that gives no feedback. An error message that says "Something went wrong" without any path forward.
These aren't design decisions — they're engineering decisions that have design consequences. And developers make them constantly, often without realizing it.
The principle I keep coming back to
Reduce distance. That's it.
Distance between what a user wants to do and what they can do. Distance between an error and understanding what caused it. Distance between intent and outcome.
Every interaction that forces a user to pause and think is distance. Every ambiguous label is distance. Every loading spinner with no ETA is distance.
What this looks like in practice
When I'm building a form, I'm thinking: what's the most likely mistake a user will make here? How do I prevent it? If they make it anyway, how do I help them recover without losing their work?
When I'm building an API error response, I'm thinking: who will see this message? A developer? An end user? Both? What do they need to know to take the next step?
UX isn't a layer you add at the end. It's the question you ask at the beginning: what is someone trying to accomplish, and what's in their way?
Answer that honestly, and the rest follows.