I'm not going to try and give an exhaustive list, but as a rough explanation: things get really, really hard when you're operating at Uber scale (hundreds of thousands of riders on trip at any one time, each demanding low latency and reliability):
- Product: native clients for each side of the marketplace in each vertical (rides, eats, freight, atg, et al), maps, localization for every country with a presence (not just language, but tax, legal, hundreds of region-specific modes e.g.: tuk tuks)
- Infrastructure: hardware teams to build on-prem DCs (cloud can get very expensive at scale), software networking to deal with said low-latency traffic, storage to optimize for reliability/latency/cost, observability (metrics, logging, alerting, tracing), security, et al
- Data: insights, operational support, routing, et al
- ATG
Hope that gives a better idea.
VMware for example, assuming they don't use ProxMox lol, is super expensive, hardware maintenance, network, power, building, etc.
I still feel like this is a ridiculous amount of workers when one takes into account that the product they're offering is essentially a smartphone app with a backend service that pairs drivers and customers, which regular cab markets do without almost a single person.
To me Uber feels like some sort of soviet-era experiment of replacing a market with someone micromanaging cars
It's like saying Microsoft Office is "just an app that writes documents" or that GMail is "just an email client."
Uber and Lyft do a whole lot more than what you described on the scale of millions of concurrent users in dozens of countries.
Your comparison to a taxi isn't really a great one because you see taxis sitting around on curbs and driving around empty looking for a passengers all the time. A lot of the cost of a taxi is you paying for idle time.
which is my point. There's no use in engineering and coordinating something that organises itself. The utility of a centrally managed service needs to be balanced against the resources it costs to run the operation.
Taxis actually don't spent as much time sitting around as you think, traffic organises quite spontaneously, drivers know where to wait and downtime is usually quite low. Which is why it is so difficult for Uber to make a profit, the efficiency gains compared to the engineering effort that goes into them are miniscule, which is the disease of all centrally managed systems. The Soviet planning buro managed millions of factories which sounds impressive, it doesn't mean that they were any good at it.
If Uber would realise such huge efficiency gains in organising rides the result would either be higher wages than taxi companies or lower prices, which would make them instantly profitable, no billions of subsidies required.