Stay in Touch

TITLE

 

Android Engineer - Mobile Networking

COMPANY

 

Uber

LOCATION

 

San Francisco, CA, US

Description

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 600 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 new modalities, self-driving cars and even urban air transportation, we’re in for the long haul. We’re reimagining how people and things move from one place to the next.

 

About the Role

 

We are seeking a strong engineer for our Mobile Networking team to create mobile platforms and APIs designed to enable extremely reliable & highly performant wireless connectivity to Uber across various network conditions spanning the globe. Given Uber operates across 500+ cities in 80+ countries, with different cellular networks, device classes and varying proximity to data centers, optimizing the last mile wireless link is of great importance to Uber, to support the increasingly demanding needs for low latency/high bandwidth network communication.

 

Our goal is to provide a magical user experience under the worst network conditions possibile. The team works across various portions of the mobile stack starting from the Application layer all the way to the protocol layer in order to optimize anything and everything that impacts the efficiency of a network call. This includes building data cache platforms to eliminate network calls, platforms to prioritize, reorder, defer network calls to free up bandwidth, creating/optimizing http libraries, optimizing network traffic and leveraging multiple unconventional transports to communicate with the server. Our work is centered around leveraging the large amount of network data to understand network behavior, analyze headroom for improvement, experiment with network configuration at scale and analyze the final impact of our work.

 

What You’ll Do

  • Build instrumentation & data collection systems that gather several TBs of network data, to understand deeply how different network calls across various Uber apps fare in varying network conditions across the world
  • Build mobile platforms and APIs to provide simple and efficient way for features across all Uber apps to make network calls.
  • Build platforms for prioritizing the most critical network calls, delaying non critical calls to clear bandwidth and leveraging multipath TCP channels.
  • Build platform to leverage alternate transport protocols like SMS, BLE, Push messaging, etc. to communicate with server when the network is too bad for normal HTTP communication.
  • Drive forward the next generation of Uber’s edge & datacenter strategy to ensure consistent performance for our users, from any point in a Uber city.
  • Build network emulation system, that can reproduce networking conditions of any Uber city, within our datacenters, to be used by our engineers to ship extremely reliable features & apps.
  • Understand the different network workloads across apps/trucks/cars, ranging from short low-latency request-response to large high-bandwidth data transfer and design the wireless networks for Uber’s future.

 

What You’ll Need

  • An optimistic, team-player mindset, with no qualms about going the distance to build disruptive solutions
  • Unbridled passion for solving the challenges detailed above to build a world-class networking stack
  • Mobile development experience in Android.
  • B.S. in Computer Science or related field (or, a proven track record in software development)
  • 2+ experience in working on performance-critical distributed systems.
  • Solid understanding of large-scale systems architecture, multi datacenter designs and common performance tradeoffs.
  • Solid understanding of all aspects of the network call anatomy such as DNS lookup, TCP and TLS connection establishment, HTTP/1.1, SPDY, HTTP/2.

 

Bonus Points If

  • Data Engineering and analysis at massive scale for the global mobile network performance metrics, visualization and alerting on detecting trends.
  • Understanding of end to end network flow: Mobile, Radio Access Network, Core Network to POP’s and frontend proxies.
  • Knowledge of UDP based protocols such as QUIC.
  • Understanding of RPC layers, transport protocols, MAC protocols, Protobuf/Thrift protocols and Cross-WAN replication.
  • Direct experience with TCP/IP (deep tuning/trace analysis) or Wireless media (WiFi, Cellular etc)

Apply for the job

Subscribe to our blog.


 

Blog & Newsletter Signup