I can certainly understand why one of your libraries was bothering you if you’re merging 250,000 lines of AI generated code in a month.
now ask them to maintain the 250k lines, probably fine for rew more commits, but after that? Oh look, they left the company for the next ai-nonsense-startup.
deleted by creator
I hate how much I love this reply.
At the end of the day: IT-man return to monke. Please. Please?
Does their app need to be 250k lines? Who knows… definitely not them.
You made me wonder how many lines our product contains. Looks to be around 600k total right now. Granted, that’s just the front end. It includes comments, blank lines, and lines that are just brackets and such. Also includes some dev only code. So, far more bloated than the actual code. Excludes code from any external libraries we use though.
I don’t have an easy way to see how many lines our backend is. A large portion of the files aren’t for our front-end and I don’t feel like figuring it out. Couldn’t even tell you if it’s more or less code than the frontend.
I’d be extremely worried if someone added or re-wrote 250k lines of code in our code base in one month. We actually have regulations to follow.
Imagine if you asked your dev to explain their code and their response was “dunno mate, I di’n’t write it”.
Imagine trying to peer review that shit.
“Imma peer the fuck outta here”
M…maintain…? I don’t understand… Is that an AI command?
They’re going to take your job.
🤓📚🤚🦋 Is this an empathetic message?
I wonder why everyone hates CEOs
It’s always open season on ceos!!!
Orcas…?
They have a hard on for yachts. People are hopeful that rng hits a billionaire eventually.
And body knows it!!
The “CEO” looks like he is 12 - typically LinkedIn BS
Translated:
High-schoolers are even cheaper and easier to exploit than new grads, and if I don’t care if they know nothing as long as they can prop up our crappy app just long enough for me to sell the company, pocket a bunch of cash, get them all fired, and move on to my next
scamentrepreneurial venture while preaching to people about being an innovator and a job creator. Maintenance is for whichever sucker ends up holding the shit bag, but who cares? I’ve got mine.AI coding is just the latest spin on this age-old practice.
Omg his company sells one of those meeting notes bots
I’d bet everything I own that they leak sensitive information from some company within the next couple of months.
This product will 100% have more security holes than a sieve
… I’m starting to think I need to take up freelance pentesting
These MFs don’t even pay developers, what makes you think you’re going to hire an actual pentester
The secret is to sell the vulnerabilities in the black market
Or perform some huge insider trading with all the meetings details you stole.
Bro you have the wrong name
I guess it depends how legally I want to go about it—there’s always someone that will pay for the exploit details
Hell yeah fuck yeah send it brother, just be careful and don’t go after the little guys
At this point, those who rely on LLM to be a magic bullet deserves it.
… I’m starting to think I need to take up freelance pentesting
Is this before or after they hand that job off to AI? You know they’re gonna and then just complain when an actual expert finds 3000 holes per line of AI gen code.
These MFs don’t even pay developers, what makes you think you’re going to hire an actual pentester
Edit: oops I missed
“The worst possible situation is to have a non-programmer vibe code a large project that they intend to maintain. This would be the equivalent of giving a credit card to a child without first explaining the concept of debt.”” Vibe Code is Legacy Code
The crash out from AI when all this debt starts to catch up is going to be so massive, not just in terms of market losses for the rich, but literal lost ability to think critically among possibly an entire generation of people depending on how long the grifting can keep going.
but literal lost ability to think critically among possibly an entire generation of people depending on how long the grifting can keep going.
Eh, have some faith in today’s youth. They’re brighter than you give them credit for, if nothing else because they’ve got records of the experiences of other recent generations.
If I’m that kid I’m pulling in plenty of cash from some dipshit tech bro to fund my own goals or just fuck around and have fun while he gets legacy code that’s already out there and isn’t bright enough to figure out. Also, he’s in high school, there’s no real price he’ll pay when the scam comes undone, he’s just a kid.
They’re brighter than you give them credit for, if nothing else because they’ve got records of the experiences of other recent generations.
I’d like to think most people learn from history, but they clearly don’t.
Hah. History taught to them with what public education money?
Well I do have faith in the youth, its just the elder capitalists that are looking to exploit them I’m worried about. I’m worried there will be a point when taking the time to actually learn how things work will put someone at a disadvantage under capitalism because those who are willing to “vibe code” their way into jobs will have the advantage of stuff that works “right now” instead of working “well”, and the people doing the hiring and running the companies are all about “right now”.
Eh, have some faith in today’s youth. They’re brighter than you give them credit for, if nothing else because they’ve got records of the experiences of other recent generations.
Just because the records are there, doesn’t mean anyone is going to actually look at them.
How many generations ago was WWII? Seems like everyone already forgot the lessons from that one…
It’s going to be unthinkable. There were memes about managing legacy code but that was from people that at least knew what ‘objects’ and ‘functions’ were. This…this will be horrendous.
The crash out from AI when all this debt starts to catch up is going to be so massive, not just in terms of market losses for the rich, but literal lost ability to think critically among possibly an entire generation of people depending on how long the grifting can keep going.
It’s going to be catastrophic.
From my experience, being “good” at vibe coding is more about being unable to detect flaws in AI generated code rather than being able to code well. Add AI to the workflow of someone who actually understands scalability and maintenance and that won’t be able to get past a couple functions before they drop the AI.
Also, assuming this kid gets weekends off, he would be writing 12k lines of code each day. I don’t think the average programmer could even review that number of lines in a day, so there’s likely no actual supervision for what the kid is feeding into the codebase.
I’d estimate within four months the project will be impenetrable, and they’ll scrap the whole thing.
I, a 10x developer, can hit approve on at least 50k lines a day. 30k if you want me to also add a “LGTM” comment
Also, assuming this kid gets weekends off, he would be writing 12k lines of code each day. I don’t think the average programmer could even review that number of lines in a day
I usually estimate that it takes 1-2 hours of highly focused work to review 1k lines of code well (this is not even considering that this is AI-generated mess that probably requires a lot more attention). A typical developer is capable of ~6 hours of focused work per day (8-10 with a lot of caffeine). So no, according to my estimates at least there’s no way in hell this gets any review at all.
In what world? 1k lines is a lot… Even a few hundred can take hours if everything is unknown, code is legacy, and naming is bad.
Like if there is a line like this
memcpy(ptr, src, 4 * 6 * sizeof(real));
-
What’s that 4?
-
What’s that 6?
-
Is real a float? A double?? What are we copying, where, why???
This is a line I saw recently. 1k code is huge even if readable.
Ok, sure, for low-level C/C++ code with memory management and such it takes a lot longer than 2h per 1000 lines. For business logic in higher-level programming languages it’s usually fine.
-
250,000 lines of brand new legacy code nobody has ever thought about or understood? Good luck with that.
I believe that our combined “lines of code” “productivity” will soon reach an all time high.
I wonder if I can make some money off the demand for cleanup that will follow…
The code:
I used to think this is pretty much how games were really made when I was a tiny child. I couldn’t get over how many images needed to be created to get every possibility from every angle.
I used to think that a 3D game would need to have any possible still image pre-rendered and ready, just gotta show them all in the right order depending on user input.
I watched this awhile ago and it was very interesting how they made super small games for NES.
Typical CEO thinking number of lines of code is the same as productivity. What was the functionality of those 250k lines? Do arithmetic ops between two ints? Compute if an int is even?
To circumvent a peculiar bottleneck that randomly sprouted up just after their new hire arrived, it’s just 250k lines marking specific numbers odd or even.
Breaks as soon as they get to 250k+1
and thinks 0 is an even number.Why shouldn’t it think that 0 is an even number? It’s divisible by 2.
Damn, I was thinking of the primeness of 1 and trying to be clever, which demonstrated I wasn’t.
Actually, it’s just the first 250k prime numbers
int lollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolloollollollollollollollollollollollollollollollollollollollollollollollollollollollollol = 0;
Kid’s a wizard I tells ya!
I’ve been playing with cursor a bit at work (non-dev here - I’m a mechanical engineer writing custom tools for me & my team).
it might just be the way I use it, because my AI-positive boss seems to be more successful than me, but it’s… not great. cursor itself seems to have many problems following instructions. and then the code it comes up with… I’ve seen it make a complete replica of the original code when I asked it to add another scenario to the four already there, and mixed and matched between the two copies to access functions etc so that you couldn’t just remove one.
it’s definitely helped me a bit when I got stuck with a particular issue and didn’t know what API calls to be using, but in general… idk. I don’t have enough time with it yet, nor am I skilled enough to judge it properly, I think.
It’s not just you. Cursor is horrible.
So far, the only time AI seems to works well - and only sometimes - is as autocomplete for a single line. It does such a terrible job at generating larger chunks of code that you will spend more time correcting the problems than if you had written it yourself or used the template-based features of a half-decent IDE. It doesn’t matter which LLM you use, they are all bad. Everything an AI outputs is a hallucination, even when it’s correct. The system is not capable of reasoning or thinking, it can’t apply logic to problems. As a result, you can’t trust any code it gives you in the least.
It’s exactly as bad as you describe.
I can assure you LLMs are, in general, not great at extracting concepts and work upon it, like a human mind is. LLMs are statistical parrots, that have learned to associate queries with certain output patterns like code chunks, or text chunks, etc. They are not really intelligent, certainly not like a human is. They cannot follow instructions like a human does, because of this. Problem is, they seem just intelligent enough that they can fool someone wanting to believe them to be intelligent even though there is no intelligence, by any measure, behind their replies.
Whatever the language’s equivalent of x86 assembly “NOP” is (forgive me - been decades since I programmed, so I’m not up on the modem languages).
if n% 2 == 0: print("Even") else: print("Odd") if (n+1)%2 == 0: print("Even") else: print("Odd") . . .
I am old enough to remember ms frontpage. It could take a 50 line html page and make it 500 lines or more without changing the external appearance. Didn’t make it better.
And how do you even explain the requirements of somethingvthat took that much code to implement to an AI. The context window is only so big.
deleted by creator
God, imagine debugging 250,000 lines of code to find some bug the AI created.
One of a bajillion bugs.
You expect those 250k lines to be comprehensible? In my experience they’ll be an utter clusterfuck.
You can’t fix the airplane if it turns out to be a boat with legs, 2 holes (worked around with 5 pumps) and 3.5 enormous ears tagged “wings”.
a boat with legs, 2 holes (worked around with 5 pumps) and 3.5 enormous ears tagged “wings”
It seems that AI really is good for some things after all
I find the kind of absurd fever-dream images it conjures to be very entertaining. I try to put as many contradictory concepts into various generators to see what it comes up with.
You expect those 250k lines to be comprehensible? In my experience they’ll be an utter clusterfuck.
Even worse is if they’re completely plausible, but there’s a very subtle logic bug in there that is super hard to spot because of just how plausible everything is.
The fallback is gonna be hilarious, the codebase rewrote by AI? With basically no considerations of business need and system capacity?
I can’t wait for the humiliating rollback
I bet you their “10x coder” can’t describe what a unit test is nor its purpose
Then again, can you even unit test AI generated slop with how often it’s rewritten?
Unit tests are exactly for code that is often rewritten, because it ensures that whatever interface still behaves the same, regardless of the implementation. This a large portion of the point of unit tests: not for testing the initial implementation but confirming that any subsequent implementation behaves the same.
In a normal scenario yes, but “vibe coding” rewrites whole swaths of code. It’s like painting detail with a bucket. Trying to keep up with it seems like a sisyphiean task
Using AI to write Unit tests is one of the few use cases I somewhat understand, but even that turns out horrible with improper supervision. I reviewed one Pull Request once where the testing was so horribly cobbled together and nonsensical that I rewrote those tests by hand (after asking the person I was reviewing to fix it twice and them only making it worse by letting their AI rewrite them)
If you want to release details to a less than scrupulous company running an AI, you can feed it that information.
The real use is generating syntax. The logic is the hard part to teach, so with an understanding of the logic behind the programming, you can tweak variables for your final product.
I’ve mostly used this to generate scripts to deploy rapidly to the latest emerging crisis, but thats from the perspective of a help desk agent with too many years of experience to still be doing it, but in a way I enjoy it. The bigger problems aren’t my problems. I escalate as appropriate, and its no longer my problem.
I digress, it generates syntax and you plug in your infrastructure variables in a file you control. Then again I may be paranoid because I’ve seen HIPAA fuck extra hard with non-clinical staff who have access to records in their job duties.
Lauri is a recent teenager-turned-CEO himself… and that “intern” is basically responsible for building Lauri’s entire codebase. The whole service his “company” offers is what that teen bodged together in a month.
Programming is one of those skills and industries that is accessible enough that basically anyone can do it, but you will run into trouble later if you’re doing anything serious without learning how to do it well. There are hundreds or thousands of ways to make something work, but if it’s an unmaintainable mess or you don’t even understand how it works, then we end up with our financial institutions running COBOL in 2025. Good luck when regulations change. Have fun when your operating system becomes unsupported and you have to replace the underlying dependencies. Hope your boss doesn’t sue when they have to hire people to rewrite your hackjob.
And these were all already problems before AI code came onto the scene. We had the programming equivalent of script kiddies, people who would blindly copy and paste code from web searches without even reading the date or the comments saying “this is bad and this is why”. But this probably makes it even easier to do, and possibly harder to spot. Combine this with how many universities don’t even focus on lower-level languages so you get plenty of people who can’t understand how to fix any of the trickier errors in their code. And that’s not to say everyone has to be able to, but it’s a problem when so few are able to. So these programmers are unlikely to know if the code has problems so long as it passes their tests, and unlikely to know how to fix those problems when they become clear.
Automation tools are good ideas for assisting and detecting possible mistakes. They’re not good at generating that much code. In fact, that amount of code in that amount of time is suspicious, hinting that it’s unlikely to be well-designed, maintainable or efficient.
This is a great write-up. And a bit generous to the “developer” in question.
I’m not entirely sure I’ve written 250,000 lines of code yet, in my entire decades as a professional developer. If I have, it’s a near thing.
Not to brag, but I can reuse existing libraries and get many things done with 5 or 10 lines of code.
It’s hard to crack 250,000 when 5-10 lines solves each of my employer’s problems.
And this young developer supposedly solved one problem with 250,000 lines of code.
After giving it some thought, I’m like
90%40% (edit: okay, 40% after hearing some anecdotes, haha.) sure this is just a parody post. Even AI can’t be that bad at this, right?This is just some library too, not their main application. I know “lines of code” is bullshit but just for reference I looked it up and apparently
curl
is ~180k lines of code. I can’t imagine how crufty this fucking code must be, assuming this is even real because it seems too ludicrous.
I agree with your main point, although I think your example of COBOL being used to this day in financial institutions is actually the opposite problem. The guys that originally developed that shit were damn good programmers, but they were severely constrained by the available hardware, limitations of the language, etc. So they had to get really clever in order to make these massive, complicated systems work. In my experience, those really old legacy systems tend to be rock solid with near 100% uptime and almost no errors. They’ve never been rewritten because doing so would be a multi-year effort costing millions of dollars, and the end result would be a system that is most likely slower, buggier, and has less functionality.
TLDR: The old COBOL systems are unmaintainable messes not because of incompetent developers, but because the limitations of the available technology when they were originally developed forced a bunch of really good devs to have to get extremely creative and hacky with their solutions.
Even if the original developers weren’t rock stars, the codebase was feature-complete in the 80s or earlier and they’ve spent the decades since then eliminating nearly every single bug.
The real issue is that it’s expensive to add new features compared to a modern codebase , and it’s very difficult to find COBOL programmers in 2025.
Eventually a bank is going to take the gamble and rewrite everything in a modern language, and designed with modern tech in mind. But, it’s going to be a huge gamble. And, I can guarantee you, they’re not going to be vibe-coding it.
Good correction, and I definitely didn’t mean to suggest those programmers were unskilled. In their case, and like you said, the maintainability issues were often a result of technical limitations.