Part
1
  |  
Seeing Like a Designer
  |  
Chapter
1

The Competence Tax

Why a rough interface makes people doubt the code they can't see
Reading Time
13
mins
BACK TO DESIGN FOR DEVELOPERS

You believe function and form get judged separately. Build the thing first, make it work, harden the edge cases — and the design can come later, once there's something worth dressing up. It's a reasonable belief. It's also wrong, and it's quietly costing you money on every product you've ever shipped.

Here's the problem. You can see your architecture. You know the retry logic is solid, the migrations are reversible, the auth is tight, the test suite is green. None of that is visible to the person deciding whether to trust you with their credit card. They land on your page, they get about four hundred milliseconds, and in that window they form a complete verdict on a product whose insides they will never inspect. They are not judging your code. They can't. They're judging the one artifact you've handed them — the interface — and silently extrapolating everything else from it.

That extrapolation is the whole game. A user who sees mismatched font sizes, three shades of almost-the-same gray, and buttons that don't quite line up does not think "the typography is rough." They think "this feels amateur," and then, without noticing they've done it, they decide your billing is probably flaky too.

Function and form are not judged separately — not by the people paying you

Engineers reason about software the way they build it: in layers. Data layer, logic layer, presentation layer. The presentation is the thin skin on top of the real work, so it feels safe to treat it as the last 5% — cosmetic, deferrable, a nice-to-have for when there's time.

Users do not have layers. They have one surface and a gut reaction to it. They will never read your code, never see your schema, never watch your deploy pipeline go green. The interface is not the skin on top of the product. To the user, the interface is the entire product — it's the only part of it that exists.

So when you defer design, you're not deferring the last 5%. You're shipping the only 5% they can see, in its roughest possible state, and asking them to infer competence from it.

To the user, the interface is not the skin on top of the product. It is the entire product — the only part of it that exists.

This is the trap, stated plainly: you think you're being judged on what the software does, so a rough UI feels like a forgivable cosmetic debt. But the people with the wallets can't evaluate what it does. They evaluate what they can see, and then they price everything else — the reliability, the security, the support, the staying power — off that single visible signal.

Framework · The Competence Tax · CT

Users price the quality of everything they cannot see — your code, your uptime, your security, your support — by the quality of the one thing they can: your interface. A cheap-looking UI is read as a cheap-feeling product, and the gap between how good your software actually is and how good it looks is a tax you pay on every conversion, every renewal, and every price you try to charge.

The Competence Tax is not a metaphor. It's a pricing mechanism. Two products with identical reliability, one polished and one rough, will not convert at the same rate or command the same price. The polished one collects a competence premium; the rough one pays the tax. You've been paying it. You just never saw the line item.

What the tax actually costs

Abstractions don't motivate anyone, so let me make this concrete. The tax comes due in at least five places, and you can feel each one in your own behavior as a user.

Trust. A stranger lands on a tool that asks for an API key or a card. They have no relationship with you, no reason to extend credit. The interface is their entire basis for deciding whether you're a real operation or a weekend project that will vanish in March. Rough edges read as "this might not be safe." Polish reads as "someone is minding the store."

Conversion. Every hesitation at the sign-up or checkout step is leakage. A form that looks slapped together makes people pause, and a pause near a payment field is where carts die. You don't need data you don't have to know this — notice your own flinch the next time a checkout page looks off. You close the tab. So do they.

Pricing power. This is the big one, and the one engineers feel most viscerally once they see it. The exact same feature set looks like a $9 tool in a rough interface and a $49 tool in a considered one. Polish is what lets you charge for the value you actually deliver instead of getting anchored to the bargain bin. A cheap-looking product gets cheap-product pricing, full stop.

Perceived reliability. Users genuinely believe — wrongly, but consistently — that a sloppy interface sits on top of sloppy infrastructure. The visual roughness becomes evidence of fragility. When a polished app shows a spinner, they wait. When a rough one shows a spinner, they assume it's broken and refresh.

Perceived security. Nowhere is the tax steeper than around money and data. A login screen, a billing form, a "connect your account" handshake — these are exactly where a stranger is most alert and least forgiving. If that surface looks improvised, they will not believe their data is safe behind it, no matter how good your actual security posture is.

