DEV Community

Software Engineering Daily

Uber Mobile Engineering: Distributed Payment Systems with Gergely Orosz

Modern applications are increasingly built as large, distributed systems. A distributed system is a program where its components are located on different machines that communicate with one another to create a single cohesive app. Components may exist as multiple instances across “nodes,” the computers hosting them, which form clusters of nodes that span across geographic regions.

The platform Uber is built on distributed systems. The benefit of this architecture is higher availability, higher load capacity, and lower latency. This is essential for Uber because it needs to process up to thousands of requests per second. But this architecture also presents challenges. Some data, like payment requests, needs to be 100% accurate, which can be challenging for a system where its data is spread out across multiple nodes. The data needs to be durable as well– if a node fails, the data it holds needs to be readily available on another. Their nodes also need to be up-to-date with the information from other nodes so they process the right requests. Any company using distributed systems faces these challenges. 

In this episode we talk with Gergely Orosz. Gergely is a software engineer and author of The Software Engineer’s Guidebook and his blog The Pragmatic Engineer. He previously worked as an engineering manager at Uber, working on their payments experience platform. We discuss distributed systems, payment technology, and the challenges he overcame working at Uber.

Sponsorship inquiries: sponsor@softwareengineeringdaily.com

The post Uber Mobile Engineering: Distributed Payment Systems with Gergely Orosz appeared first on Software Engineering Daily.

Episode source