The Sludge on the Wall | Groxio Blog
Back to blog
May 25, 2026
•<br>14 min read
The Sludge on the Wall<br>What Our Developers and a Spilled Cold Brew Are Trying to Tell Us
Part of the The AI Coding Crisis Series
(Part 1 of 1)
First in series
Last in series
View all 1 posts in this series →
A tense break room visit
Priya, a junior on your team, shipped five pull requests this week. Five! Look at her go. Three years ago she’d have shipped one, maybe two, and one of those would have been a typo fix. The velocity dashboard is glowing. The standup is upbeat. Somebody in management is using the word “leverage.”
Meanwhile, your principal engineer Marcus hasn’t merged anything in eleven days. He’s been in the review queue. He looks like he’s seen things. You ask him how it’s going and he stares at you for a beat too long before saying “fine.”
When you dropped a spoon in the break room yesterday, Marcus jumped so hard he coated the entire room in a thick brown slurry of cold brew and oat milk.
Leaving Marcus to clean up the mess, you walked back to your room and stared at all of those green arrows on the dashboard. So much green quit looking like up and started looking like an imposter wearing up’s clothes.
Something is wrong here. Let’s talk about what.
Three People, All Shaken, All Quiet
It isn’t just Marcus, and it isn’t just you.
Marcus is drowning, but not the way you’d think. It isn’t the number of PRs in his queue. It’s what’s in them.
It’s the third implementation this month of a thing the codebase already does, in two other places, under two other names. It’s the new utility module that quietly duplicates half of an old utility module, because nobody – not the AI, not the junior – checked. The codebase isn’t getting better. It’s getting fatter. More code, doing less, every week.
He used to be the person who saw the elegant move others missed. Now he’s a fraud-detector for code that came out of a tool. Merge a bad PR, the codebase rots and it’s on him. Reject too many, he’s the bottleneck. Reject not enough, he’s “not adapting.” He doesn’t see any of this changing any time soon, and in the darkest part of his soul, he fears he’s the problem.
Down the hall, the promising and relentlessly positive Priya is sitting at her desk reading a code review comment for the fourth time. The comment says this doesn’t match how we handle errors elsewhere in the codebase. Her code works. The tests pass. Marcus is not wrong; she can tell that much. But she doesn’t understand the comment well enough to fix it.
She tries prompting differently. The new code also works, and maybe it’s a little bit better, but she can tell it’s not quite right. She feels like the middle layer between Marcus and the AI, and this whole application exists to cut out the middleman. So she sends it back up. The thing she can’t say out loud, even to herself, is that her code is shipping and she is not learning.
With a deadline looming, the silent voices are niggling at her conscience. If she misses it: the tools are right there, why didn’t you use the leverage. And if she hits it: imagine what we could do with half the team.
Three people, one trap: heads the tools win, tails the humans lose. Nobody in this trap is going to be the first one to say the thing we are measuring is the thing breaking us. You can’t take that to your boss. So everyone stays quiet, and ships more, and reviews more – and the dashboard stays green, and the sludge keeps creeping down the wall.
Let’s stop talking about our fictional team and start talking about us. Leave the stain on the wall. We’re not ready to mop it up yet.
I Can’t Prove It, But
If you’ve been substituting names from your own team, you’re not the only one.
I don’t have a survey. I don’t have a study. What I have is a few years of being in the rooms where this stuff actually shows up – teaching it, training teams on it, consulting on the messes it causes, and, if I’m being fully honest, making a few of the messes myself. That doesn’t make me right about everything. It does mean I’ve been in a lot of rooms where people stop performing once the door closes, and the thing they say once they stop performing is, with surprising consistency, some version of what you’ve been reading.
Here’s what I think is happening: this is everywhere. Not in some teams. Not in the bad ones. Everywhere. The flavors differ – different stacks, different team sizes, different ratios of seniors to juniors – but the shape is the same. Velocity up. Quality sliding. Seniors flinching. Juniors either stuck or already fired. Managers measuring numbers they no longer trust.
I can’t prove it. The data we’d need is the data we aren’t collecting, because the things going wrong aren’t the things our dashboards know how to count.
But I’m saying it anyway, because the silence is part of the disease. Every team I talk to thinks their version of this is a local failure. They are embarrassed. They don’t bring it up at...