Upcoming language platforms Go and Node.js drive Uber

Upcoming language platforms Go and Node.js drive Uber
The Siliconreview
15 Decemebr, 2015

Tom Croucher, Uber site reliability engineer, detailed the company’s use of up-and-coming platforms, Go and Node.js critical cogs in its operations at the recent Node.js Interactive conference in Portland.

Dispatching systems at Uber run on Node, the server-side JavaScript platform. When a customer opens an app or visits the website to book a ride or uses APIs to see what vehicles are available, most of those systems run on Node”, Croucher said.

The majority of these were written on Node from, I would say, the first year or so of the company, so pretty early,” Croucher said. He also noted that Uber was one of the first adopters of Node and one of the first companies to “really build a big business on top of it.

But Node.js isn’t the only platform that’s driving Uber. Google’s Go language also has established a foothold. “We started writing some things in Go, so that’s been some of the high-performance systems where initially we might write something in Node. Some of those are currently being rewritten in Go in particular places where it makes sense, just to get a little bit more optimization from the system.

For the time being, Uber is running the older 0.10 version of Node, as it needs to see “a clear benefit in order to jump into a new version.” Node.js Foundation Community Manager Mikeal Rogers wants users to move to version 4.

Outside of trendy Node.js and Go, Python also has a place. “One of the things we found is there are several technologies that we use at Uber including Python,” he said. “It’s useful for us to be able to hire from a diverse pool of candidates, so an awful lot of the system is written in Python. We found there is a wealth of Python developers who write great services in Python, particularly around some of the business aspects and different things like that.”