When the site launched in 2014, the team at Uber Engineering’s Vilnius, Lithuania office consisted of two people working out of a co-working space. Six years later, the team has grown to 46 people, representing Uber’s Production Engineering, Core Platform, Primary Storage, and Developer Platform teams and contributing daily to many of Uber’s most important and foundational technologies.
Production Engineering ensures Uber’s systems are reliable and scalable from conception to deployment and beyond. The Core Platform team automates the lifecycle of thousands of machines worldwide, the transparent piece that allows us to field requests from millions of users daily. Our Database Production Engineering team (part of Primary Storage) ensures that all of Uber’s structured datastores are highly available and performant at all times. And finally, our Developer Tools team helps support the rest of our global team of engineers, building the testing frameworks and coding environments that allow Uber to grow.
Guided by a handful of Uber Vilnius veterans, the site was one of Uber’s most productive offices last year—and yet it’s still lean enough to remember everyone’s name. We sat down with members of the Uber Vilnius team to learn more about their work, as well as their lives outside Uber:
Vaidas Zlotkus, Senior Engineering Manager and Site Lead
When the Vilnius Engineering Site opened in 2014, Uber wasn’t really a presence in Lithuania. As the company scaled globally, the engineering team needed to ensure that our system was reliable across all regions and time zones. Vilnius, which is 10 hours ahead of San Francisco, was a natural choice.
Before I joined, I knew the engineers working in the Uber Vilnius office, and they shared some of the technical challenges they were working on related to site reliability, all of which sounded interesting. I decided to join the team because I was ready for a new experience, and I loved that Uber was a big company using Linux and other open source technologies. At the time a lot of things were changing, but it was exciting, and my goal was to keep Uber going today so it would not break tomorrow.
How has the job changed since then?
The needs are different. We had only a few people when I arrived. My guidance was “we need to be better. We need to have high quality standards. We need to deliver.” The team responded, and last year we were one of Uber’s most productive locations. A few years ago we were targeting 30 people, and now we’re at 45 and continuing to grow.
What is unique about the Vilnius team?
I think the local perception is that we are a support center for Uber’s operations in the Baltic states, but that’s not the case at all. We’re a full-stack engineering team, which is rare for this area.
If your motivation is “I want to work on something complex and challenging,” you should probably work at Uber because the problems we get to solve have an impact. You literally see the results when you open the Uber application on your phone. You’re not just working on a small feature nobody ever uses.
Additionally, we have a friendly group at the Vilnius office. Everyone is collaborative and open to new ideas, as well as willing to pitch in should the opportunity arise. It’s a very supportive and compassionate community of engineers.
Povilas Balzaravičius, Senior Engineer, Developer Tools
There aren’t many companies in Lithuania (and the whole world) that operate at Uber’s scale. When I got a chance to join the company I didn’t want to miss an opportunity. I wanted to work on something huge. I wanted new challenges, learn new skills, and sharpen those which I already had. I am also a Linux user, and Uber leverages open source software for many of its systems. Few large companies in Lithuania were using an open source stack by that time, but Uber’s stack is open source and I knew they contributed back to the community. I wanted to work at such a company. There were maybe eight engineers in the Vilnius office at that time, and I knew some of them, and knew they were really talented.
What has kept you working at the Vilnius office for so long?
Vilnius is a small office, with around 45 engineers, which gives us the opportunity to know each other very well. We still can remember everyone’s name and celebrate birthday parties. Such things keep us close to each other.
At the same time, our partners are other engineers at Uber. We are integral to other offices and collaborate with developers in Seattle, New York, Amsterdam, and San Francisco. That helps us feel like we’re not working in isolation, even if we get the benefits of working from a small office. Working in such an environment helped me to improve communication, collaboration skills, especially with people in other time zones. The culture of each office can vary, and it helps you look at things differently and exposes you to new ideas. You need to learn that on the job. You can’t learn how to solve the type of challenges Uber’s scale presents in books alone.
What do you do outside of your work at Uber?
I organize a couple of meetups. We’ve been doing PHP meetups for seven years, and I used to organize Go meetups as well.
Also, I organize the biggest hacker camp in the Baltic states. It’s called “No Trolls Allowed,” and 500 people attend every summer. We all live in tents next to a lake and people present projects to each other. We have multiple stages, workshops, concerts, and so on, and the ticket price is to deliver a presentation or host a workshop. It used to be a weekend, but now we do it for five days. When I describe it to people, I say we all go to the woods but we bring all our laptops and electronics with us. Don’t leave it at home!
Motiejus Jakštys, Senior Engineer, Core Infrastructure
I’ve been at Uber for over 4 years now, and worked on quite a few things: some production services (e.g. investigated and blogged about a DNS-related outage on Node.js environment), followed various projects in Core Infrastructure. Currently I am working on user access management on production hosts.
My usual type of work: take a pain-point or a problem (can be compliance requirement, missing feature in some Core Infra component, or a completely missing process), and see it through. I like doing the whole process, so, as soon as I switch to another problem, I have energy to do it over and over again.
What do you enjoy most about working at Uber Vilnius?
It’s a tight and friendly group. I trust everyone. If I’m having a good day, I can share that and everyone feels good about it. If I’m having a bad day, colleagues help cheer me up. It’s very personal, working in a small office, and that’s a positive for me.
And Uber makes an effort to respect work-life balance. A lot of my colleagues, including myself, have families with children. We can still do meaningful work and make an impact, but without sacrificing families, friends and personal life. If I want to work at a leading tech company, this is rare.
You interned at the National Aeronautics and Space Administration. How did you end up there, and how did that lead to working at Uber?
When I was young I dreamed of becoming an astronomer, but my parents wanted me to consider a different option because it’s hard to become an astronomer here in Lithuania. I started programming, and I remember thinking “Wow, this is amazing.” You follow strict rules, but you are essentially painting with a computer and can create anything you want. It’s like a superpower, and I decided to do it for a living.
I went to a local university in Vilnius, but I did a lot of exchange programs, studied abroad, and eventually got an internship at NASA’s Ames Research Center in Mountain View. We worked on data visualization, taking the Earth and mapping earthquakes and space debris and weather onto it. It was cool, because programming interconnects with all these other fields, and you get to both help people and learn from them.
Then I came back to Lithuania and Uber contacted me about an internship. I figured I could always go back to my previous work and this would be a small adventure, but I never went back! I love it here.
What does your team work on?
We are a small team. There are three of us and we are working on a project that configures hosts, collects metrics, checks hardware and software inventory states for our data center hosts and emits states as metrics. It’s super low on the stack and it’s one of the services that has to function properly for everything else to run. We are the foundation, basically, and it carries a lot of responsibility because if you do something wrong, the whole stack suffers.
Members of the Uber Vilnius office pose for a quick photo.
What makes Uber Vilnius different from previous offices you’ve worked at?
Everyone in the office is so different in terms of our interests and hobbies, but we communicate so well. It’s like magic. It reminds me of being at university, when a group of people concentrated on one thing and became friends as a result. Here in the office we learn from each other and share valuable insights with each other. It’s just something you have to experience.
Do you have any advice for people interested in pursuing a career in Infrastructure Engineering?
The best advice I can pass on to others is to try. There is no other way to learn whether something is suitable for you or not. You can try speaking with people in the field, but the best option is still to get your own hands on it, do the work, and see the process. People are usually afraid of doing something new, especially at this scale, but give it a shot. That’s how I ended up at both NASA and at Uber.
Migle Beresineviciute, Software Engineer, Production Engineering
I actually didn’t get into engineering as early as most people, because at 12 years old I started cycling. I joined a club and tried to be a professional cyclist. At one point we went to Spain for two months, and we had very little time to study. I would sit and code while we were supposed to be napping.
But I finished my cycling career in 11th grade, and in my final year of school I focused on my studies and applied for a programming track at Kaunas University [in Lithuania], and I got it!
How did that lead to working at Uber?
While I was at Kaunas, people at Uber emailed me and asked if I’d like an internship. I didn’t have much experience but I applied and got a three-month internship as a back end engineer. Afterward I returned to Kaunas to finish my studies, but eventually my manager from my internship called and asked if I’d like to join Uber again, so I’m here!
I’m on the observability team, currently working on a follow-up task feature for our On-Call Dashboard. Basically, when a developer gets an alert that something is happening and needs to take action, they can create a task for themselves or for their team members that shows what’s gone wrong. As long as the task is open, it carries on all the future shifts so that everyone who needs to be in the loop is aware of it.
What do you like most about being at Uber?
Everything! I really love the people. Engineering at Uber is unique because you need to be more than just a proficient coder. You need to think. You need to prove your ideas and your tools make a big impact. You can’t just code what other people tell you to do. It’s challenging, but I love it.
I also appreciate my team. They are super smart, and if you talk with anyone here, you come away learning something new.
Alexey Pavlenko, Senior Engineer, Storage Engineering
I started my career in Belarus, in my hometown of Minsk. There weren’t many challenging opportunities in my home country though, so when an Uber recruiter approached me I thought “Why not?” It was important to me to work on something complex, something where I could apply my skills and grow as a software engineer.
What do you work on at Uber?
I’m a member of the Storage Engineering team. Currently the Vilnius team is in charge of all the relational databases at Uber, although our scope is gradually expanding to more specialized solutions. Before that, I was part of a team developing a new Uber blob store solution, a way to store objects like blocks, files, and so on. It was a challenging job, and I’m proud I was one of the members who helped design the system. Uber is one of the few companies that can offer tasks of such complexity and scale. Developing a system that serves users in more than 10,000 cities worldwide requires you to think differently and acquire unique skills. That excites me, and I feel like I have become smarter as a result. I am a better engineer now than when I started.
Do you have any advice for young people getting into programming?
My suggestion would be to get involved with the development of something very complex, something out of your comfort zone, as soon as possible. Being able to solve problems easily will not help you grow, but getting involved in problems that may seem impossible in the moment helps develop a so-called system mindset. Uber provides this opportunity because the scale and complexity of tasks is very big. Incomparably big.
Roman Kononov, Manager II, Developer Tools
It was a long time ago. I was maybe 10 or 11, and very curious about electronics. I disassembled a lot of things like toys to see how they worked, then put them back together. I think that was the first step. Later, of course, I went to university, studied computer science and hardcore mathematics, but the toys were the first step.
Where did you go to university?
I went to school in Kyrgyzstan, far from here. I moved to Vilnius a year ago for this job. I wanted to join a well-known tech company, and I’d heard of Uber Engineering because of their tech talks and open source projects. I was using an open source library for Go that was done by Uber, as well as kepler.gl, Uber’s open source geospatial visualization tool. I was excited about these technologies and that pushed me to accept the job in Vilnius.
Now my team is giving back to the same open source community. We recently got approval to open source a configuration for Sourcegraph that solved a lot of problems in our infrastructure This is my team’s first open source contribution, so it’s very exciting for us.
What do you work on at Uber?
Right now I work on the Developer Tools team. We provide a platform for developers to govern how they get code, write, push, and then deploy code. My team covers a small part of this process. We are responsible for code management, artifact management, a source code management system, and for issue tracking. We are also working on a remote development environment, which is an exciting new project. We work with the Amsterdam and the U.S. teams, and the idea is that in the future developers at Uber can just open a browser and write code. Everything is run in the cloud on huge servers and performance is no longer limited by local hardware, allowing developers to iterate faster and in a more convenient way.