When a Data Supplier Breaks Production
In this episode, we return to Finland, where an international burger chain suddenly found itself cut off from the one thing every fast-food operation needs to function: real-time operational data. A third-party data supplier pulled the plug without warning, leaving kitchens blind, dashboards empty, and the entire workflow stuck on “please wait.”
What followed was a truly Nordic-speed DevOps rescue mission — rapid troubleshooting, frantic config changes, un-authorized workarounds, and a race to restore data before the lunch rush turned into a customer revolt.
From vendor surprises to emergency pipelines, this episode serves up a full stack of DevOps chaos… with cheese.
Listen now on Apple Music, Spotify, Deezer, Youtube or where-ever you get your panic attacks.

The DevOps Royale With Cheese: Backend Blunders, Quick Fixes, and Burger Meltdowns in Finland
Welcome to another episode of IT Horror Stories—where the bugs bite harder, and DevOps gets extra saucy. If you’ve ever wondered what goes really on behind the scenes of mobile apps, parking garages, burger menus, and the odd Finnish reindeer, you’re in for a treat. Grab your coffee (or a Coke) and get comfy, because we’re rolling out the “DevOps Royale With Cheese.”
Finnish Fiasco: The Perils of Precise Nordic Software
Let’s kick things off inside a parking garage in Finland, where getting stuck isn’t just a matter of bad luck—it’s a testament to the country’s precise and private software development.
“No one in the testing cycle and development cycle ever thought that an actual non Finnish person would actually need to use this. All the test cases were written by and for Finnish phone numbers.”
Imagine you’re trying to exit a parking lot, and the system just doesn’t recognize your foreign phone number—or your license plate, if you happen to not be from Finland. Turns out, Finnish software developers are so focused on their own people that they forget entire countries exist beyond their borders.
- Why is this a problem?
- Every test case was written for Finnish phone numbers.
- No one considered actual foreign users.
So, if you’re Swedish and trying to park in Finland? Good luck! The rivalry, let’s just say, is “special.” And yes, that’s a subject for a different podcast.
The Nordic Approach: Precision Over Inclusion
Finns pride themselves on privacy and precision. When it comes to software, that means…
- Minimal data sharing
- Local-only test cases
- Cross-border compatibility? Not always.
So what happens when someone foreign tries to use the system?
- You can’t get out of the garage
- You can’t pay with your phone
- And the system doesn’t even know you exist
Let’s just say, you won’t see much Swedish software being tested in Helsinki any time soon.
DevOps Gone Wrong: When You Don’t Know What You’re Ordering
This saga isn’t just about parking garages. It’s about companies not knowing what they actually want when they order software. Here’s the classic scenario:
- Client wants a mobile solution for parking.
- Client pays. Software gets delivered.
- Minor issues crop up.
- Example: Not accepting non-Finnish phone numbers.
And that, ladies and gentlemen, is going to cost you tens of thousands of euros after the fact. Developer Alex puts it bluntly:
“The company who does the software doesn’t know what they’re delivering. One hand doesn’t know what the other one is doing and stuff like this just happens.”
Global Problem, Local Flavors
- This isn’t just a Finnish issue. Similar DevOps confusion happens everywhere.
- Payment gets made. Bugs get discovered after launch.
- Is fixing them necessary? Sometimes yes, sometimes no. But someone’s gonna pay.
The Elixir Adventure: Job Security or Just a Bad Joke?
Alex, our backend developer from Finland, gets hired to a consulting company specifically because he’s a Python guy. They’re excited—finally, someone who speaks their language.
But guess what? His very first project is as far from Python as humanly possible.
Welcome to the World of Elixir and Erlang
“The gateway was developed on a very, very niche programming language and framework. … Long story short, it’s a language called Elixir.”
Elixir: a functional programming language based on Erlang. Not exactly your everyday, run-of-the-mill Python project.
- Why Elixir?
- The previous developer had complete control to choose any language.
- Bored of the basics, decided to spice things up with something obscure.
- Hello, job security! If you’re the only one who knows the language, you’re hard to replace.
“Well, I have news for you. That’s called job security.”
Alex finds himself not only learning Elixir but dealing with menu and pricing gateways for a multinational burger company. Menus, prices, combos—you name it, all coming through Elixir code.
Code Deep Dive: Elixir vs. Python
Here’s a taste of what Alex was up against:
# Elixir example: Fetch menu datadefmodule MenuFetcher dodef fetch_menu_data do# code to fetch menu data from APIendend# Python equivalentdef fetch_menu_data():# code to fetch menu data from API
Erlang’s been around forever, but Elixir brings it into the modern era. However, if you’ve never touched it, it’s like having nightmares about languages you’ve never seen.
System Meltdown: The Day the Burgers Stopped Flowing
Let’s fast forward to the day everything exploded. Alex is now maintaining the backend that powers all burger menus and pricing across Finland for this massive chain. This backend:
- Gets menu and pricing data from a single external source—a company in Southeast Europe.
Everyone depends on this:
- Burger joints
- Mobile apps
- Click-to-order screens
The single source of truth is a Windows server maintained by a company in Southeast Europe.
“Every single office of that burger company has to contact that machine to get all the pricing and other infos. And every single burger place, a burger restaurant also contacts that single.”
“What could go wrong? A couple of things. Yes. That’s why we’re here.”
The Catch: Once-A-Day Data Fetch
Documentation? Barely more than a single A4 piece of paper. The rules:
- You can only fetch data once a day. (No joke.)
- Why? Because their Windows server “cannot handle any more traffic and database queries.”
If you think this sounds fragile, you’re right.
Let’s Paint the Picture:
Alex:
- Caches data locally while developing.
- Works hard to avoid hammering the external API.
- Tens of thousands of menu items (all in XML).
But one morning, disaster strikes:
- Backend fails to fetch data.
- Authentication fails. API says: “Nope.”
“All the mobile apps, all the screens were now dead. They were crashing, they didn’t work.”
It’s 8:30am. Panic sets in. No direct contact to the company in Southeast Europe. No burgers for Finland.
Quick Fixes: Man-in-the-Middle to the Rescue
This is where quick thinking kicks in. Alex remembers he has yesterday’s payload cached. He fires up a simple web server, makes it look like the API, and serves the menu data from his own domain. The emergency domain was… well… let’s just say the DNS was easy:
“It was something like fuckup.com so I got that thing working and we made a really quick and dirty patch straight to production where we just changed the address of the external API to use my server instead.”
That’s right: The entire country of Finland was getting yesterday’s menu data from fuckup.com.
- No new burgers? Good!
- No price changes? Perfect!
- All apps started working again.
“In all that stress and trouble and worry and sweat and tears and blood and whatever fluids you got. I actually smile quite a bit when I realized that it is working and where the payload is now coming from.”
Performance actually improved. Turns out, Ubuntu serves better than a shaky Windows box under someone’s desk in Southeast Europe.
The Fallout and Recovery
All restaurants and apps were now live. But if a new burger launched, or a promo hit, no one would know for about a week and a half.
- Manager calls everyone, everywhere.
- Eventually gets API access restored.
- Alex is quick to never repeat the mistake: toggling between “live” and “local” data sources became much less ambiguous.
Final Decisions: When Your Prototype Gets Declined
With the system restored, Alex keeps things running smoothly. But eventually, requirements change. Alex realizes he’s the only one who knows how to work the existing software (Elixir/Erlang). That’s not sustainable.
So he builds a prototype in his favorite language: Python.
“I presented this working prototype to the managers and they just declined that. Nah, no, we’re not going to make this silly mistake again of using some idiotic programming language.”
Python: obscure? Apparently, the managers think so.
- The team switches to a language they had more experience with.
- Alex, not wanting another pile of misery, hands over his knowledge and moves to a new project.
New Beginnings: The Python Project
Alex finally gets what he wanted—an actual Python project (same employer, different customer). Angels sing, beer tastes better, and life returns to normal. No more Elixir nightmares.
Wrap Up: Lessons Learned, Beer Tasted, and Cheese-Burgers Earned
What a ride! Finland’s journey through DevOps, backend mishaps, obscure languages, and burger starvation.
- Centralized APIs: Fragile, especially when supported by old Windows servers under someone’s desk.
- Quick Thinking: Local caching + man-in-the-middle = entire country’s burger menu fixed overnight.
- Communication: Would have saved everyone days of pain.
- Job Security: If you pick a niche language, be ready to be the only one who knows it.
“If you want to support us, please check out our Ko Fi and our merchandise at shop.it horror stories euro. Thank you for tuning in and we will hear you the next time!”
Bonus: Finnish Snack Hall of Fame
Ordering burgers in Finnish isn’t always easy, but if you want to play it safe, just say “double cheeseburger.”
- Double cheeseburger: Scrabble score through the roof!
- Tuplapihvi: Two plus? Double patty!
Takeaways
- The importance of realistic test cases (don’t forget foreigners!).
- Modern software solutions need clear requirements—otherwise, you’re stuck with thousands of euros in fixes.
- Sometimes the best possible patch is a dirty, man-in-the-middle workaround (approved, of course).
- Always keep a spare domain handy for emergencies.
- If your prototype gets declined—it might just be for the wrong reasons.
A Final Quote to Savor
“That’s my little story of how to do backend and mobile developing in Finland…by having spare domains on hand that you can quickly have a man in the middle solution to keep the burgers going.”
Until next time—keep your devops tools handy, your hotfixes spicy, and your burger menus cached!
sometimes it almost starts an international incident. Either way, it’s rarely boring.
Cheers!

Leave a Reply