UX Principles Every Engineer Should Internalize

2024-11-10  ·  5 min read

← Back to Writing

I came to UX from engineering. For years I thought design was someone else's job — I'd implement whatever the mockup said. Then I started shipping products without a dedicated designer and had to figure it out.

Here's what I wish someone had told me.

Cognitive Load Is the Enemy

Every decision a user has to make costs them. Every piece of information they have to parse costs them. Your job as a builder is to spend that budget wisely.

Ask yourself for every UI element: is this earning its place? If you can remove it and the core function still works, remove it.

Progressive Disclosure

Don't show users everything at once. Show them what they need for the current step. Advanced options, edge cases, detailed settings — hide them until they're relevant.

This isn't about hiding features. It's about respecting the user's attention.

Error Messages Are Features

Most engineers treat error messages as an afterthought. They're actually one of the highest-leverage places in your product.

A good error message:

  • Tells the user what went wrong (plainly)
  • Tells them why (briefly)
  • Tells them what to do next (specifically)

"An error occurred" is not a feature. "Your session expired — sign in again to continue" is.

Feedback Loops

Users need to know their actions had an effect. This sounds obvious but it's easy to miss. Loading states, success confirmations, optimistic updates — these aren't polish, they're communication.

When I added a simple loading spinner to a form submission in one of our tools, support tickets about "the form isn't working" dropped by 60%.

Design for Your Worst Day

Your users will be tired, distracted, in a hurry, or stressed when they use your product. Design for that. Don't design for the attentive, patient user sitting at a clean desk. Design for the person on a phone, in a taxi, trying to get something done in 30 seconds.

If your product works in those conditions, it'll work in all conditions.