949: Web Dev HORROR Stories + Spooky Trivia! (Spooky Stories Pt. 1) - podcast episode cover

949: Web Dev HORROR Stories + Spooky Trivia! (Spooky Stories Pt. 1)

Oct 27, 202541 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Summary

Wes and Scott, in Halloween costumes, host their annual spooky web development stories episode, joined by a special guest for a "Browser Hack: Real or Fake" trivia game. They recount chilling tales of developers accidentally deleting production databases, a simple semicolon bringing down websites, losing access to a popular NPM package, disastrous SQL patches, and a major payment system failure caused by hardcoding and a "don't drink and deploy" moment, alongside an accidental universal product discount.

Episode description

It’s that time of year again, Scott (as Dracula) and Wes (as a big bad shark) return for their annual Spooky Stories special! They’re joined by a mysterious guest for a round of creepy coding trivia and chilling true tales of web dev gone wrong; dropped databases, haunted passwords, and more. Beware: these are real developer horror stories.

Show Notes Hit us up on Socials!

Syntax: X Instagram Tiktok LinkedIn Threads

Wes: X Instagram Tiktok LinkedIn Threads

Scott: X Instagram Tiktok LinkedIn Threads

Randy: X Instagram YouTube Threads

Transcript

Welcome to Syntax!

I think we're live. Yep, it's being pulled in. What's up, everybody? I'll tell you what, man. The makeup. It's a little tough. All the things are a little tough. I gotta get used to this.

Scott's vampire costume.

I spent all morning doing the makeup. I'm just rubbing it on my head and then trying to blend it. And then I would add too much black. And then it's like what you learn is that it's hard to go back when you add too much black to the mix. So then you're like. And then on top of it, I got to wear glasses. So I'm doing the whole thing. I look like this, which is a bit better. But you put the glasses on. It's hilarious. Oh, my goodness. It's so good. All right. Just tweeted it out. Let me get it.

New to live-streaming.

Your title says at s at ntax. Oh, I see. I see. That's fine. That's fine. That's a spooky story in itself. That's a spooky story in itself. Speaking of spooky stories, I'm happy that Riverside is even up today, given that Amazon screwed the pooch. I was wanting to test some stuff yesterday.

AWS Outage.

on riverside and i couldn't get it to load man i i think i missed that whole outage all i saw was everybody talking about it i think i was just happily doing my local dev and didn't see a thing about it but uh it seemed like a major outage Didn't affect any of my stuff. It might have affected syntax.fm. Yeah, yeah, it definitely did. We're hosted on Vercel, which is hosted on AWS.

The whole internet went down. And the funniest parts were people tweeting about their, like, internet-connected beds going down. Oh, yeah. It's just the future of us living in a place where your bed stops working if the internet goes down, which is absolutely hilarious. People are piling in. Welcome, everybody. So we do this episode every single year where we do spooky development stories. These are stories that make you want to stick your hammerhead in the ground.

(Wes is wearing a shark costume)

People submit them every year. If you have not submitted yours, please go to syntax.fm forward slash spooky. And on probably next year, we'll read it. But we collect them all year round and we read them off once every year. So I'm excited to get. How are you doing today, Scott? Oh, I am simply dead. I could not go outside.

the sun so i i'm having a great time today in fact uh in my nice little little cave here um but folks before we do that let's talk about something that doesn't suck let's talk about century century.io the perfect

place to fix all of your blood-curdling, bone-chilling problems on your applications. Yes, we all know that these things pop up all the time, and it can simply make us scream. So what you want to do is head on order to century.io forward slash syntax sign up and get two months for free you can fix all of your bugs in production all of your bugs in development and you can do so with uh like

the best tools in the entire world. And I say that as somebody who uses these tools every single day. So shout out to Sentry for presenting this podcast. You know that probably about four or five of these spooky stories. Without our prompting, this probably wouldn't have been an issue if we had Sentry enabled. Yeah, right? Yeah. Those will probably write themselves. But you want to grab the first one? Let's get on into it.

PHP MyHeadache.

Let's grab the first one. PHP, my headache. On my very first job, we had a state-of-the-art tech stack. PHP backend, MySQL database, and brace yourself. PHP My Admin in production. We used it for everything. Browsing tables, running queries, breaking things accidentally, you name it. Oh, the rest of the days of PHP My... php my admin is like the og sass you know like if you don't want to if or not the og sass the og like cms cms back end yeah yeah yeah

