Comment by mrkeen

1 day ago

I always used to wonder this about software stacks even prior to LLMs, but it seems more relevant now somehow:

When will Uber (or your favourite company) be 'done'? They've been writing software for 16 years.

They match drivers to passengers. More software isn't going to increase the chance that I seek them out instead of taking a bus or train.

Will their software be finished in 20 years? 80?

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)

      1 reply →

    • 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!).

    • 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.

      7 replies →

  • 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.

> When will Uber (or your favourite company) be 'done'? They've been writing software for 16 years

I suppose it becomes easier once the browsers, Android and iOS have been frozen for a little longer than 16 years. Nevermind the changing regulatory field and new products (when was Uber Eats launched?).

In that 16-year period, Covid-19 emerged, as did viable self-driving and partnership with Waymo. A networked, people-facing app can't ever be "done", unless you have perfect prescience. Internal tech-stacks are a living thing: keeping a service that on the outside appears to be unchanging is a lot of work! Scaling is a lot of work! Scaling services and maintenance feed off each other.

I think you’re missing how complex international operations and optimization are.

Each country has their own laws around what uber is and isn’t allowed to do. This needs to be formalized in code. For example you actually call a taxi, though the uber app, and the amount you pay is per mile, not a fixed fare decided ahead of time. To add to this complexity, some cities will have their own laws. What happens if you take an uber from town a to b, where each one has different laws ? A lawyer probably has an answer but the app needs to adhere to that. On top of that laws change all the time.

Optimization, well you can always optimize something. speed, costs, paths etc. In a way this never ends.

I think the part we interact with as consumers is a tiny sliver of the complexity those services have to build and operate.

There are always newer technologies and techniques to be implemented. Better algorithms. Larger deployments. Better reliability. There are also almost always bugs to fix. So, so many bugs.

Weren’t they trying to do their own self-driving thing?

I think this is partly a problem with companies that have had heavy investment. Uber’s value isn’t based on what they are doing, it is based on the idea that they are going to render ideas like owning your own car or taking public transit obsolete (I mean that’s an exaggeration but less of one than it ought to be).

Well there is a lot of ongoing maintenance cost. There is probably still some marginal gains possible on the matching side. There are new products to launch. So while one specific software can mostly be finished, the total software of a company is always changing.

shiny new tools but people only want to use them on the same old problems. how can we innovate the development of crud apps even more?! that was what plagued the web dev landscape for some time. Constantly seeking newer lazier means of producing the same old product. I admit it has an allure but if companies are no longer constrained by dev effort / labour then they can only ponder their own reflection as the source of their failures.

Uber is at a large enough scale that this analysis doesn't work. You and I do not care even a tiny bit about "Eats for the Way", one of their planned features this year (https://www.uber.com/us/en/newsroom/go-get-2026/) that lets Uber Black passengers specify that their car should arrive with their Starbucks coffee order. But if 0.01% of users order 1 additional ride a month because of this, that's about 200k rides a year, which may well be sufficient to justify the development costs.

It’s death for a tech company to be “done,” since that means no more growth. So they will all bloat indefinitely until they implode or get absorbed. It’s simply the fate of all VC-fueled startups.