Joakim Recht is an Aarhus-based, Linux-using distinguished engineer who has spent 8 years at Uber “making myself obsolete.” To do that, his last 7 have focused on one thing, automating the management of services and databases at scale to “make computers do as much of the ‘boring’ stuff as possible.” Today, the platform is powering all databases and other stateful systems at Uber.
Tell us about yourself.
“I’m a software engineer working in our Platform Engineering team. I’ve been with Uber in Aarhus, Denmark for more than 8 years. I write code for a living, but I enjoy it so much that I’d probably do it for free too 🙂. I’m also one of the rare Linux laptop users at Uber, although it’s been many years since I compiled my own kernel. In my spare time I try to finish some of the many projects I have going on in my house, and occasionally I also get time for some cake baking.”
What are you working on today?
“I work more or less on the same I’ve worked on for the last 8 years: making myself obsolete. The thing about computers is that they’re really good at repetitive work, and most engineers are not. To me that means that our prime job is to make computers do as much of the boring stuff as possible. In my world that translates into automating the management of services and databases at scale. It also means thinking about how we, from a platform perspective, can make the rest of Uber engineering as efficient and streamlined as possible.”
You’ve built a lot over the last 8 years at Uber. Any highlights?
“Out of the 8 years I’ve been with Uber, I’ve actually worked on the same project for 7 of them. Back in 2015 we had just built a distributed key/value store on top of MySQL, and we were facing issues managing all the underlying databases. I came up with an idea for containerizing them and building a management platform around it. We built that platform, and it has evolved since then to power all databases and other stateful systems at Uber. That’s around 90,000 servers and almost a million containers running in production.
While building a large scale system like that we also built a lot of other things, such as a new specialized graph database for integrating different data sources, workflow systems, automation frameworks, frameworks for writing tests, and much more. One day we might get around to open sourcing some of it.”
What’s a challenge you’ve taken on at Uber that has redefined what you believed is possible?
“In the early days, the idea of containerizing databases seemed crazy to most people. The common perception was that a database should have a dedicated physical server running nothing else. However, we believed that containerization would bring us easier management, especially at scale, and that it would also allow us to run our servers much more efficiently. And while it might have been a somewhat naive idea, it turned out to be a good one – we have unlocked large efficiency gains by running mixed workloads on our servers, and the level of automation that gets unlocked when everything is on a shared platform is pretty amazing. A small note here: people often ask why we don’t just use Kubernetes. That’s a longer discussion, but the short answer is that Kubernetes only solves a subset of the problems we face, and it does it best for stateless workloads.”
You recently helped host an Uber-wide Engineering summit. Tell us about it.
“The engineering summit is organized by our engineering community called Ark. Most engineers at Uber work on either platforms or one of the many business verticals where customer needs and product features often drive the technical decisions. That means it can sometimes be hard to take a step back and look at technical challenges or opportunities across the company. Ark was formed so that we have a place for engineers to do just that: collaborate across team boundaries and look at technical challenges or opportunities which are too large for any single engineer to handle. Ark is managed by a small group of 3 engineers, 2 TPMs and a director, with me being one of the engineers. We coordinate the efforts we believe will improve the Uber engineering community, most of it is focused on senior engineers (that’s principal engineers and above), but we also host an annual summit for all of Uber engineering where engineers showcase projects, talk about roadmaps, demonstrate coding techniques, and much more.”
Why is now a good time to join Uber Engineering?
“It’s always a good time to join Uber Engineering 🙂. One of the things I appreciate most about Uber is that there’s still so much left to be done. From the outside it’s easy to underestimate what it actually takes to run a system like Uber, but it turns out that handling many different business verticals globally in a single system is a very complicated problem, all the way from the various apps to how we manage bytes on disk. I personally enjoy low level infrastructure the most, but I believe there’s plenty of opportunity to build and learn across the entire stack, and also to have an impact that’s hard to find anywhere else.”
I joined Uber in late 2014 at a time of hyper growth and when Uber was one of the very hot places to work. I came from a small Danish startup to this place full of ex-FAANG engineers, so I thought that I better hit the ground running and never look back. Back then I hadn’t planned on sticking around for more than 3-4 years. Uber was (and still is) a performance driven company, and I couldn’t quite see myself staying in that for an extended period of time. However, over time it turned out that it was also a lot of fun, and I very much enjoyed and appreciated working with so many excellent engineers. I still enjoy and appreciate it, which is why I’m still around, and even though I’m now a distinguished engineer, I believe there’s still plenty for me to learn and try out.”
Interested in joining us? Explore open roles →
Posted by Philip Graumann
Auto insurance maintained by Uber
Up: Portable Microservices Ready for the Cloud
Cinnamon: Using Century Old Tech to Build a Mean Load Shedder
Case study: DART goes big in 30 zones