The delivery rider who took on his faceless boss

On the morning of August 12 2020, the day he decided to fight the Uber Eats algorithm, Armin Samii woke earlier than usual. He dressed, made coffee and sat down at his computer where he remained for the next 16 hours, coding a web application and filming videos to show other couriers how to use it. He called it UberCheats, published it online at midnight and made it free to use.

UberCheats was an algorithm-auditing tool. Samii, who was working as a cycle courier for Uber in Pittsburgh, Pennsylvania, at the time, had lost trust in the automated system that essentially functioned as his boss. He had become convinced the Uber Eats app was consistently making errors and underpaying him. After weeks of trying and failing to get a human being at Uber to explain, he felt he had no choice but to take matters into his own hands.

One Must-Read

This article was featured in the One Must-Read newsletter, where we recommend one remarkable story each weekday. Sign up for the newsletter here

Samii’s app performed a simple, yet crucial function. UberCheats was able to extract GPS coordinates from receipts and calculate how many miles a courier had actually travelled, compared to the distance Uber claimed they had. There is no set rate for Uber couriers since the platform prices jobs dynamically. Pricing can change by the hour, between different geographies and individuals. It is affected by everything from surges in demand to the weather. Because, at the time, Uber generally hid exact delivery locations from couriers after they’d completed their trips, it was hard for them to confirm how far they’d gone. When a courier received a receipt, all they saw was an anonymised route from A to B, alongside the number of miles and what they were paid. This meant delivery workers had no way to double-check any discrepancies.

Samii soon began to hear from Uber Eats workers around the world, in Japan, Brazil and Australia, in India and Taiwan. About 6,000 trips were logged on UberCheats in total, 17 per cent of which appeared to have been underpaid. Whichever city they were in, drivers were seemingly being underpaid by an average of 1.35 miles per trip, according to the data they were logging in UberCheats. One email Samii received read: “I just used your extension and found that 8.31 per cent of my deliveries were affected . . . At least one every day. If you do gather enough data for a class action suit, I will gladly participate. Thank you for your work on this.”

Samii was part of a growing global workforce who labour in the service of algorithms. There are now more than a billion workers in their ranks in one form or another. Apps use AI that hands down edicts to these workers via their mobile phones. Machine-learning software allocates drivers their jobs, verifies their identities, determines dynamic pay per task, awards bonuses and detects fraud. It even makes hiring and firing decisions. And the rules these workers live by are highly changeable, rewritten based on a continuous stream of data.

Samii likes to tell stories, spinning little details into important plot points. When I asked him to describe what it feels like having a black box as your boss, his answer was: dehumanising, soul-crushing, frustrating. It’s a job with a false sense of autonomy. “Take my very first experience of it,” he said. In July 2020, when he tried to sign up as a courier to Uber Eats, the app required an identity check. He had to take a selfie, which would be verified by a facial-recognition system.

Except it didn’t work. He kept taking photos and the app kept rejecting them. “I know this is a huge problem for people of colour. I don’t know if it was my hair being bigger or a big beard that I had, but there was some sort of algorithmic error,” Samii said. “That happened three times.” The fourth time, he washed his hair, tamped it down and then opened his mouth so the algorithm could find it within his dark beard. Finally it worked. He could start working, but he had a niggling feeling that something was amiss.

Samii’s aggravations began to pile up on his first day on the job. He received repeated orders to collect burgers from a branch of McDonald’s that had shut down months before. Customers had no idea that Uber had neglected to delete it from its database. “I guess all the other drivers had figured out they had to reject meals from this McDonald’s, but I spent 45 minutes trying to convince Uber to remove it from their system. They said, ‘We can’t change the data in the system, but we can offer you $2 because you went there.’ I spent 20 minutes biking there and 45 minutes on the phone to them, and they gave me $2.”

Samii struggled to accept there was no human he could speak to who was empowered to make basic changes. He had been trained as a computer scientist, and he knew how easy it would be for a developer to correct this kind of error. But his colleagues weren’t bothered. They’d found that the app’s software didn’t reward honesty or responsible behaviour. It prized speed. So he learnt to get around the algorithm by cancelling trips to that McDonald’s, just like all the other drivers.

Samii is 32, the youngest son of Iranian immigrants who moved to California in the 1960s. Both his parents are civil engineers. His mother worked in the local government, figuring out how traffic flows were affected by road construction. His father built bridges and railway lines for the city of San Diego, where the family settled down. Samii remembers his father poring over architectural plans to work out engineering failures. When he was particularly stressed, he took out an old calculus textbook and solved problems until his mind was clear. Samii inherited this trait, but his stress-buster is debugging computer code.

