I'm an Editor at The Daily WTF. Among my duties, I write articles narrating real tales of torment and woe from all manner of IT professionals. It's the support representatives whom I identify with most, having held support-related positions for most of my corporate tenure.
Below, you'll find links to every article I've written to date.
Welcome, random user. Here are the keys to the kingdom!
Plurals Dones Rights
Bad language assumptions are also hilarious language assumptions.
I Need More Space
Some people have ... different ideas about memory management.
Oh dear, a connection error! Shut. Down. EVERYTHING.
The Wrong Sacrifice
Ritual goat sacrifices simply do not fix multithreading issues.
My Machine Is Full
It's unwise to refuse tech support when you're dangerously stupid.
The Tokens That Wouldn't Die
The secret to near-immortality? Get your variables mixed up.
The Automation Vigilante
When there's no budget for common sense, you have to take matters into your own inexperienced hands.
Clean Up Your Act
This code sample is SFW—I think. Let's check this tiny, static array of cuss words to be sure!
Wherein we discover the true cost of a poorly-thought-out cost-savings
Mapping Every Possibility
The moment you're loading MAC addresses and ports into arrays is the moment things have gone horribly wrong.
You're about to inherit an app you know nothing about. It's a race against time to learn the details before the subject matter expert walks out the door forever!
You know the saying: it ain't over 'til you've run the DELETE query a bunch of times for no good reason.
Dollar Dollar Dollar Dollar Underscore
A variable naming convention that'll make you cry. $_$
The Case of the Missing Signal
Whenever you think you've seen everything as a support tech, you are always wrong.
It's funny what people will go through to avoid multithreading.
Every Possible Case
This code sample might not have enough conditionals and try/catches. Maybe we should throw some around the whole article, just to be safe.
It Takes One Function
It's not often that one thinks to himself, "Wow, some case statements would've been a lot better," but here we are.
Be grateful no one's forcing these "performance" ""improvements"" upon your code base!
It's Dark In Here
A hopeful young developer is about to explore a fresh new level of hell.
A Comment On Comments
In which we learn that all programming comments have the potential to be hilarious, insane windows into bygone eras.
It's Log, Log, Log
A delightful log base 2 implementation. I didn't realize you could sort integers by weight, did you?
Not A Fan
An IT staffer's worst nightmare: the clueless person who insists on taking matters into his own hands. I wonder how many of these people also go boldly tinkering through the body of their car whenever it makes a noise they don't like?
Dumb's The Word
It's often the simplest requirements that end up with the most WTF implementations.
The Mainframe Database
Here's what happens when someone with a COBOL-hammer sees a SQL Server-shaped nail!
What A Load
This thing's got PHP in its CSS! Or is that CSS in its PHP? Never mind, just why would you ever mix these things?!
Proof that high-traffic websites have more to lose when they promote (bizarre) code into production that wasn't properly load-tested.
When the user experience looks like a hacking attempt, you know something's up.
Widgety Gadgety Boo
A little warning box isn't displaying. Well, this should only take a minu—WHAT AM I READING?!
Website Hacker Best of 2016
Is a dangerous hacker on the loose? No, it's just a QA guy who doesn't know about modern developer tools.
The Excel Expert
Complex issue? Check. Insufferable user? Check. Easy solution that support tech gets yelled at for? You better believe that's a check.
I'm of two minds about this code. And so is the programmer!
Your Recommended Virus
FW: fw: fw: Fw: fw: How lax email forwarding rules can make YOU look dumb!!!
Just Following Instructions
With the ability to create bigger and better idiots, the universe will always defeat the support rep who's just trying to provide the clearest documentation possible.
You're Not My MIME Type
Because trusting the MIME type in the file header is too hard. Obtaining a fix is even harder!
'Tis the Season
It's time to get festive and fix a few things around here! Well, one out of two isn't bad, I guess ...
We're All Admins Here
There's nothing quite like that feeling of knowing you're about to introduce a whole slew of problems, and being forced to do it anyway.
Are finally blocks really indeterministic? Someone with 15 years of Java experience sure thought so!
Take A Bold
ProTip: If you want to put code on your marketing materials, check with a coder first! Or, prepare to be BOLD.
Sea of SQL
I once had a boss give me 16 pages of PL/SQL that looked like this, asking me to figure out what it did. There were not enough pencils in the world to stab into my eye sockets.
Open And Shut
This WTF code sample makes insanely excessive use of write operations, because file I/O is safe and fast! Ami(w)rite?
Failure is OK
It's OK to write fail-tacular code as long as you leave a comment.
A Petite Change Request
Just add a new field to the screen. How hard could it be? Always harder than you think!
Dealing with dates and times programmatically is tough. These many code samples are just the tip of the iceberg when it comes to date-related programming atrocities!
Barely Broken In
A typical Arkansas problem, with a typical Arkansas solution.
Common Sense Not Found
When's a server redirect easier than fixing a broken link? When the developer's lazy!
Stalled For Time
An IT story with a toilet involved. Core dump? Or disaster recovery?
The 8K Bug
In which Dreamweaver destroys entire cities ... or at least paralyzes a company's web developers, thanks to one head-scratcher of a bug.
This article was also shared to Reddit! The 8k Bug - The Daily WTF
A Stupid Comment
You may want to think twice about initialing code comments, lest someone copy and paste your initials into files you never worked on.
The Technobabble Prescription
Is it hackers? Aliens?! Who could possibly be typing all this garbage on my—ohh.
The Data Migration
Assignment: move data into DB2.
Reality: copy data from COBOL-based flat files to plain text to Oracle to plain text to DB2.
Shockingly, it doesn't go so well.
Welcome, new hire! You're not allowed to talk to the guy with answers. Good luck!
Manual Automation 2016 Classic WTF
We can code it the right way, or we can code it the wrong way and charge thousands of dollars to fix it!
Wherein we learn the subtle, tragic difference between "It compiles" and "It works."
We expect you to meet all your deadlines—but if you do any development in the secure development environment, you're fired!
This article was also shared to Reddit! [WTF] Secure Development: "What's a Java?"
Spool Me Once
Witness the horror of the critical support ticket you can't fix, but are somehow still responsible for.
DISCLAIMER: based upon events that may or may not have happened to one (1) Ellis Morning. Names changed to protect the scapegoated!
Translation Server Error
Circuit board over. Corrosion = very yes.
The Killer Product
Is there anything better than finding out a madman's in charge of your next IT project? Traveling several hundred miles to find out in person, maybe.
Long Distance to Valid
There's a time to be customer-first, and there's a time to explain to people that they have no idea how telephone numbers work. And not to toot my own horn or anything, but this is quite possibly the greatest portrayal of a typical conference call that I've ever written.
When someone claims a huge performance boost on a particular job, you may want to ask just how big that job is to begin with.
The only thing that could've inspired this use of Java hashing is chronic abuse of a different kind of hash.
The Curse of the Warped Bootstrap
The chilling tale of a server that never works. Two brave reps must decipher Java's demonic class loading behavior, or languish in Tech Support Hell!
Did you think it was possible to earn a promotion by making Java even more of a memory hog? Neither did I!
Hurry Up and Wait
For things like bridges and surgery, you're not supposed to proceed without plans. Software is subject to far different expectations.
To Con and Insult
Consulting's a sweet gig, if you can get it. The rest of us have to know what we're talking about. COOOOONNNN!
In Fool We Trust
A database "expert" lords over a bloated, poorly coded fiefdom, and crushes all challengers.
When you just don't have time for silly things like "communication" and "protocol," bend reality to your expectations. What could possibly go wrong?
The Six Million-Dollar Patch
If all else fails, throw on another layer of arcane tightwad governance.
A Misleading Memory 2013 Classic WTF
First Commandment of Tech Support: Trust not thy caller.
A Burning Sensation
In the Navy, you never quite know the source, but it'll be expensive and painful to get rid of.
The Curse of the Night of the Ticket That Wouldn't Die
If you've never had to deal with ticket tracking software, consider yourself blessed.
Question: Why was I billed $3,000 for sitting in a cold room for 45 minutes?
Answer: Uh, you'd better sit down ...
Back in the day when computers couldn't store large values within a single variable, people had to resort to crap like this.
The White Flag
Somewhere out there is a Tab key that needs our help.