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

Transcript

Transcript provided by We Edit Podcasts. Software Engineering Daily listeners can go to weeditpodcasts.com to get 15% off the first three months of audio editing and transcription services with code: SED. Thanks to We Edit Podcasts for partnering with SE Daily. Please click here to view this show’s transcript.


Sponsors

With Census, just write SQL or plug in your dbt models and start syncing your cloud warehouse to SaaS applications like Salesforce, Marketo, Hubspot, and many more. You should check them out at softwareengineeringdaily.com/census. They have a free 14-day trial.

From their recent report on serverless adoption and trends, Datadog found half of their customer base using EC2s have now adopted AWS Lambda. You can easily monitor all your serverless functions in one place and generate serverless metrics straight from Datadog. Check it out yourself by signing up for a free 14-day trial and get a free t-shirt at softwareengineeringdaily.com/datadog

strongDM lets you manage and audit access to servers, databases, and Kubernetes clusters, no matter where your employees are. With strongDM, you can easily extend your identity provider to manage infrastructure access. You can automate onboarding, offboarding, and moving people within roles. strongDM. Manage and audit remote access to infrastructure. Start your free 14 day trial today at: strongdm.com/SEDaily

Indent is a system for simplifying access management across cloud apps and infrastructure. Indent allows users within an organization to request and review access to resources, and keep logs of the changes to who can access those resources. Indent is recruiting product and infrastructure engineers to solve this problem. Want to learn more about working with Indent? Go to keyvalues.com/indent or listen to their interview at indent.com/sedaily.

Software Weekly

Software Weekly

Subscribe to Software Weekly, a curated weekly newsletter featuring the best and newest from the software engineering community.