Uber Drives Gains With Open-Source Development

In today’s mobile-first environment, the ability to push out new features and updates quickly is mission-critical. As a result, agile and DevOps initiatives are increasingly at the center of enterprise IT and software development.

One company that’s accelerating toward this approach is transportation and ride-sharing service Uber. Since the company was created in 2009, it has put mobile application development in the fast lane.

“We have witnessed rapid growth in the business and in the engineering and IT staff,” says Matt Ranney, senior staff engineer for Uber. “We have a mobile burst application that requires a huge number of real-time connections.”

Managing enormous volumes of geolocation data and personal identifier data, while connecting passengers and drivers in real-time, is only part of the business and programming challenge. There’s also a need to constantly deploy new code and fix broken or buggy code within the application, which is now used in 68 countries across six continents.

In the past, the company relied on scripting language PHP. However, it couldn’t fully accommodate the software programming needs of the app development arm of the organization.  It needed the ability to cost-effectively manage “driver and rider connections while the app is open so that it can stream data in real-time,” Ranney explains.

Delivering Dependable Long-Polling Capabilities

Consequently, Uber turned to open-source development software platform Node.js. The platform, introduced in December 2015, delivers extremely efficient and dependable long-polling capabilities at a far more efficient price point. The open-source approach allows geolocation and phone data to flow at a minimum of every 4-second interval—and often faster.

“Although Uber doesn’t have the number of users or the volume of transactions that Google or Facebook display, it is engaged in high-value commercial transactions,” Ranney points out. “We’re not talking about fractions of a penny moving around. We’re talking about many dollars and hundreds or thousands of people in any given city at any moment.” In fact, the Uber platform now supports more than five million trips per day.

Uber currently has more than one thousand individual services currently in production, and the overwhelming majority of them are written in the Node.js platform. Ranney says that the transition to the new development platform went smoothly.

“There was a bit of a learning curve because we hired people who had never used Node.js before,” he says. “But the platform is surprisingly easy to learn, and our developers love working on it.”

In addition, the development platform provides the required level of security. “We have the advantage of tapping the entire open-source community,” he notes. “It’s an attractive proposition because it’s essentially free software, and it is extremely powerful.”

Uber, which is currently doubling in size about every six months, is well-positioned for future software development, Ranney says. The company is now using the Node.js platform for a number of its Websites, and it will likely expand the use of the software development technology.

“It is a very robust and fast platform,” Ranney concludes. “It is helping Uber run the business at the speed required for today’s business environment.”