Taste is triage
Taste is triage. That won’t make sense for a while, so hold onto it.
My background is graphic design. I spent fifteen years talking my way into tech with no plan and no permission, going with whatever felt right, and I’ve been vibe coding for real that whole time, which for me means feeling my way through the code. I just didn’t have the word until somebody else coined it, and by then it meant something else.
So my career is closely tied to this topic, and so is my future. Probably yours too. This is how I lost the thing that got me into this industry, and how I got it back, and it starts with how I got in.
The method
I learned to code by throwing myself in, like a lot of people did, with no computer science degree. It was the classic loop: open the file, change the value, refresh, and see how that feels. Then change it again. I scraped the forums (remember when you had to actually read forums?) and came back to things months later. That was the entire method, and it still mostly is.
It got me my first job in tech. I ditched my thesis to go code the website instead.
But feeling your way only holds up if you can say why it felt right. Somebody taught me that, and he wasn’t gentle about it.
The professor
I had a professor who ran design critiques the way they always run — everyone standing around each other’s work, ego ever-present, trying not to cry while you give each other good and bad feedback. Somebody would say they liked something, or didn’t, and he would stop them cold.
“A cow can like something. Tell me why. Or why not.”
I love cows. I’m a vegan, but cows can’t tell you why.
Half the room couldn’t stand him. I was the other half.
Liking is free. The value is in being able to interrogate your own feelings, and if you can’t do that, what’s the point? That question is the job, and for a while I could answer it, right up until the answer stopped counting.
The loss
I started in passion, moved into profit, and have been trying to find the passion ever since.
Then the job got serious. The clients got real, and so did the budgets and the consequences. There’s a brief, a scope and a spec, and to be honest, that is design, working within constraints and accountable to someone who isn’t you. But that plan serves somebody else’s satisfaction, the client’s or the user’s, and it made me justify every choice on function and data. That’s exactly where feel goes to die.
So I stopped saying things like “because it felt right” or “I like it,” because neither is defensible in a status meeting. I thought that meant I’d grown up. What I’d actually done was trade the part I loved for the part I could bill. Feeling your way costs a week you can’t charge for, so the brief, the scope and the sign-off win every time.
That’s the part that stings, because it isn’t what most of us got into this for. But the industry changed underneath all of it.
The return
Design had been turning into a commodity for years. Then the machine arrived, and the cost of a wrong guess collapsed.
Generation got cheap, and so did experimentation. A bad idea used to cost me a week; now it costs an evening. I can have five things running in parallel, and the job becomes picking the one that’s least wrong.
Yes, it’s faster, but that isn’t the part I care about. What I got back is permission to fiddle: refresh, look, tweak, throw it away. That used to cost a week I couldn’t bill, so it needed approval, and it never got it. Now it costs an evening, so nobody has to approve it. It’s the same thing I did fifteen years ago, familiar and fun.
The risk is real, though. I ship to production, and somebody has to be able to stand behind that code. Quality is legally binding, and pretending otherwise is how people get hurt.
The one thing the machine didn’t touch is human attention. The work needs more of it now, not less, and that’s the scarce resource. I can’t read every diff, because there are too many arriving too fast, so I stopped trying and went back to feeling. Not instead of judgment — feeling is how I decide where to place my attention.
Taste is triage.
The word grew up
Right about then, somebody handed me a word for it: vibe coding.
Andrej Karpathy coined it in February 2025, and what he meant was surrender. His words: “fully give in to the vibes, embrace exponentials, and forget that the code even exists.”
By that definition, it was never what I do. I’m not reading every line, no, but I read the results, and I own the outcome because I have to. Working on my own site from the couch is one thing. Shipping for somebody else is another, and I need to know what I’m shipping.
Now the word has been replaced by something else entirely, agentic engineering. You orchestrate and oversee, write the spec, inspect the diffs and judge the quality. It’s producer to director, and there’s a craft in that. It’s also the job I’ve been describing this whole time. I didn’t catch up to the word. The word caught up to me.
That’s surrender to craft in eighteen months. It took me fifteen years to make the same trip.
And the argument now is whether this is real engineering or confident AI slop. I recognise the question, because I asked it about myself for a decade. That looks good, but is it good? I’m enjoying this, but should I stop?
The thing I built
I asked that so often I ended up building something to answer it. I wanted to call it Jennifer, with a G, as in gen AI, but my manager’s name is Jennifer. She thought it was clever, but there could only be one Jennifer on the team. So: Genie.
It’s a family of agents, each with a job. One audits the site, one reads the competitors, one drafts the sitemap. Genie runs them in order and carries what each one learned into the next. The orchestration is the handoff, not the work. On one engagement, that came back as thirty-five pages audited and twenty-seven scored opportunities.
I built it twice. The first version I hand-built in n8n, where you drag and drop and wire boxes together on a canvas. Every node was mine, and I controlled each step, but I hit the edge of what it could reach constantly.
Then I moved it onto Claude, into markdown files and runner scripts, where you write what you want in plain language, and things I’d been stuck on for months opened up. I could express anything. I just couldn’t watch it happen anymore. That’s the trade. I lost the step-by-step, and what I got back was reach, and the feel. It’s the same trade I made going professional, run backwards. That time I gave up the feel and kept the control. This time I gave up the control and the feel came back.
The only question I asked the whole way through was whether it felt too complex. Do I like this? Why? It’s the professor’s question, pointed at my own work. When it’s right, I can answer it, because it’s repeatable, the next person gets the same result I did, and I didn’t have to be in the room.
The complexity never went away. It moved into the background, and I stopped trying to control that beast. I trust it to hold the complexity, so I can own the judgment. (The longer version of that story is in Building Genie changed me.)
The day it was wrong
The client was a deals site. Cheap offers, stacked on top of each other, and you’re expected to scroll and fill your basket.
The audit came back sure of itself, and it convinced me. I agreed with it, even though I couldn’t have told you why it was right.
Number one on the list was to clean up the deal cards, with less clutter and more room around the price. It was reasonable, and you’d have signed off on it too.
But they had already run that test, and it lost. Giving the cards room to breathe cut the deals on screen from three to one and a half. Every number in that audit was right, and the recommendation was backwards. It scored how one deal looks, and they get paid on how many you add.
I could have told it that. I knew their business, and we’d heard it in the interviews. But it arrived as a number, and once something has a number on it, I stop asking why. I did it to myself again not long after, claiming a hundred percent coverage in my own notes. It was thirty-four.
I caught it out loud, in the room, not on my couch, and saying it to the person paying for it is a different kind of attention. That’s what placing attention with intention costs. If you don’t spend it on purpose, you don’t spend it.
Which drops me right back on the question I still hadn’t answered.
When to stop
So where do I spend it? That’s the same question as when to stop. Is it when the ticket closes, or when the thing is done? And what is done? Usually one feature reveals five more, and yes-and never ends.
So I borrowed a rule from somewhere else entirely, from Coco Chanel: before you leave the house, take one thing off. (I credited Donatella Versace for years. My wife laughs at me, because Donatella does the exact opposite.)
That’s the whole answer. Requirements only ever add, and taste is the only thing that subtracts, or decides what waits. That audit came back with twenty-seven scored opportunities, and the job was never to do all of them. It was to take things off.
When I gave this as a talk, we were told to strip the slides, so that was my one thing off. I did add one thing, a teleprompter to deliver it from. There are a hundred of them, but none were shaped like this talk, so I made one that was, that week, for that talk. It was vibe coded, obviously, in the same loop. Does this feel too complex? Trim that, add that affordance. When was it done? When it felt right.
It isn’t new. It just fits, and what I got back isn’t better notes. It’s that I was looking at the room more than at my phone. That’s the argument, in my hand, and I changed it again in the Uber home.
Taste is triage
You can’t read every line anymore. Nobody can. So you feel your way, and you judge the output, and whether that comes out as craft or as AI slop comes down to one thing: whether you can say why. Why did I remove this? Why does this work?
A cow can like something.
You’re not a cow.
That’s the job now.
(The part I couldn’t answer is in Numbers travel. Arguments don’t..)
This is the thinking I’m putting out in the open as I work through it. If it’s the kind of argument you want to follow, come along.
