Start ordering with Uber Eats

Order now

Engineering for Compliance: Meet the Uber Engineering Team in Sofia, Bulgaria

June 12, 2018 / Global

A reliable trip on the Uber platform isn’t just about transportation. To truly deliver the best user experience, we must also comply with regional financial and tax regulations in the 80-plus countries where we operate.

Established in 2014 as one of Uber’s first distributed engineering sites, the Uber Engineering team in Sofia, Bulgaria is responsible for making this compliance a reality. The Sofia Engineering team focuses on developing systems that provide our services with key reporting and compliance capabilities, including generating invoices and email receipts related to trips or food deliveries, assembling periodic tax reports for our partners, and facilitating real-time tax calculation in line with local regulations.

Sofia Engineering’s work is critical not just for our users, but also for the company itself. Our team is responsible for:

  • Helping users (drivers, delivery-partners, and restaurants) remain compliant with complex local regulations related to tax and earnings reporting by providing them with timely, accurate, and easy-to-understand invoices and reports.
  • Building the backend that generates email receipts for our riders and eaters, helping them achieve full clarity and transparency regarding the costs of our services, and also enabling reports for business expenses.
  • Maintaining the compliance of our systems in the ever-changing regulatory landscape by ensuring that our financial reporting and tax calculations are up-to-date. As Uber grows its lines of business, branching into food delivery, business transportation, freight, and even health, our ecosystem must be able to provide thorough tax compliance solutions for each new product and adapt accordingly.

In fact, our engineers must do all of this while keeping these services available, accurate, and reliable at scale.

We sat down with some of the Uber Sofia Engineering team to learn more about their work:

Elena Deneva, Software Engineer

Why did you choose to work at Uber?

What distinguishes Uber from other companies I have worked for is that I have so many opportunities to develop my technical skills. Beyond contributing to my own personal growth, working at Uber has allowed met to invest in the world’s future, too. I am proud to work for Uber both because of our mission to improve transportation as well as the friendly and intellectually stimulating working environment that greets me each day.

What is your role on your team?

As part of the Tax and Compliance team in Sofia, I am a software engineer dedicated to making the process of tax reporting as easy as possible for drivers all over the world.

What is most gratifying about your work?

Helping partners with their tax reports as well as solving all the tax and compliance changes that arise across our different markets. We have many cities and countries on the platform, and it’s very rewarding to witness the impact of our work on our partners. Even though we’re engineers, we have an opportunity to learn more about the tax and compliance landscape of the countries we’re developing for. I also learn something new every day about the technologies we use. My manager and team support me to do my best.

What’s been the biggest surprise about working at Uber?

I didn’t know what Uber was when I joined, but I saw potential in the idea.

The dynamic environment that I work in surprised me the most. We can use any technology we need to complete a project successfully; I’ve never found that to be true at other companies. We have the freedom to use and develop with any tools that would be helpful to us.

After my first week, my code was in production. We move at an incredibly fast and exciting pace that I had not previously experienced as a software engineer.

What motivates you?

Mathematics, physics, and computer science have been my passions for years. I’ve always enjoyed studying informatics, and so pursuing a career in technology has been my dream. Working as a software engineer at Uber, I keep discovering just how exciting and challenging computer science is. Is there better motivation?

What do you enjoy most about working at Uber Sofia Engineering?

I love the people I work with, the challenges I get to tackle, and the fun and welcoming atmosphere of our office. My colleagues have always been role models to me. They are patient, extremely knowledgeable people who inspire me to keep learning. They never refuse to help me whenever I need their support. We are not just a team, we are a family.

Nikolay Stoitsev, Software Engineer

Nikolay Stoitsev (right) and Nikolay Hubanov (left) engage in discussion during a coffee break.

What team are you on?

I am on the Tax and Compliance Engineering team. We make sure that people and companies who use the Uber Platform are compliant with their local tax regulations.

What are the biggest engineering challenges you face?

The scale, variety, and complexity of the tools we build are the biggest challenges, for sure. We want to make it easier for drivers to meet tax obligations, but every country has different regulations and our single platform needs to support abstractions for all the countries we operation in.

