Skip to main content
Engineering, Backend

The Perils of Migrating a Large-Scale Service at Uber

August 24, 2023 / Global
Featured image for The Perils of Migrating a Large-Scale Service at Uber
Image
Figure 1: Diagram of the invoices’ services as a black box
Image
Figure 2: Diagram of the main building blocks of invoice generation
Component-Based MigrationFlow-Based Migration
ProsIteratively delivering business value

Constant feedback loop

Sharp focus on a single problem

Easier prioritization

Easier work parallelization

A sense of moving forward
Single engineering design session per flow, where the end design is clear from scratch

Single country-based shadowing and rollout

Faster due to reduced rollout overhead
ConsLack of holistic picture of what we will end up with

Multiple country-based verification and rollouts
Business value will be delivered at the end of the effort

The feedback for a design decision will be received multiple months after it was taken

Lack of a focus area
Image
Figure 3: Invoicing components and their dependencies
Georgi Zhuhov

Georgi Zhuhov

Georgi Zhuhov is a Senior Software Engineer on the Tax Invoices team.

Irina Kurteva

Irina Kurteva

Irina Kurteva is a Software Engineer on the Tax Invoices team.

Iskren Dimov

Iskren Dimov

Iskren Dimov is an Engineering Manager on the Tax Invoices team. He is passionate about building and sustaining high-performance teams.

Nikolay Lazarov

Nikolay Lazarov

Nikolay Lazarov is a Senior Software Engineer on the Tax Invoices team.

Plamena Todorova

Plamena Todorova

Plamena Todorova is a Software Engineer II on the Tax Invoices team.

Yordan Petrov

Yordan Petrov

Yordan Petrov is a Senior Software Engineer on the Tax Invoices team.

Posted by Georgi Zhuhov, Irina Kurteva, Iskren Dimov, Nikolay Lazarov, Plamena Todorova, Yordan Petrov