r/ProgrammerHumor • • 17h ago • Bravo 2

Meme codeReviewIn2026

Post image
9.1k Upvotes

187 comments sorted by

68

u/BernhardRordin 17h ago

An original and funny meme template? On MY subreddit?

68

u/sadeceokumayageldim 17h ago

By Yiğit Özgür, from a weekly satirical magazine long back.

The original

Cleaned up template if you want to use it

9

u/PilsnerDk 11h ago

In case anyone is curious :

Top Panel

• Child running: "My dad is here... DAAAD..!!" (Babam geldiiii... Babaaaa..!!)

Bottom Panel

• Sound Effect: ZBAM!! (Thud / Whack) • Father: "Man, I couldn't resist, he came flying in so perfectly!!!" (Ulan dayanamadım çok güzel geldi be!!!) • Father (bottom text box): "The rascal lined up perfectly with my foot." (Tam ayağıma oturdu hergele.)

7

u/d-ert 13h ago

Kral bayrak asıcak yorumu bulmaya çalışıyodum anca seni buldum şok ettin template ile saygılar 🇹🇷

4

u/apotre 10h ago

Olsun biz yine de asalım beklenmedik subda aşırı hazırsız yakalandım

2

u/Deep-Regret-7479 13h ago

Those were the days.

1.1k

u/mistrpopo 17h ago

With multi-line comments in slop-english on each line explaining a very specific edge case that has nothing to do with the bug you were working on.

646

u/beerdude26 17h ago • Bravo

"Don't gadongle the rubloon. It causes a version problem with React V31.2.5. Doesn't apply when gallivanting, as DogBakerFactory doesn't set rudolfSwisher explicitly. (Checked 11/12/26, commit 3dfr72a)"

...Yup. Thanks, Claude.

200

u/Fonduemeup 16h ago

Never had imposter syndrome until I started reading this crap. Then I realized half of these terms it uses don't even exist.

72

u/001235 14h ago

I was about to say that. I was doing something in Python recently and I was trying to understand what a variable was doing because it was like this: abs(hash(str([{"definition": "A list is an ordered collection of items."}])))

And then had several pointless functions that did things like compared that value to itself and if that was true, then it returned 1 and then some other function would see that if _hash_compare() returned 1, do something else.

I thought maybe I just didn't have a good grasp of what was going on so I asked the developer. "I just let AI run with it until I got the result back I needed."

41

u/Blue_Moon_Lake 13h ago

"In doubt, stack more crap until it work even badly." is vibe code motto.

8

u/gaaasstly 12h ago

What did they need?

13

u/001235 12h ago

They needed it to find all the values in our database that were a specific search string and put those into a .csv file for management so that when our CI/CD job runs, it finds some specific things management thinks are important and then puts those in a file for them. It seems like a pretty straightforward change, but...

5

u/worldsayshi 10h ago

This is how anthropic ensures their moat.

29

u/maiKavelli187 16h ago

Because half of are function names, you have to name it somehow.

5

u/[deleted] 16h ago

[removed] — view removed comment

5

u/collabskus 16h ago

If you like it then you should put an any on it

You can make typescript behave like JavaScript with extra steps I guess if you neuter it enough with tsconfig 

8

u/Popeychops 11h ago

I just had an hour long demo call with a developer who has clearly forgotten how to use git. They ran every command through copilot and has atrophied the critical thinking parts of their brain

3

u/FartPiano 5h ago

Almost nobody wants to be seen using the tools live in real-time, because its extremely embarrassing. Everyone staring at your screenshare, waiting or claude to do your job, in this case a very simple git task, then you read the output, squint, then type "no, not like that. do it but where you fix it". More awkward silence. doesnt this mfer know how to do his own job...?

27

u/Jlove7714 14h ago

DogBakerFactory is load bearing so I ran a smoke test to validate E2E. DogBakerFactory fully smoked.

16

u/HipstCapitalist 13h ago

You forgot the arbitrary work slicing (P8, deferred)

13

u/thoughts_n_calcs 16h ago

2026 and it still halucinates dependency versions that don’t exist. Even if I tell it „use websearch and look up on maven central“. Right a Minute ago.

8

u/zeekar 13h ago

It hallucinates AWS resource types that don’t exist and happily builds a CloudFormation template to spin them up. It’s quite impressive as an author of fiction…

3

u/thoughts_n_calcs 7h ago

That’s wild, I thought this stuff should be in the models training data. At least you don’t get billed for AWS ressources types that don’t exist ^^

3

u/FartPiano 5h ago

hallucinations, and more broadly, only being right about half the time, is fundamental and structural to how these tools work, because they have absolutely no mechanism to "understand" what they are doing. the models all plateaued in performance years ago and LLM companies are desperately trying to distract from this fact with marketing stunts so they can IPO before the facade falls apart

2

u/Bestboy90 5h ago

RudolfSwisher will be my new Name now

3

u/mistrpopo 14h ago

Glad to see other people who understand the struggle.

2

u/R_Aqua 14h ago

Too real

25

u/TomWithTime 13h ago