One fine day, I decided to refresh my local database with a copy from production. Yeah, I know, solid DevOps. I opened PHP MyAdmin, and I clicked the big red, drop that database button, and got the classic warning, are you sure you want... to do this hell yeah i'm sure i said confidently click two seconds later and our slack and century exploded like a fireworks show of despair

Table does not exist. Query fail. Everything is on fire. My soul left my body. I had been logged into production, not local. I had just deleted the entire production database. Hey, the site's down. Yeah, I said with a forced smile. Working on it. Meanwhile, one of my vacationing co-workers messaged me, probably from a beach somewhere. Hey, what the hell is happening? My phone is blowing up.

Nothing to worry about. I lied through my teeth. Miraculously, I had a five-year-old MySQL dump. Five minutes, not year. Five-year-old. Major difference. Major difference there. A five-minute-old MySQL dump on my laptop. I imported it back into production like my life depended on it, which in a sense it did. Within minutes, the site was back online.

I leaned back, took a deep breath and told my coworkers, everything's fine now. Nobody ever knew how close we came to digital extinction that day. Just imagine you do not have a five minute old. Back up here. It's wild that so many of these stories are people that don't have automated backups in place. They don't have any sort of guardrails where you can just YOLO PHPMyAdmin in production. At the very least, change the background of that production.

you might admit to be like red or something if you're gonna have scary places yeah have a few guardrails in place okay how many how many uh shaking bones do you give this one Oh, man, I'm going to give that a six out of seven for sure. Six out of seven. I'll give it a six. I'll give it a five out of seven. If this didn't have a backup, you could go higher on this one. But definitely one of those stomach in your pity your stomach moments for sure.

Next one's called a browser hack. I worked for a small, literal mom and pop shop. Wife was the programmer. Husband was the designer and head of company.

A Browser Hack.

As my first job out of college and it had its own proprietary CMS e-commerce platform, the class of LAMP stack. I was a jack of all trades doing all the technical stuff from programming the front end design work. It's a database and server administration. We hosted hundreds of our clients' websites. On a server we rented. This was before the cloud was big. And it was obvious from my comment about the LAMP stack. Yeah, so many of these horror stories come from just shoddy.

php lamp stack yeah not that it's a bad programming language but just like the the like hygiene around being safe with production was nothing. Everyone's just FTPing and working in production. You're just YOLO winning all. One day, our phone started ringing off the hook with a bunch of customers saying their websites weren't coming up. For us in the office, though, the sites were coming up fine.

There was an utter dread for maybe half an hour which felt like an eternity as we were struggling to figure out what was going on. Eventually we determined that it was affecting our users below a certain version of Internet Explorer. Remember those? days after investigating further i eventually realized i had accidentally saved a semicolon at the very beginning of a php file that was a configuration shared by every site on the server As a result.

A semicolon at the very beginning of the HTML for every website before the HTML tag. Most browsers completely ignored it. Yeah, browsers are super forgiving about malform markup. But of course, IE threw a fit about it. Fortunately, it ended up being an easy fix. figured out what was going on i am forever grateful i don't get nightmares from having to support inner literally a semicolon took down their entire empire oh five jumps out of five

Yeah. Oh, five Trumps. Yeah. I'm going to give this a pretty scary stuff here. This will also be five for me.

Browser Hack Gameshow & Special Guest!

I think I just heard a doorbell. Wes, did you hear something? Yes, who's here? Maybe you should check the waiting room. Are you kidding? I didn't even know about this. No chance. Please let him be dressed up. No, no chance. No chance. CJ. My computer was frozen for a second. Hello, hello. How are you doing? Do you just casually have a pirate costume on? What is that? I hear something else. What's going on here? Let's wait a second. What is that? What I was working in my code

Late last night when my eyes beheld a creepy sight. For my code was working with no reason why. And then I saw it to my surprise. It was a hack. It was a browser hack. A browser hack. With Macromedia Flash. It was a hack. Oh my gosh. It really saved my ass. A browser hack. It was a browser hack. Gentlemen, boys and ghouls, it's that spooky time of year. And in the spooky time of year, anything can happen. So I've invited our friend CJ over for a bit of trick or treat.