Samii’s greatest love is cycling. He owns five bikes and his ideal job would have him on one of them throughout the day. When he moved to Pittsburgh from Berkeley, California, in 2019, he began attending community meetings with local elected representatives in a bid to make the city safer for cyclists. Now he runs a start-up called Dashcam For Your Bike, which helps urban cyclists record, save and highlight video footage to keep them safe on the roads. He is an activist by nature, living by the principle that any system can be improved if you care enough.

One time, he bought a microwave curry from the vegan section of the supermarket Target, which contained ghee — a dairy product. He tried to talk to the store manager about the danger of mislabelling food products but didn’t get far. So he submitted an official complaint to the county health department. Four weeks and a dozen emails later, the county sent an inspector to the store and the manager was forced to rename the section “vegetarian”. A few months earlier, at a different supermarket, Samii tried to claim a complimentary pint of milk offered as part of a promotion. The automated system rejected his claim, so he started a weeks-long correspondence with the store owners until he received $4 compensation.

Samii had moved to Pittsburgh to work for a self-driving car company, Argo.ai, a start-up funded by Ford and Volkswagen. He led a team that designed the user interface between human passengers and the autonomous vehicle, acting as a human-machine translator. But as he developed the software, he became aware that he was working on a two-tonne moving death-machine being tested on real roads. A wrong line of code could literally kill someone. In the summer of 2020, he quit, because he realised self-driving cars, while making driving safer, wouldn’t necessarily make cities any more liveable. As he took some time off to figure out what he wanted to do next, Samii knew he wanted to explore Pittsburgh on his bike. That’s when he had the idea to work as an Uber Eats courier.

It took just three weeks and 21 trips for Samii to quit. He didn’t need the money after six years working in tech and the experience was not enjoyable. His last day delivering food was blazing hot. He was biking home at close to 2pm, when he got a ping via the app saying it had a delivery job for him that was a six-minute journey out of his way.

He knew that on his bike that would be more like 15 minutes (the app calculated times based on car journeys, even though it knew he was cycling), but he took the job, which sent him to pick up food from a Middle Eastern restaurant. While waiting, he got another ping; someone else had placed an order at the same restaurant and he was being offered that delivery too. Because Uber’s algorithms hide the delivery destination from drivers until they’ve collected the food order, Samii had little information to make an informed decision. Nonetheless, he agreed to the second drop-off.

His first delivery was at the top of Pig Hill, one of the steepest in Pittsburgh. As he struggled up, drivers in cars rolled down their windows to tell him, “Good job.” Fifty minutes later, he got to the first customer, who said he couldn’t believe they’d sent Samii up there on a bike. Sweaty, thirsty and exhausted, it took him another 40 minutes to complete the second job. This customer had been waiting an hour and a half for his food. He was a lot less sympathetic than the first one. “I tried to explain but he just grumbled at me and took his food,” Samii recalled. “He tipped me like 50 cents or one dollar.”

The algorithm had told him the entire job would take six minutes, but it had taken 90. At first, he thought this was simply an error, or perhaps an estimate for a delivery by car. But then he realised that even a car couldn’t have made that journey in six minutes. “It wasn’t a discrepancy between biking and driving,” he said. “This was a bug.”

Over the next couple of weeks, Samii sent Uber more than a dozen messages. He kept receiving automated suggestions: log out, restart the app, restart the device, redownload the app, update the app, reset your network settings, if your wait is longer than 10 minutes cancel the order. None of this would fix the problem. In a spreadsheet where he had meticulously logged every contact with Uber customer service, Samii had recorded 14 emails and 126 minutes on the phone. “Finally, I got to a person who had the ability to pull up Google Maps and say, ‘This is a glitch.’ And she paid me $4.25 extra.” Then, in the middle of the night, a lightbulb went off: “I wondered if I could figure out the locations from the receipt, plug it into Google myself and check if it was correct.”

The trouble with trying to audit your own wages as a gig worker is that most delivery apps don’t offer a standard wage, or even an equation to calculate it. The courier or driver is shown the fee they will be paid before they choose whether to accept a job, but algorithms price each one using a formula that takes into account a range of variables. Anything could affect the price, from a worker’s customer rating, to the percentage of jobs they have declined, the demand and supply of rides or which city they work in.

Because the apps log workers’ data when they are on and off duty, recording every piece of information they can get their hands on — from their preferred routes, to how often they contact Uber services, how long they remain logged out of the app, how frequently they work and what jobs they accept and reject — any of these variables could feed into their wage calculation.

Samii knew he had been underpaid, but he had plenty of other unanswered questions: how many times had this happened? Who else was being underpaid? By how much? “It’s tricky because I assume how much you get paid has very little to do with distance but more to do with a machine-learning algorithm that decides what is the absolute least they can pay someone.”

