3 ms·
You're going to talk about Uber? Watch this video: [1]. He talks about every regret regarding their infrastructure. At first you kind of nod your head along wit
by developer2 10y ago
You're going to talk about Uber? Watch this video: [1]. He talks about every regret regarding their infrastructure. At first you kind of nod your head along with "yeah, it's not that easy", but as he keeps talking you can't help but wonder why the company has absolutely no internal technical direction whatsoever.
They employ over 2000 engineers (just devs, excluding support staff, etc.). They use micro-services designed to the point where teams can't reuse pre-existing services. They are rewriting the same functionality over and over, and over and over again, as separate teams don't even have a clue what has already been written. Pick a piece of functionality you need. There are straight up 20 different APIs that do the exact same thing, but good luck figuring out which one you should be using - oh wait, why bother when you can just write the 21st version of the same thing. They are at the point where they have no clue what their repositories contain. In the video, he can't even provide an accurate number of deployed micro-services. THEY CANNOT EVEN ASSESS WHAT THEY ARE RUNNING IN PRODUCTION. They're literally drowning, and cannot recover.
The point of the article is wrong. It's not about what can be done in one weekend, it's what can be done in 12-24 months by a competent team. Yes, Uber operates internationally which comes with a very crazy set of challenges. 2000 engineers worth of challenge? Not even remotely close. You should need fewer than 100 people who really know what they're doing, and another 300-400 people who can follow the lead of the first 100. If you need more than that for a single product (ie: Google does not apply as they have 100+ full products), you are doing things wrong.
If you're going to provide the anti-thesis, don't use Uber as your example. They don't even understand how their business is managing to remain afloat from a technical perspective.
[1] https://www.youtube.com/watch?v=kb-m2fasdDY https://www.youtube.com/watch?v=kb-m2fasdDY
- throwawayuber 10y ago> They use micro-services designed to the point where teams can't reuse pre-existing services. They are rewriting the same functionality over and over, and over and over again, as separate teams don't even have a clue what has already been written. That's quite an exaggeration. Sure, there is duplication, because Uber has chosen one side of the trade off (duplication) as better than the other (coordination, blocking). I can tell you we don't have 21 versions of the same thing. By the way, what are the chances of building a 500+ person team without hiring a few duds? With such a large team you'd expect a regression toward the mean. Uber only has one product? - UberX - Pool - Commute - Hop - Rush - Eats - Taxi Each of those products is customized in the city or region that it operates in. For example, airports are FIFO queues [1]. At certain airports (e.g. SFO) you can choose from pre-filled destinations like "Departures Level 2, Door 10". Forward dispatch preemptively matches drivers to their next client to minimize downtime [2]. Riders who are late to the pickup get charged on a time basis [3]. You can schedule rides in advance [4]. Sure, a dedicated team could replicate some of these features, but those are just the features that launched. There are TONS of features that launch in only one city, or only to a subset of drivers, or whatever. Which is more likely? That every tech company like Twitter, Square, Slack, Uber, Lyft, AirBNB, Dropbox, Github, Instacart, Stripe (all "one product" companies) are mismanaged or that you don't understand the complexity of running an actual large growing business? [1]: https://newsroom.uber.com/australia/first-in-first-out-airport-queues/ https://newsroom.uber.com/australia/first-in-first-out-airpo... [2]: https://newsroom.uber.com/sri-lanka/forwarddispatch/ https://newsroom.uber.com/sri-lanka/forwarddispatch/ [3]: https://www.yahoo.com/tech/uber-hit-penalty-ride-3-minutes-200241386.html https://www.yahoo.com/tech/uber-hit-penalty-ride-3-minutes-2... [4]: https://www.uber.com/info/scheduled-rides/ https://www.uber.com/info/scheduled-rides/