And see, we all know that a well-timed browser hack can really, really save our ass. So I've prepared for you a soul-sucking game where we have eight browser hacks. You all have to tell me, is this a real browser hack or did I make it up? The first browser hack, the backslash nine trick. This targets IE 5.5 and IE 6 specifically by doing a backslash 9 at the end of a CSS property. Do we both get to guess? You both have to guess.

I'm going to say that's a legit one. There was backslash. I don't know if nine was the one. I can't hear Wes for whatever reason. Riverside is messed up. Can you hear me, Scott? I can. CJ cannot. Tell me when I should talk. Yeah, I can hear you, Scott. I will tell you when you should talk. Wes says this is a real hack. CJ, what do you say? I don't think it's a real hack. I say no. CJ says fake. It is fake. Yes.

But there was one, wasn't there? There was like a weird IE 5 and 6 one. Maybe. Maybe. JS and CSS. You can write JavaScript inside of CSS to extend CSS's capabilities using the expression function. That's fake. Wes says fake. CJ, what say you? I mean, this seems really useful. Like, maybe it existed somewhere and then didn't become a standard. I'm going to say real. Real. This is real. No way. What?

In all versions of Internet Explorer 5.5 and 4. Apparently, this blog post is really interesting. Apparently, it worked really well. It was just slow as hell. So people didn't use it. Real. Fascinating. All right, number three. CJ, two for two. Wes, oh for two. Conditional comments used to deliver HTML or CSS to different versions of IE, if LTIE7. This is real. This was the move in HTML5 boilerplate. You had it and it added those conditional classes to the HTML element? Yes. CJ, what say you?

I believe it's real. I saw Wes saying a whole bunch of stuff, but yeah, I've used this in the past. It's real. It is, of course, real. For those of you who never worked in IE, this magic actually worked. And we used it all the time for various stuff. Even like... banners that said get the hell off this browser all right number four The ping fix for IE6. A shim, a PNG, alpha, and IE6 by replacing images using Microsoft's filter ProGidDX image transform Microsoft alpha image loader. Wes.

This is very much real. I actually went down a rabbit hole several years ago to figure out, like, how did that actually work? To me, it was magic at the time that it figured out how to just punch out all the alpha pixels of a PNG. um or all the i guess white pixels but it's now it's a now i know how it works it's very real cj what about you what say you okay i didn't hear what west said he said a lot

I'm going to say fake just because the colon in the syntax seems like that'd be hard to parse. It's real. It's real. Whoa. Whoa. Okay. Yep. Here's a CSS tricks article for it.

PNG hacks from IE6. I think this article is from like 2009 or something. This is a blast from the past for sure. All right. The comment float fix. This stops IE5 Mac from double float margins because it... the parser into a phantom quirks neutral mode wes that you you tried to make it sound like that's actually something but uh ie5 was not on the mac there was an ie version on the mac at one point and this is

No, I've never seen this slash thing ever. This is fake, fake, fake all the way down. CJ. Real. CJ says real. It is fake. I made that up. Margin collapse fix. This prevents IE6 from collapsing margins, which collapsing margins when you have two margins that butt up against each other. Wes, real or fake? Margin collapse fix. Margin collapse is a thing, but the code you have is, that's not real. That's fake. Wes says fake. CJ. I'm going to say fake too.

Oh, prevents collapsing. Okay, good. The star and the underscore hacks. You can use the star or the underscore to target specific browsers because I suppose it would be whatever, the progressive fallback there. Okay, this is real all the time. My old IE knowledge is immaculate, and these are very much real. I've very much written many of those in my career. CJ, Wes says real. What say you?

Don't tell him what he said. I now believe that syntax can be anything, so I'm going to say real, too. It is, of course, real. Wes is mad that I'm telling you what his answer was. If I could hear his mic, I would know what he said. Well, you can't. Okay, I... Float double margin fix. When you float an element in IE, it doubles the margin. So that's not the real or fake part. IE actually does that. So if you do float left and then margin left, it will do 40.

pixels. So the fix would be throwing display inline to fix it. Real or fake, Wes? Wow. That sounds like something that would be real. And putting something in line also sounds like the move because probably one of those margins is from it being box and the extra one is because of it being... So I'm going to say real. Wes says real. CJ, what do you say? Stop telling him what the answer is. CJ says fake. It is real. Yep. You got to do that. And thank you.

