Engineering for Compliance: Meet our Uber Engineering Team in Sofia, Bulgaria
May 10, 2021 / GlobalEstablished in 2014 as one of Uber’s first distributed engineering sites, our team in Sofia, Bulgaria is responsible for making compliance a reality. The team focuses on developing systems that provide our services with key reporting and compliance capabilities, including generating invoices and email receipts related to trips and food deliveries, assembling periodic tax reports for drivers and delivery people, and facilitating real-time tax calculations in line with local regulations.
Sofia Engineering’s work is critical not just for our users, but also for our company itself, responsible for:
- Helping users (drivers, delivery people, 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 on the cost 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 our lines of business grow, branching into 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.
Sofia-based Engineers must do all of this while keeping services available, accurate, and reliable at scale. We sat down with some of our Sofia Engineering team to learn more about them and their work.
Teodora Tosheva
Software Engineer
Tell us about your role at Uber.
“I am part of the Receipts Engineering team, a group responsible for creating more seamless processes for generating and sending document transactions from our platform. Receipts are generated after (almost) every Uber trip, sometimes more than one, so we’re working at a massive scale, issuing more than 8 billion receipts yearly. What makes receipts challenging is that there are different compliance and legal requirements for different countries and cities, and finding the right solutions is not trivial.”
How did you get into Engineering?
“My road to Engineering began during my high school years. The most influential part of my decision, however, was probably attending the Telerik School Software Academy where I saw firsthand how fun it could be to pursue a career as an Engineer. From there, I continued my education, pursuing a bachelors in Computer Science. I wanted to sharpen my programming skills, and I participated and excelled in IT Talents Training camp which was the tipping point for my career. After graduating from the training camp, I landed my first full-time job as a Software Engineer.”
Why did you join Uber?
“I was truly inspired by the people that work here and the software solutions that they achieve. Several months before joining the company, I attended a meetup hosted by Uber where Engineers presented the cool tools and technologies they use on a daily basis. This experience helped me with making the decision.”
How would you describe the Uber team in Sofia?
“The people and the environment are amazing! I have the chance to work with the most talented, passionate, smart, and devoted Engineers. My colleagues are always being proactive and experimenting with exciting initiatives. There are many cross-team initiatives that encourage people to share their passions and interests.”
Kristiyan Krumov
Senior Software Engineer
Why did you join Uber and what’s your role?
A t-shirt and a pumpkin.
“In 2015, Uber held a Halloween campaign where drivers delivered pumpkins and t-shirts to whoever ordered from Uber (UberPumpkin). I ordered my pumpkin but didn’t know that a few years later the cool idea behind that campaign would help me to choose the next steps in my career.
Four years later, when I was considering a job change, I was looking for a place with smart and creative people, who change and disrupt the world with their work. Uber was there with an open position and the rest is history.
As a Software Engineer in the Tax Calculations team I build the platform responsible for configuring and calculating taxes on services and goods based on regulations across the world. Since the systems I work on are part of important workflows (e.g. ordering a ride/meal, issuing an invoice), I often collaborate with different teams around the world.”
What was your onboarding experience like and how did your team support you?
“My entire onboarding took roughly one month across two different locations.
The first 2 weeks in Sofia:
I felt part of the team from day one. Although I had a personal “buddy” that was dedicated to helping me with my onboarding process, anyone I reached out to was keen on supporting me with my nUber (new Uber employee) endeavours. After those first weeks I had set-up my laptop, configured and used most of our internal tools, started work on my first tasks, and deployed changes on 2k+ machines!
Two weeks in Amsterdam:
The Uberversity and Engucation programs were my favourite parts of the onboarding process. I got to visit (along with other Sofia nUbers) Amsterdam, where we participated in trainings and team-building activities. There I met colleagues from around the world, which was later very useful when I needed contacts from other teams.”
What opportunities are there to continue learning and growing on-the-job?
“I usually refer to the 70-20-10 learning model as it works well for me. Being part of the team for 2+ years now and working on different projects with challenging problems, scopes and tech stacks are my 70%. The following 20% are covered by the mentorship programs and processes where you give and receive direct feedback based on your work. For the remaining 10: At Uber you have access to various information sources, learning materials, an office library, as well as formal seminars and training.”
What was your recruiting process like?
“A Recruiter reached out to me on LinkedIn and we chatted over the phone. After that, there was a virtual and in-person technical interview. After each of the interviews, I was left with good impressions of the professionalism of the interviewer and the interview format. Just one day after my onsite interview, I got my offer!”
How would you recommend someone interested in joining your team prepare?
“Don’t worry too much about the technologies we use. Spend your time brushing up on CS fundamentals.”
Nikolay Vasilev
Engineering Manager
How long have you been with Uber, and what have you worked on?
“My journey with Uber started in 2016 as an Engineer in the Instant Pay team. This is a product that enables drivers and delivery people to instantaneously transfer their current earnings to their debit card accounts. I joined the team shortly after the MVP has proven to be a tremendous success and the team was working on scaling this for millions of users across the globe. I’ve then transferred to the tax calculation team which was actively working on supporting a multitude of new lines of business and products that needed real-time tax calculations across the globe. I’ve been responsible for the re-architecture and scaling of the systems to tackle this challenge. Since 2020 I’ve started my journey as an Engineer manager and I’m helping the tax calculations platform team scale the systems.”
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?
“As an Engineer, this would be the heart of the tax calculations systems which is a rules engine that handles the business logic. Right now I’m focused on building highly autonomous, high-performing teams that tackle a plethora of Engineering challenges for the complex domain and scale that we operate in.”
Raya Karova
Product Designer
How did you first get interested in product design?
“While studying business administration, finance, and accounting back in college, I was quick to realize that my personality was not fit for that world. I wasn’t really sure where I belonged as I was always torn between science and art. Finally, I found my place exactly there: at the intersection of user needs, business goals, technology, and aesthetics–in other words, product design. I have been a product designer for more than ten years now and absolutely love my job.”
What projects are you working on at Uber?
“Right now I am helping businesses move and feed the people they care about as part of the Uber for Business team. Previously, I was focused on improving the design of our rides and Eats receipts, worked on a variety of projects in the Tax and Invoices areas, and helped bring user-centered design to our internal data tools and machine learning platform. So, quite a lot of different and interesting challenges that I have and continue to tackle at Uber.”
What is most challenging about your role?
“The most challenging aspect of my job is stakeholder management. As a product designer, I often need to act as the glue in a cross-functional team composed of people with different skills, ideas, and perspectives to make sure that at the end, everything we do leads to our common goal: serving user needs.”
You spent time working at the Uber HQ in San Francisco before moving back to your home country of Bulgaria to join our Sofia Office. What has that transition been like?
“The transition has been great. For the most part, this is because Uber has a great culture that promotes mobility within the company, making sure employees are where they want to be. Uber employees everywhere contribute a lot to this culture as they make you feel welcome anywhere you go. We are a big global family and location does not matter much.”
Why did you decide to transfer to our Sofia Office?
“Moving to Sofia was a personal decision and having the Uber office here just made that decision easier. Luckily, the company fully supported me with the move through its very employee-centric mobility program.”
How do you achieve a strong work-life balance?
“Work-life balance for me, as for many people and especially working parents, is a moving target. I am lucky to be part of a culture where everybody understands my needs, respects my flexible schedule and helps me plan better, be more efficient, and more productive. All of that gets me closer to achieving work-life balance every day.”
Iglika Dundakova
Software Engineer
What projects are you working on at Uber?
“Currently I am working creating solutions that will allow us to automate the collection, storage, validation, and serving of tax information for drivers and delivery people who use the Uber platform.”
What did you do before you came to Uber?
“Two years after I started studying Computer Science at university, I decided that it is time to find an internship in the field. During that period of time I had no experience at all in the software industry, so I started as a QA automation intern. Six months later, I decided that I want to become a Software Engineer. I found a job as a Java Developer Intern and this is how my career as a Software Engineer started. I was writing Java code for almost six years, and then I came to Uber to start working on my first Python project.”
Does your team have any special traditions? (Themed happy hours, team building events, etc.)
“Every Engineering team in the Tax and Compliance organization is setting goals for the product around the progress that we want to achieve for the next six months. My team is really goal-oriented, so when we reach one of our objectives, we celebrate with a dinner, a tradition for our team. As our team grows and our goals are met, we’re developing more celebratory traditions!”
What advice would you give someone interested in pursuing a career in Software Engineering?
“Like any skill in life, Software Engineering requires lots of practice and effort to master. Even still, the profession is always evolving, so my best piece of advice for newer developers is to open yourself to learning new things, whether that’s a new language (like Python) or soft skills, like how to best work cross-functionally with other teams at your company.”
Alex Marinov
Senior Product Manager
What do you do at Uber?
“As a product manager with Uber’s Tax Compliance team within the Fintech group, I work with designers and Engineers to design and develop internet applications for use by drivers, merchants and restaurant owners, consumers (riders, eaters and bikers), regulators, local tax authorities, government agencies and internal enterprise groups within the Money and Payments organizations, including payments, tax, compliance, fraud, risk, finance, legal, law enforcement, operations, growth, sales, comm ops, marketing and readiness, localization and business development.”
How did you get into product management?
“I started in Management and Technology Consulting right after I got my degree in Corporate Finance. After a few years on assignments in Seattle, WA, I went into digital marketing and product management in San Francisco, CA with a local digital marketing agency, helping Fortune 500 brands with their brand development and customer engagement programs. After a few more years in the agency world, I joined a product management team in Job Search Infrastructure, helping job seekers find relevant jobs and make their job search experience more fun.”
Why did you join Uber?
“I wanted to be part of a strong and impactful brand that I’ve counted on so many times in the U.S. and around the world to transport me safely and easily to where I needed to go. To me, Uber is a company that brings magic to everyday life. I’ve used it since it was an SMS service in San Francisco, with the Uber Black town cars back then. I’ve also used Uber in different countries – from Buenos Aires, Argentina to Helsinki, Finland where I didn’t know where anything was, and without needing cash in the local currency and having to know the local language or bus system. To me, this functionality is an amazing service.”
How would you describe the Uber team in Sofia?
“The Uber Sofia team is fun, talented, motivated, and extremely capable. At work, we’re focused and disciplined, balancing priorities on our planned roadmaps from both our internal and external clients with the non-stop ad-hoc requests and unplanned changes to business models, new acquisitions, tax code, and legislation changes in the 60+ markets where Uber operates. Outside of work, we often go on group hikes, offsite trips, skiing, tennis and team sports events in Bulgaria, and sailing regattas in Greece. I’ve learned a ton from my new colleagues in Sofia and Amsterdam, and find the multi-cultural environment in Europe tremendously exciting and stimulating.”
Dilyan Dokov
Engineering Manager
Why did you decide to join Uber and what keeps you here?
“Uber was still not very well known in Sofia when I joined the company almost 7 years ago, and the local site was only a handful of people, but globally the company was already in hypergrowth. From what I’d read about Silicon Valley companies, every person is important and valued independently of their background, role, and experience. This turned out to be the case and I’ve had the luck to work with some incredible people on projects used by tens of millions of people. In the following years as we’ve scaled the organization, leadership has done a great job creating a safe and inclusive space where there are opportunities for everyone.”
Can you tell us about your career journey at Uber?
“I joined in 2014 as an Engineer on a team internally known as Starcraft tasked with building the core services upon which all other features at Uber were built. I was lucky enough to have managers who were very hands-on and, in addition to developing some technical skills, they were keen on developing my mindset so that I was better prepared for the challenges and opportunities to follow. For the past several years, I’ve transitioned to an Engineering Manager role and helping the people on my team the same way.
I’ve always tried to think about what is the most important problem that needs to be solved or that people are overlooking and help with it. The irony is that many of those do not look exciting from the outside but are the ones that can really make a difference for the people around you.”
How do you get outside of your comfort zone to grow?
“There is a quick and easy way to do it. Just find the answer to the question “What is a thing that interests me but I’m not currently doing?” and start doing it. Don’t be afraid of failing, don’t be afraid of the optics, position yourself around people who understand the topic and try to enjoy the experience as much as possible.”
How do you drive career growth across the team?
“Making sure people have the opportunity to take on new challenges and understand what skills they can develop doing them is the number one priority for me. No amount of feedback can compensate for lack of opportunities. This requires a level of genuine connection with the team and a good understanding of our overall company priorities. The goal is to find the overlap between those and not being afraid to push back when necessary.
How do you drive inclusion across the team?
“Everyone on the team should have equal access to opportunities. It’s helpful to have an objective way to spot if time, effort and opportunity hasn’t been fairly provided.
Going back and reviewing written feedback provided can be a good signal, checking the amount of time spent with each person over the last several months, writing down the ten most important projects for the last year, and who participated are some of the techniques I try to employ from time to time.”
As a leader, when are you most proud?
“When I see the personal growth of people on my team over time.”
If you’re interested in joining us, explore our open roles →
Posted by Philip Graumann
Come reimagine with us
Related articles
Most popular
How to Measure Design System at Scale
Introducing the Uber Eats Pro pilot with Preferred Deliveries, Planner, and updated criteria
Preon: Presto Query Analysis for Intelligent and Efficient Analytics
The Accounter: Scaling Operational Throughput on Uber’s Stateful Platform
Products
Company