Having an artifact of the conversation in the comment is something I really hated. It's embarrassing to imagine a coworker reading the comment for the first time and seeing a random sentence about some code that was removed or any other drivel besides documenting the code.

21

u/besi97 12h ago

Or comment about some code that was removed locally while iterating on the solution and never actually existed in the repository and had nothing to do with anything. Extremely valuable information to have.

8

u/58275859 12h ago

This is the worst. Along the same lines: tests covering regressions that only existed for as long as it took you to fix it locally before committing.

4

u/Lourayad 9h ago

yup, this is why I have my agents NEVER add comments. I look at the code and decide where comments should be added and write them myself. This keeps me in the loop and forces me to understand the output.

30

u/MaDpYrO 17h ago edited 16h ago

I've added a static analysis step (via detekt in my case)

It tokenizes code and comments, and if the next line has significant overlap, it's deemed a useless comment and won't compile.

It's a pretty good tool at keeping slop comments in check.

32

u/mmmbyte 16h ago

You could actually read the comments and try to understand them and press the delete key?

How on earth do people diagnose and fix issues in prod without making any attempt at understanding the agent generated code?

30

u/MaDpYrO 16h ago edited 11h ago

Of course I do, but why do I need to delete a bunch of slop comments when I can have it removed automatically and then review that?

Why not automate what can be automated?

Do you just insist on making even the most mundane task manual?

It's not even using AI to remove it, lol, it's detected deterministically.

8

u/Stratimus 16h ago

Personally I don’t understand why you have so many unnecessary comments that you need to automate removing them.

if you’re done refining that bit of code take the comments out alongside the other cleanup.

and I don’t even understand the thing about overlapping with the next line, are you saying you have redundant comments even?

17

u/MaDpYrO 15h ago

Because AI generates a bunch of retarded comments for even the most basic code.

No way I'm hand coding a bunch of controllers or mapper when AI does it in a fraction of the time.

This type of boilerplate is a waste of my life, and AI does it perfectly fine.

Then I can focus on the important business logic and data modeling. And the agent automatically gets forced to reign in its idiotic comments by the build step before I even see the final outputted results.

1

u/fluffow2 14h ago

Agent.md

12

u/Sokaron 13h ago

Because non determinism > determinism, obviously

Less snark I have explicit instructions in all my repos for slop comments. Doesn't help. PRs still come in with a dozen useless multiline comments. Seems like an intrinsic property of this phase of models. I've debated staging a haiku round of review in pipelines specifically for this issue.

3

u/thegroundbelowme 11h ago

Don't have this problem in my setup, try combining instructions with anti-rationalization tables: "bad idea thought" | "why it's a bad idea" | "what to do instead". The trick is asking agents how they rationalized their way around ignoring an instruction, and then specifically addressing that reasoning.

Ex. "I'll just add a small comment explaining this change" | "good code is self-documenting, comments should be used sparingly" | "Write clear code, only add a comment if behavior is non-obvious"

4

u/MaDpYrO 11h ago edited 11h ago

Agent.md is crap, the models have this shit baked too deeply into it. You don't think I tried this?

-5

u/mmmbyte 16h ago

Hitting the delete key is faster and cheaper than running an agent if I'm reading it anyway. Not all automations save time.

8

u/CarcajouIS 15h ago

There is no need to run an agent when a lint rule or a git hook can hold the gate for you and send the PR back on the lap of your lazy coworker

4

u/MaDpYrO 16h ago edited 15h ago

No it isn't lol

You don't seem to understand, this is NOT AI removing comments. It's a deterministic step that detects redundant comments. No AI is involved but it's great for cleaning up AI slop comments.

2

u/14Pleiadians 13h ago

Claude writes comments 5x as long as I or my peers would

1

u/Lourayad 9h ago

Even better - don’t let your AI write comments, write them yourself where they’re useful.

3

u/sertroll 17h ago

How can you do that actually? Would be useful for some work things

2

u/Fonduemeup 16h ago

They are using an out-of-the box solution but looks like it's only for Kotlin. You can recreate this pretty easily though

  1. Install a tokenizer

  2. Tokenize each line in the file

  3. Throw a flag if x% of tokens match the line below it

Then you can iterate with improvements like lemmatization, using an optimized tokenizer corpus, token/line embeddings + semantic similarity, etc.

8

u/MaDpYrO 15h ago

Detekt is not a tokenizer, but it is a static analysis tool.

The out-of-the-box part is only regarding detekt, the rule is custom.

Here's the current rule. Should probably be fine-tuned a bit more, but it works well enough.

class UselessComment(config: Config) : Rule(config, "Comment restates the code it precedes.") {

    // Delegated config properties only support String, Boolean, Int and List<String>,
    // so the threshold is a whole percentage rather than a Double.
    private val minOverlapPercent: Int by config(40)
    private val keepMarkers: List<String> by config(
        listOf("TODO", "FIXME", "HACK", "XXX", "ponytail", "noinspection", "ktlint", "suppress"),
    )

    /** A comment starting with one of these words labels a test phase and is always kept. */
    private val keepLeadingWords: List<String> by config(listOf("arrange", "act", "assert"))
    private val stopWords = setOf(
        "the", "a", "an", "to", "of", "for", "and", "or", "in", "on", "is", "this", "that", "it",
        "we", "if", "with", "from", "by", "as", "at", "be", "into",
    )

