<story><title>The Uber Engineering Tech Stack, Part I: The Foundation</title><url>https://eng.uber.com/tech-stack-part-one/</url></story><parent_chain><item><author>Animats</author><text>It&amp;#x27;s interesting that they don&amp;#x27;t break the problem apart geographically.  It&amp;#x27;s inherent in Uber that you&amp;#x27;re local. But their infrastructure isn&amp;#x27;t organized that way.  Facebook originally tried to do that, then discovered that, as they grew, friends weren&amp;#x27;t local.  Uber doesn&amp;#x27;t need to have one giant worldwide system.&lt;p&gt;Most of their load is presumably positional updates.  Uber wants both customers and drivers to keep their app open, reporting position to Master Control.  There have to be a lot more of those pings than transactions.  Of course, they don&amp;#x27;t have to do much with the data, although they presumably log it and analyze it to death.&lt;p&gt;The complicated part of the system has to be matching of drivers and rides.  Not much on that yet. Yet that&amp;#x27;s what has to work well to beat the competition, which is taxi dispatchers with paper maps, phones, and radios.</text></item></parent_chain><comment><author>genmon</author><text>Uber is pretty formidable in building and growing a two-sided market. I suspect it&amp;#x27;s tuned continuously, at high resolution (in space and time), with levers I mostly don&amp;#x27;t know. And that&amp;#x27;s got to be a big contribution to the complexity of the stack.&lt;p&gt;This of it this way. A standard e-commerce site, or SaaS with low-touch marketing... there are a crazy number of KPIs to monitor, loads of levers (e.g. what&amp;#x27;s the right discount to fix basket abandonment). The instrumentation to track all these conversation funnels (and to do A&amp;#x2F;B tests to see what works) is half the job.&lt;p&gt;But at least we have a common understanding of the metrics and the levers -- for SaaS, say, there are tons of similar services, and the knowledge is shared in the community.&lt;p&gt;Uber? How do you grow while maintaining market liquidity every evening of every week? If you artificially hike demand from passengers in a particular neighbourhood (say with coupons), does WOM amongst potential drivers work to increase the driver pool before the passengers get frustrated and move to Lyft?&lt;p&gt;All of this is new. So how do you create the tech to track not just all the data you need, but all the data you &lt;i&gt;might&lt;/i&gt; need, plus the capabilities to do tests to figure out what levers to pull? Hard.&lt;p&gt;I have no particular insight into this. But my guess is that Uber isn&amp;#x27;t flying blind - their growth has been no accident - and the complexity of their tech is due to instrumentation not operations.</text></comment>
<story><title>The Uber Engineering Tech Stack, Part I: The Foundation</title><url>https://eng.uber.com/tech-stack-part-one/</url></story><parent_chain><item><author>Animats</author><text>It&amp;#x27;s interesting that they don&amp;#x27;t break the problem apart geographically.  It&amp;#x27;s inherent in Uber that you&amp;#x27;re local. But their infrastructure isn&amp;#x27;t organized that way.  Facebook originally tried to do that, then discovered that, as they grew, friends weren&amp;#x27;t local.  Uber doesn&amp;#x27;t need to have one giant worldwide system.&lt;p&gt;Most of their load is presumably positional updates.  Uber wants both customers and drivers to keep their app open, reporting position to Master Control.  There have to be a lot more of those pings than transactions.  Of course, they don&amp;#x27;t have to do much with the data, although they presumably log it and analyze it to death.&lt;p&gt;The complicated part of the system has to be matching of drivers and rides.  Not much on that yet. Yet that&amp;#x27;s what has to work well to beat the competition, which is taxi dispatchers with paper maps, phones, and radios.</text></item></parent_chain><comment><author>matthewrudy</author><text>I work on an uber-like system,  but with ~3 backend devs rather than 100s.&lt;p&gt;We made the opposite decision, cloning our full stack for each new market.&lt;p&gt;That&amp;#x27;s great for scalability, but is a nightmare for devops.&lt;p&gt;If anything we want to find a way to move to one global system, 
And then slice down the bits that can be local:&lt;p&gt;Eg. Create a local order matching service, but keep orders, payments, and user accounts global</text></comment>