Uber has made two up-and-coming language platforms, Go and Node.js, critical cogs in its operations. Tom Croucher, Uber site reliability engineer, detailed the company's use of the platforms at the recent Node.js Interactive conference in Portland.
"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 workhorse at 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."