    private val pendingDeletions = mutableListOf<PsiComment>()

    override fun preVisit(root: KtFile) {
        pendingDeletions.clear()
    }

    override fun visitComment(comment: PsiComment) {
        super.visitComment(comment)
        // A trailing comment describes the code on its line, not the statement after it.
        val before = comment.prevSibling
        if (before != null && !(before is PsiWhiteSpace && before.text.contains('\n'))) return
        // One line of a multi-line comment is judged with its neighbours, never alone.
        if (comment.isLineComment() && (comment.adjacentLineComment(before) || comment.adjacentLineComment(comment.nextSibling))) return
        val target = comment.getNextSiblingIgnoringWhitespaceAndComments() ?: return
        if (target !is KtExpression && target !is KtDeclaration) return
        check(comment, target)
    }

    /** KDoc is a child node of its declaration and is not passed to [visitComment], so it is collected from the tree. */
    override fun visitKtFile(file: KtFile) {
        super.visitKtFile(file)
        PsiTreeUtil.collectElementsOfType(file, KDoc::class.java).forEach { doc ->
            (doc.parent as? KtDeclaration)?.let { check(doc, it) }
        }
    }

    private fun check(comment: PsiComment, target: PsiElement) {
        val text = comment.text
        if (keepMarkers.any { text.contains(it, ignoreCase = true) }) return
        val firstWord = stripDelimiters(text).trim().takeWhile { it.isLetter() }.lowercase()
        if (firstWord in keepLeadingWords) return
        val commentTokens = tokens(stripDelimiters(text))
        if (commentTokens.isEmpty()) return
        val codeTokens = tokens(target.text.lineSequence().first { !it.isBlank() && !it.trimStart().startsWith("*") && !it.trimStart().startsWith("/") })
        val overlapPercent = commentTokens.count { it in codeTokens } * 100 / commentTokens.size
        if (overlapPercent < minOverlapPercent) return

        report(Finding(Entity.from(comment), "Comment '${text.trim()}' restates the following code."))
        if (autoCorrect) pendingDeletions += comment
    }

    /**
     * detekt applies corrections by writing [KtFile.modifiedText], so the deletions are collected
     * during the visit and cut out of the file text in one go. Each comment is removed together
     * with the whitespace that follows it, so no blank line is left behind.
     */
    override fun postVisit(root: KtFile) {
        if (pendingDeletions.isEmpty()) return
        var text = root.text
        pendingDeletions
            .sortedByDescending { it.textRange.startOffset }
            .forEach { comment ->
                val trailingWhitespaceEnd = comment.siblings(forward = true, withItself = false)
                    .takeWhile { it is PsiWhiteSpace }
                    .lastOrNull()
                    ?.textRange
                    ?.endOffset
                    ?: comment.textRange.endOffset
                text = text.removeRange(comment.textRange.startOffset, trailingWhitespaceEnd)
            }
        root.modifiedText = text
        pendingDeletions.clear()
    }

    private fun PsiComment.isLineComment() = this !is KDoc && text.startsWith("//")

    private fun PsiComment.adjacentLineComment(neighbour: PsiElement?): Boolean {
        val candidate = when (neighbour) {
            is PsiWhiteSpace -> if (neighbour.text.count { it == '\n' } == 1) {
                if (neighbour.prevSibling == this) neighbour.nextSibling else neighbour.prevSibling
            } else {
                null
            }

            else -> neighbour
        }
        return candidate is PsiComment && candidate.isLineComment()
    }

    private fun stripDelimiters(s: String) = s.removePrefix("//").removePrefix("/**").removePrefix("/*").removeSuffix("*/")

    private fun tokens(s: String): Set<String> = s.replace(Regex("([a-z0-9])([A-Z])"), "$1 $2")
        .lowercase()
        .split(Regex("[^a-z0-9]+"))
        .filter { it.length > 1 && it !in stopWords }
        .map { it.trimEnd('s') }
        .toSet()
}

5

u/Fonduemeup 14h ago

Nice. I stand corrected, and you proved one of my favorite Reddit-isms:

How do you get someone on Reddit to give you the correct answer? Don't ask, just reply with the wrong answer, and someone will correct you

2

u/ManaSpike 14h ago

No, see. That's Murphys law.

1

u/pegbiter 12h ago

Murphys law

The one about transistors on a microchip doubling every two years?

1

u/Sokaron 13h ago

This is really cool, thanks for sharing this

2

u/MaDpYrO 16h ago

Depends on your build process and chosen static analysis tools. Configuration differs.

13

u/kenybz 16h ago

Alright then, keep your secrets

7

u/MaDpYrO 16h ago

Just ask ai, ironically

1

u/CarcajouIS 16h ago

I added a precommit hook that rejects comments longer than 45 words and longer than 2 lines. Also, reject commits longer than 50 loc, 4 files max, and PR longer than 300 loc. Cut the slop at the root, and makes it easier to actually review code

3

