4 ms·
A good place to start would be to go through the Uber UI and click through every button and every page that exists. Now create a driver profile and do the same
by dntrkv 6y ago
A good place to start would be to go through the Uber UI and click through every button and every page that exists.
Now create a driver profile and do the same thing.
Now create the multitude of other special profiles they have and do the same.
Now do the same for Uber Eats.
Now do the same for Eats but using the restaurants version of the app.
And the couriers.
Now get in on Uber Freight (and any other projects they have) and do all of the same.
Now do all of that again for their other platforms (iOS, Watch OS, Wear OS, Android, Web)
Now access their internal tools that make all of this possible and do the same.
Now think about localizing all of that. Handling special cases for different places/languages/legalities. Think of all the different payment integrations. Security issues. Infrastructure. Technical debt. AB testing. Metrics. Dev tooling.
And I've only begun to scratch the surface here. The point is there is a lot more than meets the eye, especially when operating on a global scale.
- saagarjha 6y agoThis is a common but specious argument. It is possible to make large, complicated apps without creating a monstrosity. That you are making something like this is a manifestation of an engineering culture that has too many cooks in the kitchen, a lack of specific engineering talent spent on finding issues and telling the teams shipping them to stop, people shipping libraries that they don't need and tech debt that was never pruned away. An app with 100x more people working on it should not be 100x larger, because it certainly won't have 100x more features in it. Sure, Uber is more than "a map and a couple views" but the fact remains that their app should never have been in the state that it was.
- wsinks 6y agoFor my own curiosity, what large, complicated apps are not monstrosities in your eyes?
- saagarjha 6y agoThe Apple Maps app on iPhone, for example? If you make it fair and count the code that goes into the frameworks specifically for it, it's still tens of megabytes at the most. There is a huge part of it running server-side to support it, of course, but it is difficult to say that it is not a complicated app. Or consider the Mail app? It needs to deal with IMAP, and has custom flows for a number of named mail services (Gmail, Yahoo, etc.), and then it has to have special code to handle all the edge cases of "what happens if the user deletes a message here but it didn't sync, or Google sends us 503s sometimes if we do this, or…" You can make arguments that maybe it is slightly less or more complex than Uber, but it is just a couple dozen megabytes and not hundreds.
- jimmydorry 6y ago10s of megabytes? Where did you pull that number from? Since it is a system app, its true install size is hidden away from users. The comparable google maps app is 190 MB.
- saagarjha 6y agoI counted up the system frameworks it relies on that can be reasonably considered to exist for the purposes of serving the app.
- adrianN 6y agoWe used to pack entire operating systems with userspace in a couple dozen Megabytes. I bet they had more screens than the Uber app.
- lock-free 6y agoYou should scratch below the surface because this isn't really explaining much - it does not sound like something that requires more than 100 people. Their legal team sounds like it should be twice that alone. Or am I crazy?
- dntrkv 6y agoTake look at this thread: https://news.ycombinator.com/item?id=25376346 https://news.ycombinator.com/item?id=25376346 My point is that there is 100s of screens/features in the Uber app that you don't even know exist. And you have those same 100s of screens across their other apps. Multiplied across all of the different platforms. Plus any internal tools they use. I'm curious, have you worked at a software company of Uber's scale? Not trying to be a dick here, genuinely curious because I hear these types of comments often here on HN and I wonder how many of those commenting have seen the scale from within.
- ForHackernews 6y agoBut like, why? Do all of these things make them tons of money? It's a dumb taxi app, ultimately. You're not answering the question except as a tautology: - Q: Why is Uber's engineering team so ridiculous and bloated? - A: Because they need a ridiculous bloated team to make this ridiculous bloated app.
- dntrkv 6y agoJust like Alphabet is just a search engine, and Microsoft is just an operating system, and Amazon is just an online store. Companies grow into new products, services, markets, etc.
- ForHackernews 6y agoGoogle really is just an advertising company. Everything else "Alphabet" does is a rounding error next to ad revenue. Microsoft and Amazon have multiple profitable lines of business. Is Uber more like Google or more like Amazon? Is "Uber Eats" (underpaid contractors drive around takeaway dinners) distinct from "Uber" (underpaid contractors drive around people), or "Uber Black" (underpaid contractors with unwise car leases drive people around)?
- nimchimpsky 6y ago100mb is an insane size for the executable of an app. You are listing business logic, I mean we all deal with complex bus logic - but only the lucky few get it to 100mb of executable.