Key takeaway

The Competence Tax is a real cost paid in five currencies: trust, conversion, pricing power, perceived reliability, and perceived security.

Notice the word in two of those: perceived. Your software can be genuinely, provably reliable and secure and still be perceived as neither, because perception is built entirely from the visible surface. You can win the engineering and lose the sale. That's the cruelty of the tax — it charges you for problems you don't actually have.

Run the experiment in your own head. Picture two checkout pages for the same product. One has crisp alignment, generous spacing, a confident layout, and a lock icon that looks like it belongs there. The other has a slightly squished form, two near-identical grays, and a submit button that sits a few pixels off from the field above it. Same payment processor behind both. Same encryption. You trust one with your card and you hesitate on the other, and you know exactly which is which. Your users run that same experiment, in half a second, every time.

The tax compounds where the stakes are highest

The Competence Tax is not flat across your app. It spikes at exactly the moments that matter most: the first screen, the sign-up form, the pricing page, and anything touching payment or personal data. A rough settings page costs you a little. A rough checkout costs you the sale. Spend your polish budget where the stakes are highest, not evenly.

Why "looks cheap" reads as "is cheap"

The mechanism behind all of this is not mysterious, and understanding it is what turns "design matters" from a platitude into something you can act on.

First impressions are fast, and they're sticky

People form an aesthetic judgment of an interface almost instantly — faster than they can read a single line of your copy. That snap verdict isn't idle. It becomes the lens through which everything afterward is interpreted. If the first impression is "this looks legit," your spinner becomes "it's working." If the first impression is "this looks sketchy," that same spinner becomes "it's frozen." You don't get a second first impression, and the first one colors all the data that follows.

The halo effect does the rest

There's a well-worn bias where one strongly perceived quality bleeds into unrelated ones. We assume attractive things are also competent, trustworthy, well-made — even when the traits have nothing to do with each other. Interfaces ride this hard. A clean, confident UI radiates a halo of competence over the parts the user can't assess, which is most of them. A rough UI radiates the opposite: a halo of doubt that lands on your reliability, your security, your support, your longevity.

This is the engine under the Competence Tax. The user takes the one signal they can read — how the thing looks — and lets it stand in for the ten signals they can't.

The user takes the one signal they can read and lets it stand in for the ten they can't.

Why engineers are uniquely blind to this

Here's the part that stings, and it's worth sitting with, because it's why this tax goes unpaid attention to for years.

You are the worst possible judge of your own interface, for three specific reasons.

First, you have total information. You know what every button does, where every link goes, what that ambiguous icon means. The interface never has to communicate anything to you because you already hold all of it in your head. A stranger holds none of it, and the UI is their only teacher.

Second, you're rewarded for the wrong thing. Your whole craft trains you to value what's underneath — the elegant query, the clean abstraction, the system that scales. That's correct for building software and useless for evaluating how it lands, because the people you're selling to can't see any of it.

Third, you've gone face-blind to your own product. You've looked at that dashboard ten thousand times. You literally cannot see it freshly anymore — the rough edges have become invisible to you through sheer repetition. The flaws a stranger clocks in half a second have been sanded smooth by your own familiarity.

✕ How you see your app
  • You know what every control does
  • You value the architecture underneath
  • You've gone blind to it from repetition
  • You judge it on whether it works
✓ How a stranger sees it
  • The UI is the only explanation they get
  • They can't see the architecture at all
  • They notice every rough edge instantly
  • They judge it on whether it looks legit

Put those together and you get an engineer who has shipped something genuinely good, cannot see why it isn't converting, and concludes the problem must be marketing or pricing or the algorithm — anywhere but the surface they've stopped being able to see. The first real design skill isn't taste. It's regaining the ability to look at your own work through a stranger's eyes. The rest of this book is partly a set of tools for forcing that fresh look on demand — the Squint Test in a few chapters is exactly that, a way to see your own hierarchy as a stranger does.

Where to pay the tax down cheapest first