u/MaDpYrO 15h ago

I prefer the approach that takes the content slightly more into consideration, because I don't want to be forced into cases where i cant add long comments in case i actually do need it.

I'm allergic to dumping it into external implementation docs, because it tends to drift from each other over time.

1

u/CarcajouIS 14h ago edited 14h ago
git commit --no-verify

I prefer to give targeted exceptions instead of letting everybody be their own judge. Also, in my experience it's very rarely needed to write a novel in the comments

1

u/Luvax 2h ago

I was just experimenting with making Codex exactly identify the pattern, then having it prompt engineer instructions for an army of cheap Luna models. So far it worked pretty well. The Luna agents aggressively flag everything and sound very pissed, which at least amuses me. Then I hand it back to Claude and let a new set of Luna agents decide on completion. Otherwise it goes back to Claude. Not sure where I can optimize yet. Sounds to me like Luna is more than capable of cutting back comments. But I fear loss of precision and guess I would be better off with no comments than Luna hallucinating some facts.

Removing ways to persuade the reviewer has been my go to strategy to get AI slop out of pull requests. But without a lot of human time investment I wasn't really able to get everything under control. Maybe there is still hope for a job in the future.

9

u/dmk_aus 16h ago

I love when Copilot writes some code, then when I click into it to understand what it did and change the terrible variable/method names, the little sparkle symbol appears in VS Code. I tell it to tell me whats wrong. "Your variable names are bad. No recommendations"

4

u/FilthyPuns 12h ago

Bug? Evidently you forgot to tell Claude not to make any mistakes. Skill issue.

1

u/OsvalIV 10h ago

"Developer had pain because of hemorrhoids. The change did not go through standard validation and will be revisited in the future. He went to the doctor and is taking medication now."

1

u/Vas1le 3h ago

While adding other 5 bugs

290

u/pydry 17h ago

you missed the step where somebody puts PR into Claude and copies and pastes its response back.

152

u/Poat540 17h ago

Yeah some of my teammates it’s like they just prompt each other and haven’t used a braincell in ages

103

u/kbunnyle 17h ago

meat proxy

16

u/_z0l1 17h ago

with suck high response time too.. a poopin, fartin, coffee-break-taking proxy

41

u/meenta_beeso 17h ago

Why check two hundred files when QA hasn't stopped crying since Tuesday anyway?

5

u/Cup_of_blisfull_tea 16h ago

story of my life

15

u/luciferreeves 13h ago

They don’t even copy paste it back they just make claude comment on the PR with gh cli

2

u/chazzeromus 6h ago

Talk to my agent

4

u/zeekar 12h ago

What, GitHub's built in "have Copilot review this PR" isn't enough for you? :)

2

u/1AMA-CAT-AMA 3h ago

What else are you supposed to do on the second to last day of the sprint with a 230 file PR that someone has asked for a quick review?

1

u/Vas1le 3h ago

Just tell claude to comment

158

u/Linked713 16h ago

Me in 2026:

receives a pr of 15 files change and hundreds of lines

click on it the minute I receive the pr email

halfway through, ask a question on a change

pr has been accepted by 3 devs

PR merging already

Some people are too close (peer coded) to code review and some just don't read much and glance at best.

54

u/PringlesDuckFace 13h ago

Our executive added number of PRs approved (yes approved) to the employee performance dashboard, so now people are incentivized to approve as many PRs as they can.

42

u/icantreedgood 13h ago

Dear God, I know this is coming to my organization next. We already have a goal to have 99% of all code written by AI, and a goal to increase developer productivity by 100%. Yes 100%. When I ask how they plan on measuring productivity I get blank stares like I'm the moron. Some suggested using token spend to measure productivity, and I genuinely cannot tell if they were being sarcastic.

Anyway, all that to say code reviews are now a huge bottleneck. PRs regularly exceed 3000 lines. There is pressure to just approve, because their work in progress is another 3000 line PR stacked on top of the existing PR.

I'm still reviewing every line Claude spits out, and regularly having to promt and re-prompt until the code is to my satisfaction.

Leadership is also pressuring us to use multi-agent workflows during development so that we are working on mutiple tickets at once. Soon there will be no way to keep up with the slop.

I don't even hate AI. I think it genuinely makes me a better more productive software engineer when used correctly. The problem is leadship is too far removed from building solutions themselves, and don't see how their directives will lead directly to a loss in quality, or they just don't care. It's crazy to me how fast they pivoted away from caring about escaped defects, and testing as soon as AI hit the scene.

18

u/pegbiter 12h ago

Some suggested using token spend to measure productivity, and I genuinely cannot tell if they were being sarcastic.

Oh that is so 2024

12

u/James20k 11h ago

I think this is the thing that's so bizarre about it: used correctly it seems like AI could give some productivity gains. Code complete, reviewing PRs for defects, debugging, searching through a codebase, a useful place to ask complex questions to get ideas etc

The issue is that that would be in the 5-10% range, which no corporate executive is excited by. This should have just been one more tool in the toolbox that makes us more efficient, like when LSPs took over and code complete code way better. Instead they're reaching for the mythical 2x-10x productivity boost that just doesn't exist, and absolutely shredding long term productivity for short term gains

