Fyi... have you already seen the famous Uber engineer comment on the complexity of the app?
https://news.ycombinator.com/item?id=25376346
As a case study, the simpler non-profit RideAustin app fails customers even after Uber/Lyft left Austin: https://techcrunch.com/2017/03/12/austin-is-fine-without-ube...
It takes a lot of money and engineer salaries to make high-demand apps that work. That's not to say Uber staffing isn't bloated; they may be. That doesn't change the fact that armchair observers may still drastically underestimate how many hundreds (or thousands) of programmers it requires to build something equivalent.
Not sure why Uber needs so many people in silicon valley when apparently you can build an equivalent service with a few hundred people in Estonia costing 1/10 per head.
> It genuinely blows my mind anyone who has written software couldn't have guessed at all of this from the beginning.
Classic. People cannot comprehend why it is complex and others cannot comprehend why it would not be complex!
You can really say this about almost anything once it's established. A startup can seemingly get really far with just a handful of people, but that startup is undoubtedly also dealing with only a handful of the use cases and edge cases. They also don't have legacy to maintain and upgrade. They also don't have all of the issues of scale.
Couple that with the fact that as outsiders we likely only see a tiny fraction of what the system ultimately needs to deal with.
I'd get this sort of feedback here whenever talking about Khan Academy's work, so I ended up blogging about it to give a sense of how much more there is than what people think about: https://www.kevindangoor.com/posts/why-khan-academy-has-so-m...
That kind of stuff used to involve a bunch of planning, now I just open an app and I immediately get a decent estimation of time needed and price to get to my destination, all over the world. I don't find it so surprising that there is a bunch of complexity involved there.
Any kind of business operating at these many places, having to deal with local laws, tax and payment processing in each one of them would require a huge and constant engineering effort.
It's also a food buying marketplace with, a package, grocery and meal delivery service.
There's also their autonomous research division.
Plus even with just the ride hailing service, they have tons of things that require engineering like load balancing of their drivers to requests in an area, and predictions for pricing and route timing.
There's also the whole messaging component to it.
It's a lot more complex of a company than it appears on the surface.
I was very surprised too. So much complexity must slow them down a lot.