UberCheats was an attempt to see inside the gig-work algorithms. The apparent miscalculation of distances suggested something app workers had always suspected — that algorithms have a blind spot for factors such as unexpected delays or gnarly traffic jams, bad weather conditions, roadworks and so on. These delays most affect the worker, impacting their ratings, speed and, eventually, their ability to get jobs and be paid.

In February 2021, a few months after UberCheats went live, Uber’s lawyers complained, asking Google to block the app on its Chrome browser, claiming people might confuse it for an actual Uber product. When Google did so, Samii sent a series of emails appealing to the search giant and the ban was lifted. But in February 2022, he took UberCheats offline. Despite its clear utility for the hundreds of drivers who used it, Samii found the technical upkeep burdensome. It required hours of his time whenever Uber decided to change its code, which happened regularly. Some drivers told Samii they had taken up their own cases with Uber and benefited financially, but Samii didn’t have the money or the appetite to take Uber to court. For him, the point of the tool had been to shine a light.

An Uber spokesperson said: “The Uber app reviews real-time information to provide the best price to appeal to the drivers or couriers in the area, helping to minimise waiting times for customers and maximise earnings . . . Our matching tools follow a process that balances a number of different factors such as time and distance to provide the best possible experience for everyone using the app.” The company rejected the idea that there were any technical bugs on the Uber Eats app leading to couriers being underpaid, but did not offer an alternative explanation.


A growing awareness of the plight of workers whose livelihoods are controlled by AI has made its way into the courts. In 2021, a court in Amsterdam where Uber’s European headquarters is based found that a competitor app, Ola Cabs, had used an entirely automated system to make deductions from one driver’s earnings, a contravention of data protection laws that give people a right to human review of algorithms. Separately, it asked Uber to provide the defendants in the case with their personal data. It also asked Uber to give drivers access to anonymised individual ratings on their performance, rather than providing an average of the rating across several trips.

The court, however, supported Uber on its claims of algorithm transparency. It didn’t order Uber to disclose any more information about how prices were calculated, or how drivers were flagged for fraud, and it rejected the drivers’ claims that Uber did not have meaningful human oversight in its processes around work allocation and suspensions. It was one of the first legal interpretations of the complex grey area between humans and AI decision-making, a crucial step in untangling the nuances of gig-workers’ rights, but the ruling fell short of empowering workers. Without access to the calculations made by Uber’s machine-learning systems, they would find it impossible to avoid falling victim to faulty computations again.

In February 2021, in a landmark ruling, the UK’s Supreme Court said that Uber drivers should be treated as workers with rights to minimum wage, sick pay and pensions, as opposed to self-employed individuals. For the first time, workers were able to claim labour rights that apply to most other industries, including sick leave and holidays. Similar rulings were made in Canada, Switzerland and France.

Roughly half of global gig workers now belong to a formal group or union, or have taken part in industrial action, a 2021 survey of nearly 5,000 workers found. Among food couriers, that number was 59 per cent. Even in China, where independent labour unions are illegal, workers are banding together informally, organising via large WeChat groups. The one thing that draws all these groups together is their collective rejection of the tyranny of AI-controlled work. Protests against Uber in Nairobi and Meituan in Shanwei were both ignited by arbitrary changes in how wages were calculated by app software.

On a rainy afternoon in the dregs of Pittsburgh’s summer in 2022, Samii grabbed his helmet and his bike, put on his hi-vis jacket and headed out to meet me and show me around his old delivery area. He had briefly reactivated his Uber Eats account, to get an update on the fees drivers were being paid since the pandemic, although he now spent most of his time building his start-up for cyclist safety.

Samii said he was encouraged by the greater legal protections that have been won for workers since he created UberCheats back in 2020. “I see it as a small step in the right direction,” he said. “The broader trend of people rising up against gig work exploitation has given a collective voice to [this] group.”

We trudged up towards Shadyside, a leafy residential neighbourhood densely packed with restaurants and cafés. This, Samii said, is one of the most lucrative areas for an Uber courier. Most of the money that workers make here is from tips, so they feel compelled to take on orders from wealthier neighbourhoods. It’s what the app’s algorithms incentivise too. That way everyone makes more money. The algorithm kept on widening economic gaps in an endless loop: “You train the algorithm, and the algorithm trains you,” he said.

Madhumita Murgia is the FT’s artificial intelligence editor. This article is adapted from her book “Code Dependent: Living in the Shadow of AI”, which will be published by Picador on March 21

Follow @FTMag to find out about our latest stories first and subscribe to our podcast Life and Art wherever you listen

This article has been amended to correct a reference to the UK’s Supreme Court ruling that Uber drivers should be treated as workers, not employees, with rights to minimum wage