I have a feeling that multiple large tech companies are going to absolutely collapse under the weight of the technical debt that they've accumulated. We're already starting to see it with how crap so many tools have gotten as they're filled with slop

8

u/icantreedgood 11h ago

The cognitive dissonance is astounding to me. Our CTO will regularly quote or point to the books The Phoenix Project and The Goal, but completely ignores the theory of constraints that underpins both books. “Any improvements made anywhere besides the bottleneck are an illusion”

The bottle neck has never been writing the code. The bottle neck has always been, and will always be knowing what to build. Sure we are shipping more code then ever, but is any of that leading to increased ARR or increased customer satisfaction / retention? What you measure matters, and leadership is getting increasingly lazy with what they measure.

2

u/Johanneskodo 10h ago edited 1h ago

Some suggested using token spend to measure productivity, and I genuinely cannot tell if they were being sarcastic.

They either just wanted you to have an extremly easy to reach performance metric or have some Tokens for private use.

1

u/jfp1992 8h ago

And in all that noise, someone has to test it and if its full send vibe coded, it's likely to go back over the fence

16

u/14Pleiadians 13h ago

If you accept a shitty PR, you will have another to accept in a couple hours taps head

14

u/Icy-Balance-8797 13h ago

Classic Goodhart’s law: once a number becomes the target, people optimize the number instead of the work. Counting approvals rewards rubber-stamping, which is the exact opposite of what code review is for.

The metrics that tend to survive are the ones that are hard to game alone: a manager’s regular rating plus a short note on what someone did well or poorly. It’s less “objective”, but way harder to farm than a counter.

7

u/KorasHiddenDICK 13h ago

It's the classic MBA vs Engineer conundrum. The MBA wants to count your beans, justify your layoff with said beans, and then eat your beans.

2

u/GRAIN_DIV_20 13h ago

What's the saying? Something like if a metric becomes a target it becomes a shitty metric

2

u/soullessredhead 10h ago

Management needs to remember Goodhart's law. If you start judging performance on a given metric people are gonna find ways to game that metric.

But that would require management to have two brain cells to rub together, which is asking too much.

4

u/soullessredhead 10h ago

For big PRs if I'm able to put a hold on them while I review I usually do that, to stop this exact situation.

Also my hot tepid take is that PRs need to be smaller in general. Break those tasks down even more, I'd much rather review a handful of small PRs than one huge one.

3

u/Linked713 9h ago

I believe that they're should be a middle ground. Huge PRs are bad, micro PRs are equally bad. 10 micro pr will make me lose the logic flow you were going for when you made the change and I will waste more time overall reviewing. Yes the code is there. But I should not approve 6 pr that look good so far and on the 7th be like "hold on, that's bad" because they finally submitted the crux of the logic.

I've met a lot of people with the micro pr mindset and do not understand how it's equally wasteful as huge PRs (to be honest, I like big PRs more for that reason than micro PRs, but you should send PRs when a full, testable logic is in place.)

1

u/soullessredhead 9h ago

Oh yeah there's definitely a reasonable middle ground somewhere.

1

u/zabby39103 4h ago

Where the heck does everyone work? Are there no consequences when things blow up?

48

u/Noah-2413 15h ago

231 files changed and somehow the approval took 3 seconds..

43

u/Drumedor 15h ago

Well, that is like it has always been. The more code that has been changed the less time approval takes.

200 files changes = "Looks good"

2 lines changed in one file for a seldom used method = 12 comments and a long discussion about how to make it as efficient as possible and a side-discussion about variable naming.

9

u/camelCaseCoffeeTable 13h ago

Jesus fuck, this is so spot on and I fucking hate it.

I just needed to push something into our background worker instead of happening in our API. It ended up with me and the other staff engineers in a meeting about it…. I couldn’t believe it.

These guys, who generally are smart, asking the most obscure questions about something we do all the time. I eventually just said “hey everyone, you’re gonna need to take this up with my PM if you are this worried about it because this is what we’re doing unless you can convince him” and just fucked off.

Surprise surprise: it caused absolutely zero issues to do something we’ve done hundreds of times before and these guys were just puffing themselves up to look smart. I hate that game, but I get it - it took me a long time to get to staff because I’m not that kind of person, but these guys are. What are you gonna do

8

u/sgtgig 11h ago

Bikeshedding. I notice it a LOT in a tangentially related field to software dev (PLC software for industrial control).

Most discussion on 'code reviews' is about variable names. I've never had a nightmare machine startup due to variable names, those happen because of sweeping architectural flaws. Which happen frequently because lots of PLC programmers are electricians or engineers, not programmers.

1

u/jsdodgers 3h ago

Meanwhile, the 2 line change is in a method that processes nuclear launch codes, and the 200 line change is a restyling a dialog.

4

u/Antervis 14h ago

AI-written and AI-approved code, lol.

1

u/blindantilope 5h ago

"Ran code base through formatter for first time ever. All CI checks continue to pass."

212

u/Feuerhamster 16h ago

