This article is more than 1 year old
Building Excel-like UI for Uber's China ops exposed Microsoft calculation quirks
Developer recounts rideshare outfitattempts to crack the Middle Kingdom market
Updated A developer named Matt Basta has posted an extraordinary account of working for Uber, where he was asked to develop a substitute for Microsoft's Excel spreadsheet program under peculiar circumstances – only to see his work discarded.
Writing on Substack, Basta said he went to work at Uber in 2016 after a former colleague from cloud storage locker Box suggested he'd be perfect for a job on a "Crystal Ball" team at the rideshare giant.
Basta was told that Uber data scientists built models in the R programming language that the profession favors, and then tried to run those models on laptops that ran overnight.
"When the data scientists arrive in the morning, the laptops whose models didn't crash have data that's maybe usable that day," Basta was told. Models that crashed represented blind spots in Uber's data.
Basta therefore worked on a project called "R-Crusher" that automated the model-making process to make it more reliable. More reliable models were needed because Uber was trying to conquer China at the time.
“Nobody really cared very much about the processes for the US and any other country — we had less to lose and Lyft wasn’t seen as remarkable competition except in the handful of cities they were operating at scale,” Basta wrote. “China was a make-or-break opportunity for Uber, China was only going to succeed if we had the data for it, and the data was going to come (at least in part) from R-Crusher.”
In mid-2016 Basta said he was given another task. Uber had a model “that ran overnight to generate data for anticipated ridership in China.” Uber would feed that data into “a tab on a special Excel spreadsheet” that produced “a little interactive Excel tool for choosing driver incentives.”
Basta and his team were told to present data from the spreadsheet on the web so staff could acess the model, preferably with an interface that was similar to Excel becuase that's what users knew best.
“Every day that we don’t have this tool as specced, we’re losing millions of dollars,” Basta says he was told. Fixing that was critical because Chinese ride-share company DiDi was a real threat. And as stated, Uber had by this time mostly stopped worrying about its main US rival Lyft, Basta wrote.
- Servers as pets or cattle was 2012. Now it's McMansions or Hotels
- Like Uber, but for China: Beijing creates state-owned meta rideshare service
- DiDi, China’s Uber analog, booted from local app stores for data naughtiness
- Asia's top rideshare outfit, Grab, is late paying fines for running late
As luck would have it, Basta had worked on a basic collaborative spreadsheet during his time at Box.
Basta described the scenario he envisioned for that project as moments in which a full spreadsheet is too much, but “you just needed a place to put together a handful of formulas, format it with some headings and text, and share it with other people. Sort of like an IPython notebook for spreadsheets.”
Nothing came of the project at Box, but Basta kept the code and decided it might be the basis of a tool to address Uber’s needs.
“I wasn’t going to be Excel, but it would behave sort of like Excel, it would read an Excel file as input, and it would Excel formulas on some data,” he wrote. “That was about as close to ‘just make it like Excel’ that we were going to get. And it also meant that we could skip the process of translating thousands of dense formulas to JavaScript.”
Basta’s post details how he built the tool, but gets really interesting when he started testing it – because his kind of-spreadsheet and Excel produced different values when working with the same data. After plenty of internal discussion, he figured out the cause of the discrepancy, which he described as follows:
You see, when formulas create a circular reference, Excel will run that computation up to a number of times. If, in those computations, the magnitude of the difference between the most recent and previous computed values for the cell falls below some pre-defined epsilon value (usually a very small number, like 0.00001), Excel will stop recomputing the cell and pretend like it finished successfully.
Basta’s efforts produced a tool that looked like Excel, ran in a browser, and produced accurate output – which Excel could not. Colleagues were mightily impressed that Basta had hand-coded this tool and it went into production in July 2016.
Then Uber's head of finance asked why it displayed formulae.
“You said to make it just like Excel” was Basta’s reply.
At which point the manager offered this comment:
And there we were thinking that interns were just after a solid entry on their CV and some drinking money!
In the first week of August 2016, Didi acquired Uber China.
“Most of us found out because our phones started dinging with news stories about it,” Basta wrote. Once the deal was done, his tool was binned. He uploaded it to GitHub.
Basta doesn’t mourn his work. His post mentions the “cattle vs. pets” metaphor that suggests computing resources aren’t worthy of sentimental treatment. He also wrote he doesn’t see the binning of his tool as a failure.
“You won’t have the opportunity to take lessons away from the project if you see the sunsetting of the project as a failure: there’s often much to learn about what non-technical aspects of the project broke down,” he wrote.
“Perhaps there aren’t any, and maybe management is just a group of fools! But often that’s not the case; your delicately milled cog wasn’t ripped out of the machine because it was misunderstood, it was ripped out because it didn’t operate smoothly as a part of the larger system it was installed in.” ®
Updated at 05:00 UTC, September 20th - The Register has corrected the text to reflect that Uber did not oppose the use of Excel by its staff, and made several other alterations requested by Matt Basta, who pointed us to a Hacker News thread that offers more detail on his work on this project.