Everyone’s been talking about vibe coding lately. I’ve been doing it myself. Launched two projects. Okutaç and Caccepted. It’s the kind of work where you don’t analyze, architect, or overthink. You start simple. You come up with features. You poke at the product until it makes sense. You skip the logs, skip the diagrams, and rely on repetition and intuition until things start behaving the way they should. That’s my understanding of vibe coding.
And managers have been doing it forever.
Back when I was overseeing a trading platform migration, I spent…
Everyone’s been talking about vibe coding lately. I’ve been doing it myself. Launched two projects. Okutaç and Caccepted. It’s the kind of work where you don’t analyze, architect, or overthink. You start simple. You come up with features. You poke at the product until it makes sense. You skip the logs, skip the diagrams, and rely on repetition and intuition until things start behaving the way they should. That’s my understanding of vibe coding.
And managers have been doing it forever.
Back when I was overseeing a trading platform migration, I spent days testing the exact scenarios our customers had failed. We were rolling out the new infrastructure gradually, and I wanted to catch issues before they multiplied. Each morning, I’d go through the logs, find the failed transactions, and pull them directly from the system. Then I’d replay them one by one. I’d placed small buy and sell orders, watching how the system handled them, and comparing the outcomes with what we expected to happen.
I was tracing behavior. Taking a look at what broke, when it broke, and under what conditions. Some failures were easy to reproduce, others only appeared after the third or fourth transaction. Sometimes the data itself gave it away, a timestamp out of sync, a delayed confirmation, an incomplete status update or card type that we didn’t handle properly.
I wasn’t fixing code. I was catching problems before it multiplied. It was to surface the edge cases the system didn’t yet address. To see where it slipped, where logic that looked correct on paper failed under real use cases.
That’s vibe coding in its purest form.
Before our data discovery tool launch, I’d click through the UI myself, not to test features, but to see if they made sense. Did the flow feel natural? Did the interface tell the truth about what was happening underneath? Before migrations, I’d make notes on what felt wrong long before we had metrics or incidents to confirm it.
After seeing enough systems fail, you start building pattern recognition. You have your sixth sense. You know what failure feels like before it shows up in the logs and metrics.
That’s again vibe coding, no?
It’s the same cycle in every organization. A new feature is requested. The developer builds it. The manager tests it. The focus is on behavior, not implementation. Something breaks. The manager reports the issue. The developer fixes it, handles edge cases, and pushes again. The manager tests the flow once more. Sometimes a new problem appears in a place no one has looked before. When it finally holds, the feature goes live. Metrics are monitored. New issues show up. The loop starts again.
Build. Test. Adjust. Repeat. That’s vibe coding.
And we as managers have been doing this for a long time. We scan the surface, notice what feels off, and connect dots that don’t show up in dashboards. It’s not science. It’s repetition. After enough launches, outages, and recoveries, you start recognizing patterns. Vibe coding is what happens when experience turns into instinct. It works because you’ve been in the trenches. You’ve seen systems fail, fixed them, and learned what failure looks like before it happens. That’s why it feels off when someone without a technical background tries to do it. They see the interface, not the failure path. They can’t sense where the system might get choked. That sense only comes from time spent inside the problem, not around it. That’s vibe coding.