Software Engineer - Storage (Lithuania)

Uber Overview

About us

We're changing the way people think about transportation. Not that long ago we were just an app to request premium black cars in a few metropolitan areas. Now we're a part of the logistical fabric of more than 500 cities around the world. Whether it's a ride, a sandwich, or a package, we use technology to give people what they want, when they want it.

For the people who drive with Uber, our app represents a flexible new way to earn money. For cities, we help strengthen local economies, improve access to transportation, and make streets safer.

And that's just what we're doing today. We're thinking about the future, too. With teams working on autonomous trucking and self-driving cars, we're in for the long haul. We're reimagining how people and things move from one place to the next.

Job Description


Uber has become an integral part of people's lives and it is critical that the systems that power the platform are always available to everybody in the world. Uber continues to expand into new cities and its growth and popularity present interesting challenges for managing the change in scale with the pace of innovation. We are looking for engineers that are able to apply the principles and discipline of robust distributed systems to solve operational challenges, while enhancing developer productivity and maintaining operational simplicity.

Our systems are active across multiple physical data centers and multiple cloud providers. We tackle the many challenges that come with Uber's massive scale.

You will be part of a team of engineers with a healthy mix of systems and software engineering skills, executing in a fast paced environment. If you love working on software products that touch the physical world and want some serious experience under exponential growth conditions, you should definitely join our awesome Storage team.


General abilities:

  • Grit, drive and a strong feeling of ownership.
  • BS or MS in Computer Science or a related technical discipline. Equivalent practical experience is a reasonable substitute.
  • Quick learning and readiness to change focus area.
  • Ability to work in multicultural, multi time-zone company.
  • Passion to work.
  • Understanding the need of constant self-improvement (both professional and cultural).

Platform understanding:

  • Expert level Linux knowledge and a good understanding of its fundamentals and internals: kernel, filesystems, modern memory management, threads and processes, the user/kernel-space divide, network stack, etc.
  • Experience of using fleet wide management tools. For example - Puppet, Clusto.
  • Understanding of service monitoring and alerting. Like Nagios, Grafana, PagerDuty.
  • A good understanding of large-scale distributed systems in practice, including multi-tier architectures, application security, storage systems.

Cloud storage:

  • Experience with AWS/S3 (preferably), GCP or Azure.

Software development in team:

  • Excellent understanding of software development framework. Preferably Git, Jenkins, Phabricator.


  • Good programming skills at least in one of Go, Java, C/C++, Python and an ability to pick up new ones.
  • Good scripting skills of at least one of bash, perl, etc.


  • Experience with at least one of MySQL, Cassandra, Vertica. Willingness to know more about storage.
  • Caching and queuing technologies knowledge.

We're bringing Uber to every major city in the world. We need brains and passion to make it happen and to make it happen in style.

Be sure to check out the Uber Engineering Blog to learn more about the team.

Uber is an equal opportunity employer and enthusiastically encourages people from a wide variety of backgrounds and experiences to apply. Uber does not discriminate on the basis of race, color, religion, sex (including pregnancy), gender, national origin, citizenship, age, mental or physical disability, veteran status, marital status, sexual orientation or any other basis prohibited by law.

See Inside the Office of Uber

Back to top