I would blacklist any developer doing this instantly. Not even give them a second chance.
And if the company where he works for doesnt fire him, i would look for another company.
The problem isnt that they use AI, its how they use it. Proofreading and checking is a mandatory task here. And even if the AI does tell something that is true, and works, i would still check whether it is the proper solution. Its extremely easy to get extremely bloated code, and any line of code in a program, is a line that is vulnerable to problems.
This is why microsoft is going the bad direction, they judge based on lines of code these days. Which is the absolute most horrible measurement you can take. It means you reward inefficient code. Its that linux still doesnt get anywhere near the support windows has, or I would already have changed (and seriously, any apple OS is a joke not to be taken serious).
And you can see that they are already using it. The most extreme stupid bugs are being introduced, because no one is thinking whether a certain piece of code is made well. If its broken, they just let AI build a function to âfixâ erronous output.
Vibe coding is not only bad, its a security hazard.
We had someone like that at my work before. And im glad he got fired because of it, but even a year later, we still face his bullshit code where we usualy just end up having to rewrite it. Or spend a significant amount of time figuring out what the AI connected together. With 0 logic.
There were blocks in class A, that said that B had do an action with class C, using a helper of D. And its all nested functions like A(B(C(D))). Its unreadable garbage.
Adding to that, each function was validating the same parameters over and over again⌠Type hinting was obviously something the AI couldnt do. As when asked to do so, it created php functions like:
function thisIsGarbage(mixed $essentialyThis, mixed $argumentThatIsPropertyOfThis, array $moreArguments) : mixed {
$essentialyThis->setSomeValue('blabla');
return b::functionToDoSomething($essentialyThis, $argumentThatIsPropertyOfThis, $moreArguments);
}
and in b functionToDoSomething would call something like:
return c::ohIForgotIAlsoNeededThisFunction($essentialyThis, $argumentThatIsPropertyOfThis, $moreArguments, $butNowAnother);
And he didnt even notice the mixed typing being obsolete. and that class B never used 2 of the arguments.