Software Engineer - Routing and Data Path
- Menlo Park, CA
Facebook's mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we're building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we're creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities - we're just getting started.
At Facebook Connectivity, we believe that connecting the world is one of the greatest challenges of our generation, and that everyone deserves access to the knowledge, tools and opportunities that come from being connected. This is why we are developing new platforms and solutions for connectivity.The Wireless Platforms and Protocols team is responsible for the operating system, embedded services and firmware for existing and upcoming connectivity boards (Terragraph, Wi-Fi, Cellular). The development includes kernel, drivers, management of peripheral devices, tools to optimize workflows and debugging, and packet switching data plane. The majority of development is in C, C++ and Python.We are looking for a Software Engineer with implementation experience in different layers of the software networking stack such as Layer 2 switching (both physical and virtual such as Linux bridging and VPP), Layer 3 forwarding and Routing (OSPF, BGP), and overlay technologies such as VXLAN, L2GRE and SRv6. Ability to work with the Linux kernel TCPIP stack or user space networking stacks is a must.
- Design new data path solutions by leveraging a combination of off-the-shelf packet processing technologies and custom code developed in-house.
- Design and implement routing protocol improvements based on data obtained from trial and production deployments.
- Debug packet drops and other performance issues to ensure that we have a scalable high performing data path.
- 5+ years of experience implementing Layer 2 Switching protocols.
- 5+ years of experience implementing Layer 3 Routing protocols such as OSPF, BGP, and VRFs.
- Experience designing test and validation plans for networking protocols.
- Minimum 4 years of practical experience with embedded software development in C/C++.
- Experience debugging issues from logs and traces collected from live networks.
- Technical leadership experience. Contributor to an open source networking project, such as Linux kernel networking stack, DPDK, OVS or VPP.
- Understanding of recent wireless networking protocols (802.11d, 802.11ay, 802.11ax).
Back to top