for joining us for Spooky Stories, Real or Fake. You guys like Halloween way too much. Not too much, but such impressive costumes. And mine is just like, I just grabbed one from the kid's bin like 10 minutes before this started. CJ, thank you for joining us. You're more than welcome to stick around or go off and do whatever you have to do for the rest of the day. I got some booty to be plundering, I guess. I don't know. Yes. Oh, CJ, this is a family show.

Oh, I believe I also have some booty to be plundering. Okay, so...

Ghost Password.

Let's get into the next one. Ghost password. So I'm a maintainer of a fairly popular NPM package. Nothing huge, but it recently crossed the two million monthly downloads mark. Nothing huge. That's pretty big. that's huge give yourself a round of applause of which i was super proud of for a long time i was the only dev behind it until a few months ago i even wrote in with a potluck question about how to start sharing ownership i do remember that

The vampires never forget. Then about a month ago, the spooky part started. I'm on my phone and 1Password suddenly stopped authenticating me. You know, face ID fails and it asks for the master password. I type in my master password, denied. Oh, man. That's the worst. Okay, weird typo. Try it again, denied. Little not forms in my stomach. The next day, I try it on my Mac.

Same thing. Now I'm officially locked out. I'm thinking, okay, don't panic. I'll just contact support, spend a few hours going back and forth with 1Password support team. but they're firm. There is nothing they can do on their end to help me recover the account. Is that serious one password? Oh, man. And here's the kicker. The part that felt like a line from a horror movie, they told me, Sir, we can confirm from our logs that your master password has not been changed in five years.

It was like being locked out of your own house with a butler telling me the key that I've used every day for five years is the wrong one. I eventually had to give up. I started the soul-crushing process of resetting every single password for every account I own. Oh my god.

In the end, I managed to reset every single account except for NPM. Due to their security policy, an account cannot be recovered without the 2FA codes or the recovery codes. They tell you to save those recovery codes for a reason. Wes? Yeah. Do you save your recovery code? Yes. Like there's man, you should especially your one password recovery codes or like your password manager recovery codes. You need to store those. for in the first place and you need to store them somewhere safe because

You are screwed if you lose those. So with extreme regret, I had to say goodbye to my NPM account and package I built from the ground up. No! An open source project of millions of downloads is now opened because of a password I thought I knew. I feel like I feel like you're just typing in that password a little bit wrong. Don't you? Yeah. Like try. See if caps lock was on maybe. Yeah. Or did you try from another phone or computer or something? Because like I know.

Me, if I'm on, let's say, a new version of Mac OS, something might not always work the right way. I was on like Helium browser and my Reddit login didn't work for two days, but I didn't change the password. I just tried it again in two days and it worked. So. It makes me wonder if this guy's, if something mouth spooky is going on, you know, like the guy's computer has been compromised because like everybody right now wants to get a hold of.

npm packages and one with two million if you got an npm package with two million monthly installs you are certainly being targeted so i would probably wipe your computer Because something funky is being put in between you and the sign in there. I think that's what's happening. Yes. Yikes. This was very spooky. Send us the name of it because, yeah, that's odd.

Yeah, but also like props to one password for not giving anybody random people access to your account. I would not ever want them to be like, oh, sorry, I forgot it. That's the whole point of.

of backup codes and all these awful there's there's many layers of of one password if you if you get locked out and if you can't get them all you're probably a hacker and unfortunately that means some good people get caught in the twine of it because they had bad password hygiene but it's worth it word uh how many spooky uh bats do you give this one that one's more of like a a sad one i'm gonna get that four out of seven spooky bats

This one's eight spooky bats for me because it's very spooky, sad or not. Sometimes, Wes, things that are sad are spooky, too. That's true. Yeah, that's deep.

Just A Patch.

Next one we have here, just a patch. When I started web development, I did not know everything about how SQL patches were made. There were a few requests that I worked on. Bugs and new features worked fine for me. And then I was asked to patch it up to prod. I had new tables and some extra columns on existing tables. So I thought it would patch it all up at once. So I generated a script for every object.

in the database. Not to miss anything. Yes. Drop create scripts. The boss ran it on the prod DB and then he asked me why every table was empty. That is when I realized what I did. Fortunately, there was a fresh DB backup. And it was fixed immediately. Man, awful. There's so many of these stories where people just YOLO some script. Like, at least run it. If your database is not so big, pull it locally and just run it.

