I wish the Author had distinguished which payment system. There are Consumer payments that all Riders are familiar with and then there are Driver payments made at end of day.
Traditionally, Rider and Driver payment systems were two separate systems. This caused a lot of complications as the business became more complicated. Traditionally, Riders paid Uber and Uber paid out to Drivers. However, with Cash payments, the payment system also required Drivers to collect cash and pay Uber. Then with Eats, Restaurants were neither Driver or Rider.
The new payment system unified all of these into pure money movement where any entity can move money to any other entity. This enables all current and future products to have flexibility in payment models. (Think about how payments would be modeled for Uber Freight or with the new Uber Transit partnership [1])
At the end of the day, much of all payment systems is just a ledger. Payment systems have to be provably correct, reliable, and available. Many payment systems make tradeoffs between all of these. Much of existing payment systems are all batch based.
What we have built at Uber is a realtime system that is reliable, provably correct with high availability.
As I've said in another comment, for many other systems, if it fails, people can just try again later. If we fail, someone's mother, grandfather, son or daughter are stuck on the side of the road in the middle of the night somewhere. Our needs (or at least the standard that we put on ourselves) is higher than many other payment systems.
In addition to knowing which payment system, I'd love to know if Uber actually redid the work of credit card transactions from relative scratch, or if they just used something like Stripe or Braintree.
I worked on payments at SoundCloud where we used Adyen as well. I didn't get much exposure but superficially it wasn't ideal. Integrations were wonky for each country and we had to glue it all together.
Unless I'm imagining it, it's in the first paragraph.
"I joined Uber two years ago as a mobile software engineer with some backend experience. I ended up building the payments functionality in the app - and rewriting the app on the way".
Following the "rewriting the app" link in that paragraph takes you to another page "Engineering the Architecture Behind Uber’s New Rider App" - although that's co-written by two people, neither of which are the author of this article it would seem.