We’ve all been there. You’re craving a McFlurry, or a Shamrock Shake. You drive to McDonald’s, excited to fill yourself up with cold and sugary goodness. But when you finally make it to the counter, you hear those dreaded, devastating words: “The ice cream machine is broken.”
A few hours ago, a 24-year-old software engineer launched McBroken, a website that aims to end such incidents once and for all. The site displays a map of every McDonald’s location in the US, denoted by clusters of dots. Locations with a working ice-cream machine get a green dot; locations without one, a red dot. A column on the right compiles statistics — currently, 7.54 percent of McDonald’s ice-cream machines in the US are broken, as are 15.22 percent of those in New York.
Rashiq Zahid came up with McBroken over the summer. In July, he visited a McDonald’s in the Kreuzberg district of Berlin and attempted to order a McSundae from a touchscreen kiosk — but no ice cream was available. He attempted to order from the mobile app, but was similarly thwarted. His trip had been for naught.
“I was like, there must be something that can be done about this,” Zahid said.
So he built a bot.
Zahid started with the McDonald’s mobile app, which already lets you place an order at any McDonald’s location. It works like shopping on Amazon or Grubhub — you add the items you want to a cart, and pay when you’re ready. But if your chosen location doesn’t have a working ice-cream machine, you can’t add any items containing ice cream to your cart — they’re marked as “Currently unavailable.”
“I love poking around in different apps and just looking at the security features and the internal APIs,” Zahid said. “I am pretty familiar with how to reverse-engineer apps. I was like ‘Okay, this should be pretty easy.’”
Click a dot to see when it was last checked.
Select an address to zoom in on its location.
You can also check in on what appear to be fake test locations.
It turned out to be harder than he’d thought. Initially, he created an API that attempted to add a McSundae from every McDonald’s location to its cart once every minute. The app figured out what he was up to and blocked him — “It was like, you can’t do this, you look like a bot,” he recalled.
After a night of trial and error, Zahid figured out the magic time frame. Now, his bot attempts to add a McSundae every 30 minutes. If the bot successfully adds the item, it lets McBroken know that the location’s machine is working. If it can’t, the location gets a red dot. (A Twitter user claiming to be a McDonald’s employee has confirmed that the method works.)
Zahid first tested McBroken in Germany, which has around 1,500 locations. He biked to every location in Berlin, placing manual sundae orders to determine if his bot was returning the correct information. It passed with flying colors. Today, he’s expanded to the states.
“I was like, this would be pretty interesting for Germany, but it would be amazing for the US, which is basically the capital of McDonald’s,” Zahid told The Verge.
Within 20 minutes of its launch, McBroken received 10,000 visitors. It ran sluggishly at first, and eventually crashed. “I’m running this on a server that costs $5 a month, so it was bound to crash,” Zahid said. After an hour of troubleshooting, which involved offloading some traffic, Zahid now assures me that the site “works perfect.”
But he’d intended the tool to be a joke — and is shocked to hear that people find it legitimately useful. “I just made it for fun,” said Zahid. “But people were like ‘Wow, this is the best thing I’ve seen this entire week.’”
Who knows if McDonalds will end up shutting this operation down — but David Tovar, McDonald’s VP of US Communications, seems to be in support. “Only a true @McDonalds fan would go to these lengths to help customers get our delicious ice cream!” he tweeted this evening. For now, keep an eye on McBroken to prevent McDonald’s from breaking your heart.