The Glass House of Complaining About Legacy Work
Why is this TechDebt meme funny?
Level 1: Who Left This Mess?
Imagine you walk into your kitchen and see a big sticky mess on the counter. You immediately frown and say, “Who on earth left this mess here? They did it all wrong!” You feel a bit annoyed that the person before you didn’t clean up properly. But then you remember that yesterday you spilled some juice in the living room and forgot to mop it up. Oops! Suddenly you realize you’re complaining about something you yourself do sometimes. Kinda funny, right?
That’s exactly what’s happening in this joke. The person is comparing fixing code to cleaning up a mess. Before cleaning or fixing anything, we often start by blaming the person who caused the problem. It’s like a little gripe to get the frustration out. In the meme, an electrician grumbles about the last electrician’s work (“Who wired this stuff like this?!”) just the way a programmer grumbles about the last person’s code (“Who coded this like this?!”). The funny part is the moment the programmer remembers that they do the same thing – complaining about others’ work. It’s a playful poke at ourselves: we all find it easier to point at someone else’s mess, even though we leave messes, too. The humor comes from that “aha” moment of catching yourself in the act. It’s like laughing and saying, “Alright, fair enough, I’m not so different after all.”
Level 2: The Complaining Ritual
So, what’s going on here? This meme draws a parallel between electricians fixing wiring and software engineers fixing code. In both jobs, when someone new comes in to repair or improve something, they often complain about the person who worked on it before them. The tweet jokes that an electrician might have a rule to spend five minutes saying “What was the previous electrician thinking?!” before they start working. The author then recognizes, “Wait, I do the exact same thing as a programmer.” It’s a moment of dev_self_awareness that’s very relatable in tech circles.
Let’s break down some terms and ideas:
Code Review: This is a process where developers check each other’s code. For example, if you write a new feature or bug fix, another developer will look at your code changes and give feedback. It’s meant to catch mistakes and improve code quality. Often, during a code review (or even just reading through old code), developers will come across parts that seem odd or poorly written. It’s common for them to ask, “Why did the previous developer do it this way?” Sometimes that question is genuine curiosity, and other times it’s asked with a bit of an eyeroll, almost like saying “I wouldn’t have done it like this; this is bad.” That’s the start of the complaining ritual.
Legacy Code: This refers to old code that’s already in the system, usually written by someone who might not even be at the company anymore (or maybe it’s your own old code that you wrote a long time ago). Legacy code often doesn’t have good documentation or tests, and it might have been written under tight deadlines. To a new developer, legacy code can look weird or outdated. It’s like inheriting an old machine with many gears – you have to figure out why those gears are set up in that odd way. Inevitably, you might say, “This is so confusing. What were they thinking back then?!”
Technical Debt: This is a metaphor in software development. Imagine you take a shortcut to meet a deadline – you solve a problem quickly but not in the best way. That’s like borrowing time; the “debt” is that later someone (maybe you, maybe another developer) will have to deal with the consequences of that shortcut. Technical debt can result in messy code or hacky solutions that need to be cleaned up. When a developer encounters technical debt, it often triggers the complaining ritual: “Ugh, they didn’t fix this properly, and now I’ve got to clean it up.” It’s just like how an electrician might complain about a quick fix that a previous electrician did with duct tape instead of a proper solution – now it’s your problem to fix correctly.
“Previous developer” blaming: In many teams, people half-joke by blaming everything on “the previous developer.” For example, if function
calculateTotal()is broken or badly written, and John is looking at it now, he might shrug and say, “Well, the previous developer really screwed this up.” It’s a way to distance oneself from the bad code. Even if John doesn’t know who exactly wrote it, it’s easier to fault “whoever came before.” This can be lighthearted ribbing, but it’s pretty common. The funny catch is when you realize you were actually that previous developer (oops!). There’s a classic developer joke: “I can’t believe the idiot who wrote this… oh wait, it was me.” We laugh at ourselves because it happens more often than we’d like to admit.Electrician analogy: The tweet uses the electrician to highlight that this behavior isn’t just in software – it’s in other trades too. If you’ve ever had a handyman, plumber, or electrician come in after someone else did work, they often shake their head at what the last person did. The meme’s author almost made fun of the electrician for this habit, and then realized, “Hold on, programmers do this all the time!” It’s a fun cross-industry comparison. We don’t typically think of coding as similar to wiring a house, but in this aspect, it is: both involve fixing problems under the hood, and in both cases the fixer often complains about how it was done before.
Tweet format screenshot: This meme is literally a screenshot of a tweet. A lot of developer humor is shared on Twitter. Here, a user
@chrisk5000tweeted this joke back in 2018, and it resonated with many people (as shown by the 2.4K Likes). The format is just text on a white background with the Twitter interface around it. Developer memes often use tweets because they’re short, punchy observations that others find relatable. The reason this got so many likes and retweets is because developers saw themselves in the joke and shared that “haha, so true” reaction.
Now, imagine you’re a junior developer or it’s your first job in tech. You open up a program that has been running for years, written by others long before you. You see something odd like a function that does something in a really roundabout way. You might not immediately understand why it’s written that way. It’s natural to feel a bit frustrated: “Why didn’t they just do X? This code is such a mess!” That’s you doing the “ritual complaining” step. Maybe you turn to a teammate and vent a little about how weird this old code is. That’s exactly what this meme is about. It’s a universal RelatablePain: inheriting confusing code is frustrating, and almost everyone in software has vented about “the person who wrote this” at some point.
However, as you gain experience, you also learn humility. Code doesn’t usually get weird for no reason – perhaps the previous dev had constraints or faced a scenario you haven’t thought of. The meme is humorous because the author catches themselves: they were about to poke fun at electricians for complaining, then realized we do the same thing. It’s a gentle reminder that we should be a bit more understanding. And yet, it’s so satisfying to complain for those five minutes! It’s practically a relatable developer humor tradition: complain first, fix second.
In summary, at this level, we explain that the meme is about recognizing a common engineering habit. CodeReview culture and TechnicalDebt make us gripe about legacy code, just like an electrician gripes about old wiring. The tweet’s punchline is the self-awareness of the engineer realizing they live in a glass house (throwing stones about complaining when they do it too). If you’re new to coding, just know this: reading others’ code can feel like cleaning up someone else’s mess, and it’s okay to let out a little “what were they thinking?!” – just remember, someday another person might say that about your code. 😊
Level 3: Legacy Code Lamentation
At a senior engineer’s level, this meme hits a nerve because it reflects an unwritten ritual in our field. The tweet humorously describes an electrician spending five minutes ranting about “What Was The Previous Electrician Thinking?” before fixing anything. As a software engineer, the author suddenly recognizes the same habit in us: whenever we dive into legacy code or perform a Code Review on someone else’s work, we instinctively grumble about the last person’s decisions. It’s practically a guild tradition among developers – a tongue-in-cheek “guild rule” of the imaginary International Brotherhood of Software Engineers, Local 404.
Why is this so funny and painfully true? Because Technical Debt and questionable fixes accumulate over time, and whoever inherits the code next often faces puzzling constructs or hacks. It’s almost reflexive for seasoned devs to sigh and mutter, “Who wrote this nonsense?!” before doing any refactoring. We’ve all opened a file, seen a function named doMagicBecauseHack() or a comment like // TODO: fix this later, and immediately launched into a legacy code lamentation. That initial venting is cathartic: it’s how we bond over shared pain and prepare mentally to tame the wild code. In many teams, the code review process includes a bit of theatrical complaint – not to be mean, but to acknowledge that, yes, this part of the system is a hot mess. It’s the RelatableDevExperience of confronting TechnicalDebt: you honor the time-honored tradition of cursing the past before cleaning it up.
This behavior isn’t unique to coding – as the meme points out, tradespeople like electricians do it too. An electrician might open a fuse box, see a tangle of mismatched wires, and groan “What on earth was the last guy thinking?!” (likely in more colorful terms). In a software context, we do the same when encountering spaghetti code fragile modules. It’s a senior-level inside joke that crossing domains (electric wiring vs. code wiring), the ritual complaining remains eerily consistent. We recognize that “previous_developer_blaming” reflex: every codebase has a mythical “Previous Developer” character who’s conveniently responsible for all weird code. Seasoned engineers know that sometimes that previous dev is actually themselves from years ago – we’ve all done a git blame on a confusing function and felt immediate karma seeing our own name. 🤦♂️ It’s humbling and hilarious: in the heat of debugging, you’ll gripe about how badly something was written, only to recall I wrote it under a tight deadline last year. So you swallow your complaints, fix it, and hope the next person doesn’t curse your name just as hard.
In a deeper sense, this meme underscores a cycle in software development. Legacy code comes with mysterious context and quick-fixes that made sense once (maybe at 2 AM during a prod incident) but look absurd now. The “ritual complaining” is our way of distancing ourselves from the perceived chaos – a senior engineer’s coping mechanism. It also serves a practical purpose: vocalizing confusion or disgust often leads to uncovering assumptions. Ever notice how during a code review, the reviewer’s sarcastic “Great, another global variable, thanks!” actually sparks a discussion on why that global was introduced? Beneath the snark, there’s insight: we learn the history of why things are the way they are. The humor arises because we all play this role. It’s a communal habit: gripe, then fix. We see the electrician do it and we smirk because we know we’d do the exact same with a messy circuit or a messy codebase.
Consider how universal this is: no matter the tech stack or the domain, developers performing a code review or debugging legacy systems will share war stories of CodeReviewPainPoints – cryptic commit messages, bizarre variable names, oddball algorithms – invariably asking “Why, oh why, did they do this?!” It’s practically a call-and-response at stand-ups. And ironically, every experienced dev also knows that one day we will be the target of this ritual by someone inheriting our code. The next electrician will tut-tut our wiring; the next junior dev will roll their eyes at our old workaround. As a cynical veteran might say, the circle of technical life is complete: we inherit TechnicalDebt, we grumble, we patch things up, and eventually, our patch becomes the next person’s headache. The meme nails this shared reality with a wink.
Just to illustrate the kind of scenario that triggers this ritual, imagine opening a module and seeing something like:
# A perplexing legacy condition:
if system.mode == 'UNKNOWN': # ??? What was the previous dev thinking here?
kick_the_machine() # Try a brute force fix for now
Encountering such a snippet, any veteran engineer will let out an exasperated chuckle. The inline comment “What was the previous dev thinking?!” is basically the catchphrase of CodeReview horror stories. Of course, after performing the sacred five-minute complaint ceremony (and maybe sharing the absurdity on Slack for commiseration), we’ll roll up our sleeves and fix or refactor it. The code gets cleaner (hopefully), and we move on – until next time. The meme is funny because it’s self-deprecating: it points out that we laugh at electricians for doing exactly what we do. DeveloperHumor often revolves around this kind of self-awareness, turning our daily frustrations into jokes we all get. In the end, whether you’re wiring a house or untangling a legacy codebase, the ritual complaining is just part of the job – complain, then conquer. And if you skip the complaining? Well, are you even a real software engineer? 😜
Description
This image is a screenshot of a tweet from user Chris (@chrisk5000) posted on November 15, 2018. The tweet humorously recounts a moment of self-awareness: 'Almost made fun of an electrician today like "is it an electrician's guild rule that you have to perform 5 minutes of ritual complaining about What Was The Previous Electrician Thinking before you're allowed to fix anything?" but then I remembered I'm a software engineer'. The joke draws a direct and witty parallel between the common practice of skilled tradespeople criticizing a predecessor's work and the identical, deeply ingrained habit within software engineering culture. For senior developers, this is exceptionally relatable, as a significant portion of their work involves inheriting, debugging, and refactoring legacy codebases, which almost invariably begins with a period of lamenting the questionable decisions of the original authors. It's a moment of humorous introspection on the universal engineering experience of dealing with technical debt and confusing prior implementations
Comments
15Comment deleted
We call it the 'archaeological survey' phase: before you touch the legacy code, you must spend at least one sprint loudly cursing the name of the ancient architect who built the temple on a cursed burial ground
Step 1: run git blame, rant about the clown who cross-wired the service layer. Step 2: notice the commit author is “me, 2013.” Step 3: call it a legacy integration and move on - rewiring isn’t in the sprint
The real difference between electricians and software engineers? Electricians can actually trace the problem back to ground, while we're still trying to figure out why someone thought naming a variable 'data' in a 10,000 line class was acceptable documentation
Every codebase is legacy code written by an idiot - git blame just occasionally reveals the idiot had your SSH key
Every senior engineer knows the sacred ritual: spend the first 15 minutes of any bug fix session performing a dramatic reading of the git blame output, questioning the architectural decisions of your predecessors, and muttering 'who wrote this garbage' - only to discover via git blame that you wrote it yourself three years ago during a production incident at 2 AM
Every trade has a ritual; ours is git blame, spelunk a Confluence link to a 2013 Jira, then hotfix the one-liner while the tech-debt interest compounds
Electricians vent verbally; we summon git blame to exorcise the ghost of devs past before touching the sacred monolith
Our incident runbook begins with a five‑minute git blame séance - where the previous engineer we summon is always Past Me, optimized for shipping
Good Sysadmin always shits at his predecessors Comment deleted
Good Sysadmin always shits Comment deleted
thanks Comment deleted
Good Sysadmin always Comment deleted
Sysadmin is always good Comment deleted
Good Sysadmin Comment deleted
Sysadmin always shits Comment deleted