Bad practices Memes

Posts tagged with Bad practices

Add .Env To All Your Public Repo

Add .Env To All Your Public Repo
Someone just committed their .env file to a public repo with the message "nice try but i am dev not a vibecoder" - because apparently being a "real developer" means speedrunning your way to having your AWS keys scraped by bots within 30 seconds of pushing. The username is helpfully redacted, but let's be honest, the damage is already done. Those API keys are probably already mining crypto in some datacenter in Belarus. Pro tip: .gitignore exists for a reason, and it's not just for show.

Spaghetti Code

Spaghetti Code
The classic hit-and-run developer move. Write a tangled mess of code with zero documentation, nested ifs 47 levels deep, variable names like x1 and temp2_final_ACTUAL , then casually sip your coffee while walking out the door before anyone realizes what you've done. The sunglasses really seal the deal here. That's the look of someone who knows they're leaving behind a codebase that will make the next developer question their career choices. No comments, no tests, just pure chaos held together by hopes and prayers. The best part? They probably got promoted for "delivering features quickly." We've all inherited code like this. And if you haven't... just wait. Your time will come.

If It Works It Works

If It Works It Works
Oh honey, you thought you'd elegantly handle concurrency with proper threading and async/await? THINK AGAIN! Why bother with sophisticated solutions when you can just slap a sleep() function in there and call it a day? It's like using duct tape to fix a leaking dam – absolutely chaotic, completely wrong, but somehow... it holds. The race condition is still there, lurking in the shadows, waiting to strike at the worst possible moment in production. But hey, if adding a random delay makes your tests pass, ship it! What could possibly go wrong? 🙃

Can't Do That Sorry

Can't Do That Sorry
You've survived the inferno of production bugs and somehow your code actually works, but now comes the REAL challenge: adding comments. The guru's final test isn't writing elegant algorithms or optimizing performance—nope, it's documenting what the heck your code does. And naturally, our hero straight up BOLTS like they're being chased by a pack of angry QA engineers. Because let's be real, writing comments is somehow more painful than debugging a segfault at midnight. The code speaks for itself, right? RIGHT?!

You Know What Would Be Even Funnier

You Know What Would Be Even Funnier
Using email as a primary key is already a terrible idea—what happens when users want to change their email? Cascade updates everywhere, foreign key nightmares, and a database migration that'll haunt your dreams. But sure, let's one-up that disaster by using the password as the primary key. Nothing says "job security through catastrophic technical debt" like having to update every single reference in your database when someone inevitably forgets their password. Also, you'd be storing plaintext passwords, which is basically a resume-building exercise for your next gig after the data breach lawsuit.

Found On Facebook

Found On Facebook
Why learn breakpoints and step-through debugging when you can just scatter print statements like breadcrumbs through your code? The superior debugging technique: if the print statement fires, you know the code got that far. If it doesn't, well, time to add more print statements above it. Debuggers are for people who have their life together. The rest of us are out here with console.log("HERE") , print("wtf") , and the classic System.out.println("why is this not working") . Bonus points if you forget to remove them and they end up in production.

What Do You Mean It's Unsafe

What Do You Mean It's Unsafe
Oh honey, someone just discovered the ancient art of returning uninitialized variables and thought they invented a NEW random number generator! The top panel shows someone actually doing their due diligence with proper C++ random generation—random_device, mt19937, uniform distribution, the whole nine yards. It's like following a recipe with actual measurements. But then the bottom panel? *Chef's kiss* of chaos! Just declare an int, don't initialize it, and return whatever garbage value happens to be sitting in that memory location. It's not a bug, it's a FEATURE called "undefined behavior"—the spiciest kind of randomness where your program might return 42, might return 2847362, or might summon a demon from the void. Truly random! Truly terrifying! Truly the kind of code that makes senior devs weep into their keyboards. Fun fact: This is exactly why Rust developers never shut up about memory safety. They've seen things. Horrible, uninitialized things.

From A Multinational Bank Too

From A Multinational Bank Too
Nothing screams "enterprise-grade documentation" quite like receiving your API specification as JSON snippets copy-pasted into Excel cells. Because why use OpenAPI/Swagger specs, Postman collections, or literally any proper API documentation tool when you can just... Excel ? The fact that this came from a multinational bank makes it even more delicious. Somewhere in their tech stack, they're handling billions in transactions with microservices and distributed systems, but when it comes to sharing API docs? Excel spreadsheet it is! The JSON is probably beautifully formatted too—until Excel decides that your timestamps are dates and your IDs need to be in scientific notation. Props to whoever had to parse through those cells trying to figure out which curly brace belongs where. Hope they didn't need to copy-paste that JSON anywhere, because Excel definitely added some invisible characters for flavor.

If 1: Return True

If 1: Return True
Oh sweet baby Jesus, the AUDACITY of computers treating the number 1 like it's the holy grail of truth! The computer's sitting there having a full-on religious experience because someone wrote if (1) return true instead of just... returning true. Like, bestie, you're literally checking if 1 is truthy and then returning true. That's not logic, that's a tautology having an identity crisis! It's the programming equivalent of asking "if water is wet, confirm that yes is affirmative." The computer's mind is BLOWN by this completely redundant statement that adds zero value but technically works. Why use one word when you can use five to say the exact same thing? Chef's kiss for unnecessary verbosity! 💋👌

From A Multinational Bank Too

From A Multinational Bank Too
Nothing screams "enterprise-grade documentation" quite like receiving JSON screenshots pasted into Excel cells. Because why use OpenAPI/Swagger specs, Postman collections, or literally any structured format when you can squint at pixelated text in a spreadsheet? The fact that this is coming from a multinational bank with presumably billions in revenue makes it even more chef's kiss. Someone probably spent hours meticulously screenshotting each endpoint, carefully pasting them into Excel, and thought "yes, this is the professional way." Meanwhile, the developer receiving this masterpiece gets to manually type out every field, guess the data types, and pray they didn't miss anything because zooming into cell B47 isn't helping. The frog's dignified expression perfectly captures the internal screaming while maintaining that corporate professionalism.

Confidential Information

Confidential Information
Nothing says "I value my employment" quite like uploading your entire company's proprietary codebase to an AI chatbot because you couldn't remember if that variable should be called userData or userInfo . Your security team is definitely not having a stroke right now. The best part? The AI probably suggested data anyway. Worth it.

Confidential Information

Confidential Information
When you're too lazy to think of a proper variable name so you casually commit corporate espionage by feeding your entire proprietary codebase and confidential business data into ChatGPT. The risk-reward calculation here is absolutely flawless: potential prison sentence vs. not having to think about whether to call it "userData" or "userInfo". Worth it. Security teams everywhere are having heart palpitations while developers are just out here treating LLMs like their personal naming consultant. The best part? The variable probably ends up being called something generic like "data" anyway after all that risk.