just to check or or yeah or a lot of like orms will have like a like a test mode where it will tell you how many things it will update yeah what are the dry run or something like that yeah uh very uh very common and and i are you one of those people sometimes i see the dry run option and i'm like it's all good i got this yeah well i i've been there as well even just um

My home assistant the other day, I needed to update it. And I was like, should I back up my config? I was like, that'd be fine. It wasn't fine. I had everything go missing. Luckily, I had a backup from, I don't know, a couple months ago. Always back up before you do anything where you say, it'll be fine. Yeah, always do that. Hey, Wes, this next one is a little bit long.

I don't know if you've scrolled, but it goes on and on. So you think we should just read this in its entirety? Did you read this one already? Yes, it is a spooky. For the next show, I read them all to make sure they were all good. Is it worth it? Is it worth it? Sure. Let's do it. Yep. All right. This is a true story. If it's too long, we'll cut it out. Folks, you're getting the live feed here. Yeah. The live unedited version of this.

Spooky stories. Wes, I didn't hit you with any spooky voice today. oh does that make you happy yeah oh i can tell you i'm getting really hot in this hammerhead shark costume my wife's always talking about natural fibers yeah like don't wear plastic folks this is so hot oh yeah For JS Nation, we wore space costumes and they were like, it was like literally wearing plastic bags. I was just absolutely dying in it the whole time. Okay.

Don't drink and Deploy.

This is a true story, and it happened in 2019, about five months before the pandemic hit. It is a catastrophic production failure that I'm 100% guilty. Keep in mind, I was still under six months probation inflicted upon new hire. So this was a new hire, been there six months. And they have committed a crime.

The company I was working for at the time was releasing to a new market. With a new market comes new payment options. Of course, we wanted to allow every single payment method in every single county, right? So we had multiple conditions to build our final list of of available payment methods for each particular customer. That check was done in the FE. What is the FE? Why am I blanking on that? Finance? Front end? No, front end.

No, no. Yeah, of course. That check was done in the front end, my domain, while the implementation of the new payment method was done by a colleague in the payments team. I'll call him Steve. He was a newer hire than I was. During the whole thing, no one else could really help us since every single senior there was too busy with some other part of the new market release. It was a whole company effort of the Miracle releasing to a new market in a couple of weeks instead of months.

It was me and Steve figuring out our way through microservices. We only had each other to rely on, so we pair coded most of it. Just to add some spice to my life, the requirements kept changing. we were having issues with PayPal and Visa. So for around a little over a month, I'd get different requirements and conditions for which payment method should be available every other day. Oh, this is a nightmare.

I hate working with this stuff. People always complain about Stripe and PayPal, and the reason people hate them is because they grow so large that it is impossible. to figure all of this stuff out and keep it all straight as to what's available in which country.

The conditions were also fairly complicated, depending not only on the customer country, but also how many purchases the customer had done in the past. Whether it was a high-ranking customer, whether or not they had submitted documents before,

was considered validated since every time a new payment method was added, the norm had been touch as little as possible. The conditional tree was an absolute mess with many functions scattered through the utils file some of which add one line in them to call yet another function bro we have all been there

At some point, me and my partner in crime, Steve, couldn't tell if the new payment method was showing or not under the correct conditions because it was held just to figure out what the conditions for the... of requirement sheets were already added and correct or not. Steve and I decided to refactor the whole thing. Beautiful. Can we stop there for a second? Like, the legacy code that have been tweaked over and over and over to every little edge case possible, it is...

Almost never a good idea to just scrap it and start from scratch unless you have an extremely well thought out test suite covering all of these, which it doesn't sound like they did. Even for like... Back in the day, I had an old HTML site that had like... you know 25 files in each directory that was like index forward slash hyphen hyphen new 20 you know whatever and and you'd update something you'd be like why is this where i was not using the right one or whatever

And I decided to refactor that, and that was a nightmare too. And that was just straight up HTML and CSS. Okay. We looked at each other and say at the same time, screw it. We yanked out the whole component, gutted the so-called conditional tree. We burned the utils file to the ground, and we added tests when there were none. Days of pair programming, blood, sweat, and tears, and all that's left.

left is to confirm in the staging server i have cobwebs on my mouse pad and it keeps messing up my scroll i'm like going like this every single time that i lose my spot because this one's so long okay We hit a couple of simple problems. First, we couldn't properly validate test customers, so we set it to manual. We use a forced response that had to be configured in certain test API. Everyone else was also testing stuff in that same...

