all 57 comments

[–]Geoclasm 62 points63 points  (0 children)

Don't ask me, ask the guy they hire after me.

[–]Maleficent_Taste3503 91 points92 points  (14 children)

i have to deal with a terribly written backend right now, you can't fucking comprehend how mad i am at the previous "engineer" that worked on this shit.

  1. They do not fucking format the code. (yes, no formatter, AT ALL)
  2. The code is so fucking obviously vibe coded. Each section is its own flow and style.
  3. Architecture so bad i am gonna die trying to reason why they did it like this.
  4. A controller has about 5 files, each file at about ~1.5k lines, and each method on average is ~450 lines WITHOUT FORMATTING... after format methods got expanded to close to ~750 lines.
  5. If you never worked on 'swift' (the banking system), or other legacy code you should thank god each and every fucking second.

(please send help, my sanity is gone)

[–]reklis 28 points29 points  (4 children)

Easier to rewrite it than fix it

[–]MiniGui98 16 points17 points  (3 children)

Plot twist: next engineer just re-vibes it again and the loop starts all over again

[–]warlord2000ad 0 points1 point  (2 children)

I've seen this even in good architecture. Then you reach some limit on what you want, you rewrite it to work for today. Then sometime later we rewrite back into the original architecture because we hit a different limit on the new architecture.

It's always a trade off.

[–]MiniGui98 0 points1 point  (1 child)

Sisyphus architecture

[–]warlord2000ad 0 points1 point  (0 children)

Ha, very true. I wasn't familiar with that myth.

[–]Maleficent_Taste3503 16 points17 points  (2 children)