The good news is the steep part of this curve is also the cheap part. You do not need to become a designer to stop bleeding. The first chunk of the Competence Tax comes off with a handful of mechanical fixes that require zero artistic judgment — and that's most of what this book is about.

Three areas give you the most credibility per hour, and you'll spend whole chapters on each.

Typography. The single loudest amateur signal isn't color — it's type. Too many sizes, sizes picked at random, weak hierarchy, lines of body text running too wide to read comfortably. Switching to a small fixed set of sizes from a ratio (the Type Scale, later on) and holding the line on it does more for perceived quality than any other single change. It's also pure mechanics — pick the set once, reuse it everywhere. No taste required.

A concrete version of "pick the set once": define your sizes as named constants and never type a raw number into a component again. Six steps from a single ratio is plenty for most apps.

:root {
  --text-xs: 0.79rem;
  --text-sm: 0.889rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.266rem;
  --text-2xl: 1.424rem;
}

The discipline isn't choosing good numbers — these are fine. The discipline is refusing to add a seventh. The moment a component reaches for a one-off 15px because a heading "felt a touch big," the scale is broken and the amateur signal is back. Constrain yourself to the set and the hierarchy looks deliberate for free.

Spacing. Inconsistent gaps are the second-loudest tell. A 13px gap here, 20px there, 7px somewhere else — each one reads as carelessness, and carelessness reads as "the code is careless too." Snapping every margin, padding, and gap to multiples of one base unit (the 8-Point Grid) makes a layout look composed instead of assembled, and again it's arithmetic, not art.

States. This one is invisible until a stranger hits it, and it's where engineers leak the most credibility without realizing. Your buttons probably have a default and a hover. Do they have a focus state, a disabled state, a loading state? Does the list have an empty state that isn't a blank rectangle, an error state that isn't a stack trace? Strangers find the gaps you never see because you only ever exercise the happy path. Designing all four states of every view (the Four States Rule) is most of the distance between "demo" and "product."

Key takeaway

The steepest, cheapest credibility wins are mechanical, not artistic: a fixed type scale, consistent spacing on a grid, and every state of every view actually designed.

Notice what's missing from that list: color palettes, custom illustration, brand identity, a clever logo. Those matter eventually, but they're far down the curve — high effort, low marginal credibility, and they demand the taste you don't have yet. Start where a stranger's doubt actually forms. Fix the type, fix the spacing, fix the states. You'll claw back most of the tax before you've made a single subjective aesthetic decision.

And taste does come — it compounds, in a loop this book calls the Taste Flywheel: you collect interfaces you admire, you ship, you critique, you repeat, and your eye sharpens with each turn. But you don't need to wait for the flywheel to spin up to stop overpaying today. The mechanical fixes are available right now, this week.

What to do Monday morning

Screenshot your first screen and judge it as a stranger

Take a clean screenshot of the very first screen a new user sees — landing page or post-login dashboard. Look at it for two seconds, then look away. Write the one-word verdict that flashed up: "legit" or "sketchy." That gut word is the Competence Tax talking. Be honest about which one it was.

List the three places a new user first decides if you're legit

Walk your own funnel as a stranger and name the three highest-stakes surfaces — almost always the first screen, the sign-up or login form, and the pricing or checkout page. These are where the tax spikes. Everything else can wait; these three cannot.

Count your type sizes on those three screens

Open dev tools and read off every distinct font-size in use. If you find more than five or six, you've found a top source of "looks cheap." You don't have to fix it today — just see the number. Seeing it is the point.

Audit the states of one critical component

Pick the most important interactive thing on those screens — usually the primary button or the main data list. Check it for all four states: default, hover, focus, disabled (for the button) or empty, loading, error, populated (for the list). Note every state that's missing. Missing states are silent tax.

Ship one credibility fix today

Pick the single cheapest win from what you found and ship it before end of day. Add a real focus ring. Give one empty list a proper empty state instead of a blank box. Replace one stack-trace error with a human sentence. One concrete fix to the visible surface, deployed today — that's the first dollar of tax you stop paying.

You can't show a stranger your architecture. You can only show them the surface — so make the surface tell the truth about how good the rest of it is.