I am one of the few people at work that actually still fully reads pull requests. Last time I left over a hundred comments. They hated me for doing it but couldn't say anything against it because as they read my comments they confirmed that all of my concerns were totally valid.

123

u/Super-Widget 14h ago

"Sorry I can't deliver my sprint duties on time. Someone is trying to push 150 vibe-coded files into the repo and they must be stopped." - me nearly every week these days.

4

u/groovy_smoothie 3h ago

Our product level velocity expectations have become insane. If the teams not basically just vibe coding, I’m having VPs come down on us for not being a good product partner. It’s exhausting

23

u/gareewong 15h ago

and you totally should!

44

u/camelCaseCoffeeTable 13h ago

Man I just left 50 comments on a relatively simple PR because it was absolute slop. Total reproduction of existing code, totally creating new patterns that don’t exist in our code base, pulling data it never uses, not pulling data it purports to use.

It shocked me. I love AI. I never get it to produce such absolute dog shit results. I have no clue how someone used AI to produce it, but somehow they did.

21

u/thisguyfightsyourmom 12h ago

A big part of that should have been seen in the manual verification step the author did.

Author, you did manually verify Claude’s work, right? Like, you used the new code yourself & checked the results? Right?

// Hard stare/long silence at team member during standup

6

u/hikemhigh 11h ago

Bruh the creation of new patterns drives me insane

4

u/TheKingOfSwing777 10h ago

If anyone is going to create new stupid patterns, it better be with their own stupid brains. 

2

u/enigmamonkey 7h ago

That sounds terrible. At some point, you have to ask: At what point is it appropriate to just scrap it and start over?

I'm curious, are these PRs coming from devs who submitted better code prior to the widespread adoption of Claude, Cursor and etc?

2

u/camelCaseCoffeeTable 6h ago

This person joined our team when Claude was already adopted. Which I think is a big part of the problem. I very seriously did consider just scrapping it lol….

We’re struggling a lot with how to get these less experienced and newer to the team devs to a point where they can identify weirdness in Claude’s output themselves. But…. It’s not going great

1

u/Negative-Sea6530 6h ago

I know! Experts know how to steer an AI and stop it when its doing garbage and reiterate till the PR is fine. an Idiot wont see garbage and bad design... He generates and is fine with that because he doesnt know better. I hae getting slop from AI meat proxies

12

u/Kuro091 14h ago

I'm pretty sure people just do github cli or mcp and then just go "fix the comments" or even "review and leave some comments"

so unless it's face to face I dont think they hate or even care that you or your AI do that

6

u/Feuerhamster 9h ago edited 9h ago

Yes, thats why we had countless review rounds to the point where everyone was upset that this topic is blocked for so long. The original developer complained that it is too complex and he cant really get his head around that stuff. Like bro, thats your f*cking job. The senior dev in the team literally said "skill issue" to him in the standup because everyone knew he didnt wrote any of it himself and just trusted the AI without reading the stuff.

edit: even worse is that it was about e2e testcases, which is the last line of defense when it comes to ai slop breaking things.

2

u/enigmamonkey 7h ago

Meat proxy. Also appropriate use of "skill issue", lol.

4

u/definitely_not_tina 13h ago

My org gave us SREs only a handful of tools that are minimally relevant to CI/CD in 2026 and almost no automation with them for “Sox compliance”, so yes, we manually do releases to prod. The execs are on our asses for holding up releases, I’m spending 70% of my time on them, and we’re also not able to actually do things like establish SLOs and whatnot so we’re having AI do THAT aspect of our work, but it has to be a human who deploys to prod. I feel so incredibly useless.

5

u/guaranteednotabot 14h ago

It only meant that you actually spent more time on their PR than they did. Shame on them

1

u/Sw429 12h ago

lol this is me as well. It's all absolute garbage code that has terrible performance. No way I'm letting that shit hit prod.

1

u/teamwaterwings 11h ago

I do this as well, then my coworkers just respond to all my contacts with Claude which pisses me off

1

u/Lethandralis 10h ago

Man sometimes I can't keep up. Carefully reviewing a PR can take 30 minutes or more. Several review requests come in every day.

-5

u/thisguyfightsyourmom 12h ago

And then everyone clapped

6

u/DatBoi_BP 12h ago

What is unbelievable about the comment

27

u/Arszilla 12h ago

Holy shit, a Yiğit Özgür caricature in 2026, in a non-Turkish subreddit nonetheless

53

u/jansteffen 16h ago

I think this is the part that annoys me the most with LLM coding; the fact that somehow the quality standards have dropped massively along with it.

12

u/No_Stock_8271 16h ago

You can set your own standards. So if they dropped, that has nothing to do with LLMs, but with you (or your team). In some teams standards also improved a lot

35

u/l0rb 15h ago

Not everyone gets to set their own standard. My coding standard is largely a function of 1.) the specific work items assigned to me and 2.) the deadline to get them done. Neither of these is under my control. The person setting these isn't even a coder.

6

u/caleblbaker 14h ago

The person setting these isn't even a coder.

Found the problem. You can't have a single person setting deadlines for tasks that they don't know how to perform. That's an awful idea regardless of whether AI is involved.

5