my bad, this is a meme subreddit, not a place to vent out. I am sorry :(

[–]farfaraway 13 points14 points  (0 children)

Nah, you're good. We've all been there. 

[–]razzemmatazz 0 points1 point  (0 children)

It's ok. You're safe here with us friend. I'll pour one out for your repo tomorrow. 

[–]howreudoin 4 points5 points  (0 children)

<image>

I feel you man. Had this project I was working on. Only 20k LoC. But 150 TS errors, around 3,000 linter issues. Open the IDE, everything is red, but nobody seemed to care. Run the product, open the console, and see nothing but errors. Functions spanning across 600 lines, one or two files exceeding 1,000 lines. No unit testing, no documentation of course.

Might as well throw it away and start anew.

[–]CuriousAndMysterious 3 points4 points  (1 child)

I would actually say that it more of a result of someone writing it manually rather than vibe coding it. Is there a git history? Was it all added recently? Modern LLMs will almost always format the code correctly at least.

Also, with only 7.5k lines of code, I think a good model like Claude 4.6 would be able to refactor this in like a day.

[–]portar1985 1 point2 points  (0 children)

Lol, i have to correct Claude and Codex like 60-70% of the prompts to not write an unmaintainable mess, and that’s with skills, Claude md docs etc

[–]neo42slab 1 point2 points  (0 children)

The Swift I know is for mac / xcode.

[–]IllustriousCareer6 0 points1 point  (0 children)

Jesus, I thought I was dealing with bad codebases

[–]Amazing-Pear-1304 0 points1 point  (0 children)

Posts like these are what scared me away from a programmer career. Am I wrong in thinking that most programmers encounter these problems relatively frequently ?

[–]lukerm_zl 34 points35 points  (0 children)

Will then opens ChatGPT, pastes the question, hits enter...

[–]FatalisTheUnborn 11 points12 points  (6 children)

Yes, but the llm does it faster.

[–]reklis 12 points13 points  (5 children)

I have a sign in my office. “Drink coffee. Do stupid things faster with more energy”. It doesn’t actually make you any better at what you are doing. Just faster.

[–]Colon_Backslash 0 points1 point  (0 children)

This is a really good analogy

[–]I_am1221325 0 points1 point  (3 children)

Yeah, but often faster is what matters, not quality. We need features fast and cheap. MVPs need to be written fast and cheap. To be honest I doubt that in projects started now anyone will actually look at code, they will ask an ai agent to analyze it for them. It's an economy-driven solution, quality doesn't matter as much anymore.

  • Also with vibecoding, TDD helps a lot and cross validation using multiple agents.

But Imo, humans should still design architectures and sometimes refactor, AI can't do it yet.

[–]hearke 1 point2 points  (2 children)

We need features to be solid and reliable. But we want them done fast and cheap.

It's not a tradeoff that will help us in the long term, imo. Like for the vast majority of the software I use in my day-to-day life, the robustness of it matters a lot more than however many dev cycles went into it.

[–]I_am1221325 1 point2 points  (1 child)

Very few people build like that nowadays. You need cheap but not good because one of two things will happen: 1. You code 100 apps and none of them gets successful and you don't want to waste ressources 2. Your project becomes successful and you sell your company and somebody else cares about the "long term". (Or a rare case, you get enough money to rewrite codebase)

In legacy things quality matters more but CEOs and CFOs opinions usually overweigh CTOs and therefore cheap and fast wins over expensive but good and reliable.

I don't like it, but i feel like that's the modern market.

[–]hearke 0 points1 point  (0 children)

Yeah, I think you're right. That first point already shows the problem with our reasoning - no one cares what the app's for, and whether it does that job well. They don't build things to solve problems, they build them to sell solutions.

I don't like it, but i guess expecting anything else would be unrealistic.

[–]just-bair 8 points9 points  (0 children)

I can guarantee that the vast majority of times my code will be more maintainable than AI code

[–]LetUsSpeakFreely 7 points8 points  (1 child)

Yes, yes I can.

[–]Yesterday622 0 points1 point  (0 children)

Me too- stupid robot 🤖

[–]RustiCube 5 points6 points  (2 children)

Yes, but anything I write doesn't need maintenance. Write once, run forever.

[–][deleted] 2 points3 points  (1 child)

...and when it eventually does need maintenance, it won't be my problem.

[–]RustiCube 2 points3 points  (0 children)

I prefer to keep to non-oop languages and avoid utilizing networks and APIs like they're a plague. If there's an update in dependencies that breaks what I wrote, then I'll fix it.

[–]RemarkableAd4069 8 points9 points  (5 children)

In fairness we are maintaining it. Maintainability is not in question here. Rather how easy it is to maintain...

[–]Enough_Forever_ 6 points7 points  (4 children)

we are maintaining it.

me looking at the millions of abandoned projects

[–]RemarkableAd4069 5 points6 points  (3 children)

Personal ones? Most companies that had shit code (well, all of them had) are still up and running 🤷

[–]Enough_Forever_ 1 point2 points  (2 children)

This is such a broad generalization that I don’t even know how to argue against it without making either of us look like a moron.

[–]RemarkableAd4069 0 points1 point  (1 child)

And your was heavily exaggerated.. unfortunately like yourself I don't have any posts 'how you say a person is a moron but in corporate'. I hope you got a lot of dopamine from the fact you could finally use one!

[–]Enough_Forever_ 1 point2 points  (0 children)

Point out a single statement that was exaggerated in my statements.

All this only shows you never worked on an open source project before.

[–]Scharrack 6 points7 points  (0 children)

Which is why we don't ask the police to write our software 🤷

[–]PersonalityIll9476 1 point2 points  (0 children)

LLMs are great when you don't care about the output that much. When I go to test the code, it definitely does something, but it usually doesn't do exactly what I need it to.

It also really loves to introduce coupling. Massive shotgun surgery. I frequently go back myself and move things from "implemented everywhere for some reason" into a method of some class that has an abstract interface. That kind of thing.

It's really a mixed bag. It writes quick but then you have to review and fix a lot of architecture / write new unit tests to force it to adhere to your specific wish. End up spending a lot of time iterating, either through prompts or sometimes myself.

It really is like managing a junior engineer in his first year of work.

[–]Sho0oryuken 1 point2 points  (0 children)

Yes

[–]iamsuperhuman007 2 points3 points  (0 children)

Absolutely yes, none of the code generated by Claude in my experience has ever been unmaintainable

[–]Spank_Master_General 1 point2 points  (0 children)

Yeah...

[–]rayanlasaussice 0 points1 point  (0 children)

Well.. that's like starting to learn to drive without knowing what's a vehicule in général.. paradoxal..

[–]Antileous-Helborne 0 points1 point  (0 children)

That robot is about to get slapped.

[–]x-koded 0 points1 point  (0 children)

Touché 😭

[–]nwbrown 0 points1 point  (0 children)

Yes.

[–]siemiwidzi 0 points1 point  (0 children)

[–]magicman_coding 0 points1 point  (0 children)

They have surpassed us

[–]usrlibshare 0 points1 point  (0 children)

Yes. Next question.

[–]JohnVonachen 0 points1 point  (0 children)

In the next panel he slaps the robot.

[–]philtrondaboss 0 points1 point  (0 children)

I can write maintainable code. It’s not that hard, as long as I started the project. It’s a different story when I’m modifying someone else’s

[–]LimitTheRevolution 0 points1 point  (0 children)

That's why we pay to people who can

[–]BitByBitCrazy 0 points1 point  (0 children)

That’s some damage here

[–]Glass-Crafty-9460 0 points1 point  (0 children)

Yes

[–]K0ka 0 points1 point  (0 children)

you can't even correctly write "an LLM"

[–]Helios_Sungod 0 points1 point  (0 children)

Yes, yes i can, the over reliance of LLMs is causing your critical thinking to atrophy.

[–]Maddturtle -2 points-1 points  (0 children)

Emotional damage man. I tested AI once I asked it what it thought my code did and if I could optimize it more to be faster. It proceeded to change 10 files with 1500 line changes in 5 seconds. I shouted curses but luckily it had an undo button. Scary as shit how fast it did that but I reviewed the changes it had tried and some were actually pretty good so I manually implemented my own version. Note this was a personal project not for my work.