staging server and forced validation was getting in the way of the customer validation API test. Again, Steve looks at me like he's saying, we are nice to everyone who's going to be nice. to us. Again, we go screw it. We hard coded the customer is validated in the front end. Hard coded that the customer is validated. Fine. Sure. They're all validated. This is the first fork in the validation tree, and if the customer was not validated, no payment method is available.

We check, double check, triple check every situation, every country, every possibility in that FSM is accounted for. And we see and document everything is working. And we test as far as we can test. See, there was another. little thing. We couldn't complete payments with this new method because there was a test API for that method, and it never made it into the documentation. Steve and I couldn't find a single soul who knew about it.

Maybe they were a spirit. Time was running out. This was Wednesday morning. We had to push to... code before 3 p.m. There was one last test left to run. The case where the customer is not validated, the customer validation guys are still testing their code. So we can't use the forced response API again. We go screw it and we car. coded the whole thing. 15 minutes to deploy the code again to the staging server. We look at it. We see it's working. We harass both of our teams.

to get the PR containing all of the back-end and front-end modifications approved. Another 15 minutes merge to master, another 15 minutes to merge to production, and we are done. The release party is about to start. Crack open some brewskis, right? Boss drags us all into the party lounge. Get in here, boys. I bring the laptop to the party because my name was on the production of deployment. So I was ready to be on call, monitoring certain channels, error logs for at least two hours.

Steve brings his laptop. We grab a couple of beers and split the task of monitoring. We sip our beers. We laugh. We talk about how crazy I was. And we bask in the light of how much we managed to simplify that code. Then, oh, we see the curve showing payments, transactions. action activity flatline. Oh, I, that is like the people who don't know if you work in payment processing, anything.

The moment that you make code changes and then all of a sudden in the actual payments window you see a flatline, you are going to panic mode immediately because you goofed something up, right? I look at Steve. He's as pale as a ghost. I'm as pale as a ghost. Hand shaking. We go to the logs and try to find an inkling of a clue what the crap is going on. There are no errors. Nothing crashing. We dig deeper. We enable debug in production knowing full well.

well, we might just crash a couple of services. We see a bunch of logs. Customer not validated. Exiting out. I bang my head on the table a couple of times. I know, I say carefully. Steve, confused, just staring at me. I open the front end code and it dawns onto him. Crap. We forgot to un-hard code the thing, didn't we? Classic. Oh, no. Oh, no. He bangs his head on the table a couple of times. We look around to see if anyone had noticed everyone was partying.

I create the PR. We change one Boolean from false to true. Steve quietly approves. I try to breathe deeply while looking at Jenkins, feeling those 15 minutes stretch out over an eternity. I reach out to another beer. Split second, I crack the beer open. It goes pop. I feel a hand on my shoulder. I look up and I nearly gagged. It was our CTO. Oh, CTO means business. I fill out my soul, leaving my body, as he says firmly, please don't drink and deploy.

My brain was still trying to process it when the CTO bursts out laughing and leaves. Steve looks at me. We are so fired. We cheer with our beers as the deployment finishes. We drink and celebrate our own little party as the payment transaction curves go up.

Oh, man. We both had to sit through a postmortem of shame later that month to get scolded on how many millions exactly the company lost in this hiccup. Bro, if that loss is a milli... are higher that's uh that's a scary situation uh that's scary but also like if you have that much traffic and that much payment unbelievable

That that gets through. But I think it's all too common, these stories. Not just unbelievable that that gets through, but unbelievable that that gets through and gets put on the shoulders of a six-month-old hire. That's a process failure right there. A six month and a less than six month old hire. Oh, man. No, we didn't get fired because of that incident. The shame of sitting in that postmortem was probably more traumatizing than being fired.

The incident caused a solid bond between us. He was my favorite colleague until he left. Wes, I give this one a good seven. A good seven creepy crawlies because. If it starts with a million, that bumps it up into, you know, higher than seven territory. When the stakes are this high and the stories are so funny, it's a 10 out of 10.

for me. It's a 10 out of 10. And like, if there's anything that helps you get your deploys down to be as fast as possible, it's stuff like this, where... you know the fix is in or you hope the fix is in but you got to sit there for half an hour while you wait for the thing to to deploy and and be pushed through you know because like some of these sites are down and