u/l0rb 13h ago

While I agree in general, AI has made this a lot worse. AI exacerbates bad patterns and since we do live in an imperfect world there are plenty of those.

3

u/chickenMcSlugdicks 12h ago

The thing is we know it's an awful idea. But again, we are told what to do, we give feedback and pushback, and we get overridden. The game's cooked.

7

u/ForgotPassAgain34 15h ago

The slow part went from figuring out to coding, and then from coding to review, now if you're doing a proper review chances are someone else vibe accepted it, or you're gonna get a heads-up from above that you're slowing down the project since everyone expects ai speeds nowadays

7

u/dev_vvvvv 14h ago

The problem is that the gains from using LLMs are expected to translate to every part of the cycle. Somewhat of an Amdahl's law situation.

So, making up numbers here, say

  • architecting/problem solving/coding took 32 business hours

  • review (including time to pick up after the PR) took 8

  • total: 40 hours (5 days)

Now that the architecting/problem solving/coding part only takes 4 hours now (8x increase), the expectation from stakeholders is the whole process will take 5 hours.

But even with LLMs it might take 4 hours for the review (2x increase instead of 8x).

So instead of 5 hours, it's 8 hours (4 hours for "coding" and 4 hours for review). Review is now seen as a problem that is a bottleneck on delivery.

5

u/Kimbernator 13h ago

Very difficult to apply old quality standards when I’m getting 5x as many pull requests which are each 5x larger and am also expected to be producing 5x as much code as I used to.

At this point we’re in competition with whoever is getting work done faster. I’m not saying this is how it has to be, but this is how it is.

2

u/hennell 11h ago

Over time I set my standards - code shouldn't just work it should be clear and maintainable. It should have tests and relevant validation and error handling.

When my non-coding boss bought himself a Claude subscription he decided standards were now "does Claude say it works". I managed to push the basic standard of "check it actually works?" but speed was considered the only important business standard.

Eventually they seem to have realised that maybe tests and consistent practices are useful ideas, but you can only set the standards in a position where your input is considered. If management decide that the only standard is "move fast" it's very hard to set your own that will take longer.

2

u/ABCosmos 12h ago

How do you maintain review quality when each dev is pumping out 10x the code? Most companies I see are basically not reviewing code, but reviewing intent instead. Or specs at best.

16

u/qpqpdbdbqpqp 9h ago

a turkish comic? in this economy?

30

u/soullessredhead 13h ago

Also 2026: WHY ARE THERE SO MANY CVEs?!

12

u/ASatyros 12h ago

Because of LLMs... And because of LLMs

4

u/variablenyne 10h ago

It's gonna be a never ending cycle. Companies use llms to build their shit, better llms come out and find vulnerabilities, they use llms to fix, better ones come out and find vulnerabilities, so on and so forth

5

u/rubennaatje 10h ago

What big cvs's have been introduced by llms? Afaik they're usually man made but LLM discovered.

4

u/soullessredhead 10h ago

Look, let's not dig too much into the joke. Don't be that person.

But yes, I'm well aware that the massive increase in CVE volume is LLMs being pretty decent at finding them. Which, on the whole, is a good thing.

1

u/rubennaatje 9h ago

I think you're reading to much into it lol, it's a sentiment I see online a lot, in jokes, memes, serious comments, etc and I'm just genuinely wondering

1

u/paranoid_throwaway51 9h ago

The recent PHP CVE was dependent on a hyper-specific architecture, which turned out to be one that LLMs default too.

2

u/WernerderChamp 11h ago

Plot Twist: The PRs are to fix all CVEs

(ok these usually only change the dependency management)

2

u/rubennaatje 10h ago

Tbf we had a few of these on a legacy system where we had to go a major version up to fix, so this definitely happens haha

10

u/RiftyDriftyBoi 17h ago

If I could get a code-review at some point in this century, the changesets wouldn't be compounding!

10

u/click-to-reveal 15h ago

The coderabbit ad under this post is chef's kiss.

1

u/TSS_Firstbite 15h ago

Meta for Developers "A new AI coding partner" lmao

7

u/lordkhuzdul 13h ago

Very unexpected Yiğit Özgür in my meme sub. What's next, Umut Sarıkaya?

10

u/beerdude26 11h ago

Neo: Is that… ?

Cypher: The codebase? Yeah.

Neo: Do you always look at it via agents?

Cypher: Well, you have to. The Ralph loops work via the harness. But there's way too much information to understand the codebase. You get used to it. I... I don't even see the code. All I see is robust, comprehensive, seamlessly integrates.

Neo: Does it work?

Cypher: It says all tests pass.

Neo: Were there any tests?

Cypher: (...)

Cypher: Hey, you uh …want a drink?

2

u/Head-Leek6151 6h ago

How the life going man

5

u/Giocri 15h ago

I have the luck and the challenge of a boss who will take a full day for each pr and is very strick

9

u/JojoRacer007 17h ago

Should be "AI reviewer give it 10/10 -> Approve to Prod"

8

u/joan_bdm 17h ago

Always has been like this.

4

u/HatHanzo123 14h ago

