Software Engineer - Wireless Network Infrastructure
Uber is a technology company that is changing the way the world thinks about transportation. We are building technology people use everyday. Whether it's heading home from work, getting a meal delivered from a favorite restaurant, or a way to earn extra income, Uber is becoming part of the fabric of daily life.
We're making cities safer, smarter, and more connected. And we're doing it at a global scale-energizing local economies and bringing opportunity to millions of people around the world.
Uber's positive impact is tangible in the communities we operate in, and that drives us to keep moving forward.
We are seeking a strong engineer on our newly-minted Wireless Network Infrastructure team to enable extremely reliable & highly performant wireless connectivity to Uber from any point on the planet. Given Uber operates across 500+ cities, 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..
Typical transport protocol stacks (e.g: TCP/TLS), buried deep into the device operating system, do not fare well in challenging network conditions with high variance and packet loss. This team's goal is to change this with radically new transport protocols, that can adapt better to rapidly changing network conditions through current state-of-the-art transport optimizations and intelligent use of machine learning/big data. Further to unlock new capabilities for high bandwidth uploads/downloads, we will explore applicability of other wireless technologies like WiMax/Mesh networks/Vehicular networks to complement the cellular networks in each city and this team will be at the forefront of driving this vision for Uber.
WHAT YOU'LL BE DOING:
- Build instrumentation & data collection systems that gather several TBs of network data, to understand deeply how TCP fares in varying network conditions across the world
- Create a UDP-based transport protocol, that consistently outperforms TCP across wide range of devices, by adapting based on loss/delay characteristics of cellular networks across the globe.
- 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.
- 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
- 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
- Experience in protocol design (RPC layers, transport protocols, MAC protocols, Protobuf/Thrift protocols, Cross-WAN replication) with good understanding of design principles.
- 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.
- [Preferred] System level programming in C/C++ (supported by Java and Go)
- [Plus] Data Engineering and analysis at massive scale for the global mobile network performance metrics, visualization and alerting on detecting trends
- [Plus] Direct experience with TCP/IP (deep tuning/trace analysis) or Wireless media (WiFi, Cellular etc)
Bonus points if you have familiarity in:
- 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.
- Mobile development experience in Android or iOS.
Be sure to check out the Uber Engineering Blog to learn more about the team.
Back to top