Skip to main content

Tell us your location

Please enter your nearest city name to help us display the correct information for your area

Select your language

Backend Software Engineer

Backend, Engineering in Aarhus, Denmark

At Uber, we ignite opportunity by setting the world in motion. We take on big problems to help drivers, riders, delivery partners, and eaters get moving in more than 600 cities around the world.


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.



About the Role


Uber's Core Infrastructure team is seeking experienced software engineers to help create the future of urban transportation. Sound interesting? Read on!

We are responsible for the infrastructure software that makes Uber's data-centers around the world highly reliable and scalable. We've built the foundation of a highly cohesive, loosely coupled service-oriented architecture that is going to propel us into the next 100x growth levels - which will come pretty soon, considering that we're doubling in size every six months.

We are partitioning data processing pipelines across multiple hot data-centers and rethinking queueing systems that now handle hundreds of millions of jobs. Peak load is still a bit crazy for us, but we're hard at work developing the next generation platform that will scale with grace and can be operated with ease.

The Core Infrastructure team is building systems for consumption by all the other engineering teams at Uber. We're setting best practices and helping other teams architect better solutions, and we're not afraid to get into the nitty-gritty.



What you'll do


  • Be part of the Core Infrastructure team working the software that makes Uber's global data-centers highly reliable and scalable.
  • Build systems for consumption by all the other engineering teams at Uber. Setting best practices and helping other teams architect better solutions.
  • Re-thinking and re-architecting systems which handle millions of jobs.
  • Work with next-generation technology to build the foundations that will propel us into the next 100x growth levels
  • Manage scale & reliability. Our solutions support Uber's always-on marketplace. Maintaining this platform at scale requires constant investment in security, reliability and monitoring tooling.


What you'll need


  • Excellent coding abilities. You have advanced knowledge of at least one programming language, and are happy to learn more. Our core languages are Python, Go and Java.
  • Experience in building distributed and concurrent systems, knowing the tradeoffs between stateful/stateless and synchronous/asynchronous architectures.
  • Thorough technology and architecture understanding both on a theoretical level (e.g. RDBMS vs. NoSQL) as well as on an applied level (e.g. Redis vs. Cassandra, Java vs. Javascript).
  • Ability to learn on the go. We're looking for software engineers who quickly pick up new technologies or new APIs. You keep yourself up-to-date with the latest technological trends. You're constantly on the lookout for opportunities to try out new things.
  • Scalability. You understand computers and what happens when a lot of them get together in a room. We're developing cross-datacenter, multi-master systems. We need engineers who think about monitoring, fault-tolerance, durability, and scalability.
  • Monitoring skills. Experience with code optimization, run-time analysis and systems architecture. We measure and analyze pretty much everything.
  • Architecture skills. Knowledge of data structures and an eye for architecture. You can discuss the tradeoff between architectural choices, both on a theoretical level and on an applied level.


Bonus Points If You Have


  • Experience with multiple programming languages and data stores. We use programming languages like Go, Java, Python, data stores like Cassandra, DynamoDB, Redis and MQs like Kafka.
  • Experience working in systems handling high volume financial transactions.
  • Migrated services between microservices and monoliths and understand the practical tradeoffs of one architecture versus the other.
  • Built large scale projects with stream processing and batch processing.


Some examples of work done by the Aarhus Engineering office:


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

See our Candidate Privacy Statement

At Uber we don’t just accept difference—we celebrate it, we support it, and we thrive on it for the benefit of our employees, our products and our community. Uber is proud to be an equal opportunity workplace. We are committed to equal employment opportunity regardless of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity or Veteran status.