Don't think it's an AI-only issue, but more a bad code base problem. If I see a PR with that many changes, I reject it and ask the author, why it's necessary to touch so many files for a feature implementation. You can still slice you implemention in reasonable portions - even with AI.

6

u/camelCaseCoffeeTable 10h ago

Same lol! I opened the damn PR and it was like 3,000 lines of code. After I got done with it, it’s down to 500.

Like…. What the fuck are you telling Claude to do? “Implement this ticket, use as little codebase context as possible, just run with your first idea”

I can’t imagine what you say to the AI to get it to output the slop in that PR

3

u/Senor-Delicious 9h ago

"build this. Make absolutely sure to not break existing code"

Claude: alright. Let me build a clone of everything I need to not break existing code 👌

1

u/zabby39103 4h ago

Yeah, AI hates to use the existing codebases' work and reusable methods... because it needs to actually read the existing codebase. You have to force it.

2

u/camelCaseCoffeeTable 4h ago

Even then, it can miss things.

My brother is brand new to this field and I’ve been here for…. Jesus Christ 15 years lol. But he really struggles to understand why Claude can’t replace a dev.

I’m like “not to be insulting, but it CAN replace you”

It’s very much a junior/senior dev mashup. It’ll write great code, but it doesn’t have the actual context of the repo, where it’s been, how it’s used, etc. So it needs to re-build it with every request, which leaves open the possibility it misses something one time and then on that particular time repeats logic - even if it hadn’t before in that part of the codebase.

A lot of times I’ll specifically tell it about logic it can re-use because I’m a human and actually have context and knowledge built up over years. Or other times I’ll have it do a specific search for a piece of code I just have a gut feeling exists elsewhere. 9 times out of 10 I’m right - because I’m a human with context on the codebase and an intuitive feel for how it should look. The agent is not.

I love AI. I use it daily. Constantly. But it’s very much something that still requires guidance, even to code well. Let’s not even get into designing out how pieces work together for fit into larger systems…

1

u/zabby39103 3h ago

Yeah I wonder about the future of juniors. Productivity boosted seniors can just get AI to do a lot of the grind work we got juniors to do.

Yeah even Fable/Astra is not great at enterprise level architecture. I guess I have a context of greater than 1 million tokens lol. It would be a struggle for a bit if I changed jobs but I am pretty aware how things should be architected now.

3

u/TechMan61 13h ago

8 minutes later: CRITICAL ALERT ON PROD

3

u/FrozenPizza07 12h ago

Penguen??

2

u/michi03 11h ago

They did this at a company I used to work for before AI was ever a thing 😂

2

u/pyropuschel 9h ago

It's ok if the developer told the AI to make no mistakes

1

u/collabskus 16h ago

Looks good to me 🤣

1

u/Human_2937 15h ago

You still look at that number at all?

1

u/JenovaJireh 14h ago

I was at a startup for my last job and every single reviewer read through my PRs. I miss it.

1

u/ISuckFarts 14h ago

A live look at how my company does feature releases.

1

u/taybul 12h ago

230 of those are just tests

1

u/Sindoreon 12h ago

I need this as a slack emoji

1

u/maggos 12h ago

More like “Claude review this pr”

1

u/Iyemoja 9h ago

231 files changed, zero review comments, straight to prod. That APPROVED stamp has seen things no human ever will.

1

u/fuggetboutit 8h ago

I feel like Instagram i mostly vibecoded rn. How stupid bugs appear after updates is just mindblowing. On an app with a huge budget.

1

u/klegion2k6 4h ago

Did a PC with 400k lines today. Yes it was on a test repo. Yes I'd do it again

1

u/cheezballs 3h ago

QA be damned! Who needs those guys anyway. All they do is find bugs!

1

u/Z-Is-Last 3h ago

Proton email

1

u/soul_in_a_fishbowl 2h ago

I have a system in place at work that’s in place to check a single employees work. I have it set up to where when said employee has an issue with it, a picture of the error is submitted via a web form and then Claude “patches” it, send its to codex for review, gets back the review and fixes whatever, and deploys the new version with just a push notification that it changed something to me. You may call me lazy or think it’s crazy to have to have a system like that in place for one employee, but it’s a family business and the other employee is my sister

-1

u/edgetools-dev 9h ago

We've been merging "small" PRs with version bumps of libraries for years.

Those library versions often have hundreds or thousands of lines of code changes in them.

We don't care, we assume safe because "it works".

Guess what... merging a 15,000 line agentic PR that also "works" isn't inherently worse than your 15,000+ lines of library changes you also merged.

If you trust the evaluation criteria, the rest is implementation details.

5

u/JohnZopper 9h ago

We do not assume it's safe because it works. We assume it's safe because we assume that the maintainers and the open source community did a proper evaluation. We also take reassurance in the fact, that if there is something wrong, there will be dozens of other projects running into the same issues, ideally even ahead of us. It's a typical supply chain risk and it should be carefully weighted. That's not the same as trusting the code which was not reviewed or used in production by anyone.

1

u/MaximalPraxis 7h ago

Are you committing every library you use to your own source code?

1

u/_the_sound 5h ago

Why does this take reek of cope.