We built the platform with Python and are transitioning to Java and Go. Both Java and Go are easier to work with and they allow us to build more reliable, scalable software.

Why did you decide to join Uber Engineering?

I joined Uber Engineering two years ago. For me, the scale that we work with and the fact that we help so many people around the world earn their living made it an appealing place to work.

The difference between Uber and my previous jobs is that the products that I build now are used by millions of people around the world every day. At my previous company, I was building enterprise software. I never met the people who were using it. The knowledge that so many people rely on Uber, on the software I build, encourages me to do better work.

What do you enjoy most about working at Uber?

The fact that I can interact with other people who are very knowledgeable about software engineering and building scalable systems is what I value most about my job. I love to travel, and my work gives me a chance to travel around the world.

What is the biggest misconception people have about Uber Engineering?

Initially, most people didn’t know we have an engineering office in Sofia, but hosting frequent meetups and speaking at local conferences helps. Most people view Uber as a stressful place to work but that’s not the case. The culture on our team supports a “fail fast” approach with established processes to ensure that we learn from mistakes and avoid them in the future. The environment where I work is very friendly and really allows everyone to be their authentic self. I have great relationships with my teammates outside of work.

Did you always want to be a software engineer?

Since I was a little kid, I wanted to be a software engineer. There are lots of technology companies in Sofia. During undergrad, I studied full-stack computer science. My favorite language is JavaScript because it’s very simple and makes it easy to build great things on the front end and back end.

What’s something about your role that most people wouldn’t know?

When most people hear the words “tax and compliance” in my job title, they assume that my work is very boring, but in my job, I need to understand a lot of different cultures around the world and how their tax structures are established. We have a lot of great tax experts in the company and our engineers are focused on building scalable solutions, like tax calculations and reporting. We make the driver experience more seamless because they don’t have to worry about taxes. We are also helping governments adopt models of transportation like ridesharing to help make sure that all users of the Uber platform remain compliant.

What motivates you?

Knowing that I can help somebody who has a real problem. Uber allows me to help people around the world every day.

Boian Tzonev, Senior Software Engineer

How long have you been with Uber, and what have you worked on?

I’ve worked for Uber for more than four years. During this time, I have worked on a system that manages the banking details of partners and I have worked on part of a major redesign of how money flows through the Uber platform. Currently, I am working on building tools to generate tax-related documents and reports.

What’s the most interesting problem you’ve tackled?

The most interesting problems came from the fact that Uber operates in different countries all over the world—the constant challenge is how to make a system that is efficient, scalable, flexible, and extensible. Another interesting project was designing a custom query language.  

What does it take to get a job on your team?

You need to have solid computer science skills, be a quick learner, and able to adapt to a changing environment.

Nikolay Vasilev, Software Engineer

How long have you been with Uber, and what have you worked on?

I’ve been with Uber since 2016, primarily working on two projects. First, I helped build Instant Pay, a product that enables partners to instantaneously transfer their current earnings to their debit card accounts. Currently, I’m working on the backend for a tax calculations system. This project is particularly interesting to me as the tax world is very complex and our calculations are performed at scale in real time in more than 80 countries across our lines of business.

What are the biggest engineering challenges you face while building Uber’s tax calculations engine?

The system must achieve high accuracy, high availability, and low latency at an unprecedented scale while calculating the taxes for business events happening globally. When you add scale into the mix, engineering challenges take on a whole new meaning.

What’s the most interesting problem you’ve tackled?

One of the core components of our tax calculations engine is its rule engine, a feature that makes it easy for users to specify the parameters of their tax queries by answering the questions: what is the tax category for that product? What is the tax regime that this provider falls into? What is the tax authority that imposes taxes in this region? What are the types of taxes that apply to this event?

Creating an inference engine that can deal with such complexity and satisfy non-functional requirements has definitely been the most interesting problem I’ve tackled in my career.

Interested in learning more about job opportunities at Uber Engineering Sofia? Discover open positions and get to know us during our next meetup!

Header Image Credit: “Sofia TV Tower” by Mike Deensel, licensed under CC-BY 2.0