vibe coding is just engineering with the friction removed
ai didn't replace engineering. it collapsed the typing layer around it. here's a five-question test for whether you're still doing the engineering part.
most takes on vibe coding are dumb in the same direction. one camp says ai writes your code while you nap. that's fantasy. the other says real engineers don't need ai. that's denial. neither survives contact with shipping something you actually have to maintain.
the more accurate frame is boring: vibe coding is engineering with most of the implementation friction removed.
friction was never the engineering. it was the work around the engineering. the typescript config you've written fifty times. the dockerfile boilerplate. the orm gymnastics to express a query you already had in your head. the same six files you reach for at the start of every project before you write a single line that matters.
that layer doesn't disappear. it collapses. days become minutes. a week of yak-shaving becomes a single prompt. the cognitive cost of "i know how to do this but i don't want to" drops to roughly zero.
what's left is the part that always mattered. deciding what to build. picking the schema. owning the failure modes. knowing which approach beats which and why. being the person paged when something cracks at 2am.
a quick test for whether you're still engineering
look at the code you just had an ai generate. answer these without hesitating:
- what does it do, and why is this the right way to do it here?
- which part breaks first under load, and roughly when?
- where can it leak, hang, deadlock, or eat memory?
- what happens if you delete the third line?
- what does the rollback look like if it ships and explodes?
yes to all of them? you're engineering. the typing just got faster.
no to any of them? you're not engineering. you're rolling dice with somebody else's autocomplete, and you'll find out the hard way the first time it hits production.
the two wrong camps
people who claim vibe coding replaces engineering haven't shipped anything they have to maintain. give them six months of running their own code under real users and they'll figure it out fast.
people who claim vibe coding isn't engineering tend to think writing boilerplate is the engineering. that has always been a tell.
what actually changed, operationally
- the dockerfile i used to procrastinate for a week now happens in two minutes
- the next.js + tailwind + postgres stack i used to dread setting up takes an evening
- the postgres migration i used to put off because of row-lock anxiety happens after one prompt
- the systemd timer i used to copy from an old project gets generated correctly the first time
- the nginx vhost i used to forget half the headers on now ships with all of them
none of that is ai writing my software. it's the typing layer collapsing. the engineering is the same as it ever was. picking what to do. why to do it. how it fits. what to do when it breaks. just less padded.
if you've shipped real things you have to maintain, you already know.
if you haven't, the test above is the only honest tell.
— d.