Hopefully you can cut back. But it sounds like this was such a big one that there was no rolling back and you could only fix forward. Yes. By the way, these fangs are digging into my lip and I'm going to have like... Awful. actual poke marks in my lip. That's real blood, folks. It's not makeup. It's about to be. I'll tell you that. It's about to be. Alright, last question.

Discount.

Story we have for this episode and then coming up on Wednesday, we have a full hour of them as well. Plenty of them. It's called Discount. You get a discount. And you get a discount and everybody gets a discount. I work for a large company that offered multiple subscription-based products. Man, these.

these ones I like the ones where the database goes away but I really like the ones where real money is involved and I really really like the ones where products go out before they realize it's that's a problem My task was to implement a discount feature in the CMS so that a content editor could add discounts to a product.

Everything was tested and deployed to production without a hitch. Until 12 hours later, someone discovered that each and every product now had a discount. Products that had no discount set up used the first available discount in the list. And it happened to be conveniently sorted from high to low. This was a cause of an API in our CMS that returned a field such as object.discount.value. But my code only checked if object.discount exists.

which always was the case. It's true. An empty object is truthy, folks. Although the financial loss was very extensive. My boss was relaxed about it and understood that mistakes happen. When I eventually left the company years later, I got a postcard with the actual Oprah. You get a car meme as a goodbye gift. Sometimes you see. these like, like pricing errors and people like freak out.

Like Abercrombie had a major pricing error maybe about six months ago. And I'm still not sure if it was a pricing error or if it was just like an intentional marketing campaign. When those pricing errors go out, it's nuts. Like once when I was in university, we found a coupon. In Canada, we had this website called Red Flag Deals. And anytime there was a pricing error or a coupon or a good deal.

it would go up on that website and people would just destroy it. So we had this one that was $5 off $5. So we went around to every, it was called Pharma Plus, like a CVS in Canada. We went around to every Pharma Plus.

because you're we're a college student and we have more money than brains or sorry more time than money and brains yeah right yeah and we just we went to every single one and bought five dollars worth of stuff and then went back in and bought five dollars worth of stuff and just kept doing it until they stopped us and we just went to the next one and i got like maybe like a hundred two hundred dollars worth of like deodorant and chips and all this hilarious stuff and i just

I feel bad now looking back, like some poor guy pushed that coupon out on a Friday afternoon. It was a Friday and just...

Went home for the day. And then by Sunday morning, they had stopped it. But it was running rampant. Yeah. One thing I always laugh about is when people are like, talking about software bugs and like sports apps or something like espn thinks this player plays for this team so it's like no espn doesn't think that it's like some poor intern who pushed a wrong value in the app and all of a sudden you know it's like uh

Some poor person is now getting the heat of the whole company because of that, even though it's an insignificant little thing, right? Well, at least you give us a laugh. Many of these stories people send is years later after the PTSD of the event has done. Man, I am hot in this shark costume. But...

So that's the end of the first one. Should we just keep rolling? Because I don't want to end the live stream. No, we'll keep rolling, but let's wrap the episode. Well, thank you folks for joining us on this first. spooky tales of spooky web developer stories where we found real scary situations that real developers found themselves into. We will catch you on Wednesday with a full hour, for this was just a first taste, the first bite of these spooky stories. Out.

peace just kidding it's just a costume i didn't get eaten oh yeah i was gonna ask that you actually recorded that song like that didn't sound like ai that was really good Would you like to hear it again? Folks, this song is not AI. I recorded this myself. Play it. I'm going to grab a drink. One sec. Okay. This is not AI. I was working in my code late last night when my eyes beheld a creepy sight for my code was working with no reason why and then I sought

To my surprise, it was a hack. It was a browser hack. A browser hack. With Macromedia Flash. It was a hack. It really saved my ass. A browser hack. It was a browser hack. Is that you doing the highs? Yeah, that was me doing everything. I did one take on all the vocals. And then I did a second or third take to do some harmonies and backups. But yeah, that was me singing everything. No autotune, folks. I was just singing it. So sometimes I forget that I was a music major.

sometimes i forget about that there's a different life that that was very good i don't have any sort of talent like that

This transcript was generated by Metacast using AI and may contain inaccuracies. Learn more about transcripts.
For the best experience, listen in Metacast app for iOS or Android