Senior Software Engineer, Android Core Networking
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
With your technical expertise you will manage project priorities, deadlines, and deliverables. You will design, develop, test, deploy, maintain, and enhance software solutions.
The team maintains all Android networking code that includes routing, firewalling, Virtual Private Networks (VPNs), data usage, connectivity application programming interfaces (APIs), Domain Name System (DNS), etc. The team operates at all layers including kernel, Berkeley Packet Filter (BPF), native daemons, Java system code, and app APIs. We use Java, C++, Rust, BPF, and Kotlin.
In this role, you will maintain relationships across the industry, with original equipment manufacturers (OEMs)/system on a chip (SoC) vendors and through the Internet Engineering Task Force (IETF) with other developers and Operating System (OS) vendors.Android is Google’s mobile operating system powering more than 3 billion devices worldwide. Android is about bringing computing to everyone in the world. We believe computing is a super power for good, enabling access to information, economic opportunity, productivity, connectivity between friends and family and more. We think everyone in the world should have access to the best computing has to offer. We provide the platform for original equipment manufacturers (OEMs) and developers to build compelling computing devices (smartphones, tablets, TVs, wearables, etc) that run the best apps/services for everyone in the world.
With your technical expertise you will manage project priorities, deadlines, and deliverables. You will design, develop, test, deploy, maintain, and enhance software solutions.
The team maintains all Android networking code that includes routing, firewalling, Virtual Private Networks (VPNs), data usage, connectivity application programming interfaces (APIs), Domain Name System (DNS), etc. The team operates at all layers including kernel, Berkeley Packet Filter (BPF), native daemons, Java system code, and app APIs. We use Java, C++, Rust, BPF, and Kotlin.
In this role, you will maintain relationships across the industry, with original equipment manufacturers (OEMs)/system on a chip (SoC) vendors and through the Internet Engineering Task Force (IETF) with other developers and Operating System (OS) vendors.Android is Google’s mobile operating system powering more than 3 billion devices worldwide. Android is about bringing computing to everyone in the world. We believe computing is a super power for good, enabling access to information, economic opportunity, productivity, connectivity between friends and family and more. We think everyone in the world should have access to the best computing has to offer. We provide the platform for original equipment manufacturers (OEMs) and developers to build compelling computing devices (smartphones, tablets, TVs, wearables, etc) that run the best apps/services for everyone in the world.
Responsibilities
- Make networking faster by using better integration between high-level protocols such as HTTP, QUIC and MDNS and the lower levels of the stack (e.g., cross-process DNS caching).
- Leverage cross-layer optimizations and hardware offload, and improve hardware resource management to reduce power consumption and improve battery life.
- Implement important networking technologies at various stages of maturity such as DNS-over-HTTPS, Encrypted Client Hello, local network filtering, IPsec, etc. and help deploy them to Android users.
- Expand the stack's capabilities in areas such as HTTP/3 and peer-to-peer connectivity, in partnership with other teams such as Cronet and Nearby Share.
- Provide networking mentorship and leadership to engineers, thinking about how the stack should interoperate and behave to ensure long-term success (high performance, low latency, low cost, privacy) for Android users everywhere.
Minimum qualifications:
- Bachelor's degree in Computer Science, a related technical field, or equivalent practical experience.
- 5 years of experience with software development in one or more programming languages (e.g., Java, Kotlin, Rust, C++, etc).
- 5 years of experience in writing or using networking code such as Hypertext Transfer Protocol (HTTP) and Remote Procedure Call (RPC) client libraries.
Preferred qualifications:
- Master's degree or PhD in Computer Science or related technical field.
- 1 year of experience in a technical leadership role.
- Experience designing, implementing, or using networking protocols (IPv6, IPv4, UDP/TCP, DNS, HTTP, QUIC, TLS).
- Knowledge of the Linux kernel networking stack and drivers.