Comment by goldenarm
1 day ago
Most of the codebase is custom integrations for local markets. You can systematize some of it but most of the complexity comes from there.
1 day ago
Most of the codebase is custom integrations for local markets. You can systematize some of it but most of the complexity comes from there.
Can you provide an example? What is different about running Uber services in Chicago vs. Indianapolis?
Vegas: ordering a tax "to a hotel" - hotels have different entrances, pickup / dropoff there during crazy times is hard. Uber UI for Vegas is unique / some features are designed to make it easier for driver and passanger to find each other
Airports: different regulations, different rules for pickup/dropoff. Also scammers who pretend to be in a car, walk with their phones around pick-up ares in airport and do bait-and-switch (saw that in Istanbul SAW and in Dubai Al Maktoum)
Additionally each city often has their own fares they impose, restrictions / etc
The New Delhi airport has a single pickup location for all Uber rides (which moved recently). Also the Indian government requires separate reporting from Uber depending on whether the rider is using an Indian or foreign credit card to pay. They also have to report to the government anyone who hailed the cab on WiFi rather than LTE (for "security" reasons they can never quite articulate).
Every different country Uber operates in is a moving legal and regulatory target
There’s been a bug when ordering an Uber in my (quite small, circa 20k pop) town recently in that they think our annual festival (which is in July) is on now and try to force a stupid pickup point which in my case is about the same distance from my local pub as my house is but in the opposite direction. I guess things like this need some sort of maintenance (which apparently they’re not getting!).
There's an excellent HN thread that talks about this very question (that comes up on HN every now and then - what _does_ company X do that needs so many engineering resources?): https://www.uber.com/us/en/blog/how-we-unified-configuration...
For example in Seattle you pay county fees, and then state fees, and then maybe special fees if you were picked up in the airport.
I took a ride from SEATAC to my hotel in downtown Seattle and besides the ride itself, there were 5 other items on the bill, 4 of which are specific to the place I used Uber.
Then I had the return trip from my hotel to SEATAC, on this one I got EIGHT items on the bill, on top of the ride fare. Some specific to Seattle itself, some specific to the road that the Uber took (a tunnel fee - which is different based on the direction you take it in), etc.
So the real question is what is NOT different between two locations. Less than 15% of the bill.
I also took Uber in India, where you have to share a one-time password with the driver for example, which I've never seen in any other country.
In some other countries the Uber app exists but Uber drivers are actually taxis, so you're actually ordering a taxi via the app.
Uber has also been public transit: https://www.theguardian.com/cities/2019/jul/16/the-innisfil-... (like actually public transit, not "lol they reinvented busses again" (though, lol, yes that too))
Essentially every single airport in the world is custom UI and custom walking path guides and pickup instructions, and rules for where pickups/dropoffs/etc can occur can change multiple times in a day, much to everyone's enjoyment. They're almost all private property, and are so valuable that whatever they want is what they get.
And food. Most/~all? major brands get custom integrations.
Hundreds (iirc) of identity verification providers, most or all custom, and constantly weighed against cost and accuracy because it ain't cheap and it ain't good but it is far better than none (both legally and ethically).
No idea how many payment sources they accept, but it's definitely a lot more than anyone who hasn't lived on 5+ continents thinks.
And remember that this is all international. So scale is huge and law changes are constant and frequently conflicting. Darn near every useful feature is illegal somewhere, at some time, for both good and bad reasons.
---
This is not at all to say I think Uber is efficient, clearly it is not. Not by an enormous margin. But there is a legitimate need for truly absurd complexity, because the world is not consistent. You see similar things happen anywhere [thing] tightly interacts with humans.
> I also took Uber in India, where you have to share a one-time password with the driver for example, which I've never seen in any other country.
I was prompted for this on the US west coast this week. If that feature was ever India-only, I don't think it is now.
1 reply →
Sri Lanka does the OTP too. But then again India does OTPs for literally everything because your entire identity is tied to your SIM card.
Ah local regulations and fees. Not so much the core service algorithms. That makes sense.
Use Link next time. Only $3
1 reply →
Sure, but custom integrations seem unlikely to explain the majority of Uber's technical headcount. Let's say they average a dedicated engineer for each of their 1000 largest markets/locations. Let's assume another 200 across the countless smaller markets. Let's assume 50% overhead atop this for things like infra, tools, and management. These all seem like exceedingly generous estimates to me.
They actually had 5,000 engineers in the tokenmaxxing blog post. That's a lot of engineers for the rest of Uber's business activities.