Software Engineer, Facebook Connectivity at Facebook
Menlo Park, CA, US
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, but C++ and Python are necessary for survival, as is an interest for tinkering and good understanding of the underlying hardware. 
The team is also responsible for designing and developing of algorithms to support key wireless protocols as defined in 802.11 amendments (ad, ay, s, ax) and other related standards. The software developed by this team runs on application-specific embedded CPUs, system-on-chips, DSPs, baseband processors and other wireless-specific hardware. 
RESPONSIBILITIES
  •  
     
    Drafting software that runs on embedded boards used for communications. This could span from bootloader, firmware running on specialized cores, Linux kernel development and user space applications.
  •  
     
    Develop firmware for networking protocols including provisioning and controlling wireless (PHY) hardware.
  •  
     
    Development, debugging, and maintenance of the firmware, in conjunction with the low level hardware.
  •  
     
    Architecture and design of firmware and platform software, including work with partner teams to ensure consistent design across components.
  •  
     
    Developing unit and system level tests, instrumenting test automation for collecting data and characterizing the performance.
  •  
     
    Utilize Facebook tools and software development processes to guide the development lifecycle.
MINIMUM QUALIFICATIONS
  •  
     
    Knowledge of C, C++, and Nix systems.
  •  
     
    B.S. or M.S. in Computer Science, Electrical Engineering or a related discipline.
  •  
     
    Experience with software design, implementation, and deployment of embedded systems.
  •  
     
    Knowledge of real-time operating systems (RTOS), interfaces for data acquisition and control, and device drivers.
  •  
     
    Experience with hardware-in-the-loop testing and validation including the use of network test equipment and lab test equipment such as spectrum analyzers, oscilloscopes, and frequency synthesizers.
  •  
     
    Knowledge or experience in the following: ARM architecture, small to medium scale software development, test suite development, distributed code repositories, and embedded Linux.
PREFERRED QUALIFICATIONS
  •  
     
    Bachelors or Masters Degree in CS or EE plus at least 5 years of communication software/systems experience.
  •  
     
    5+ years experience in embedded C and build systems.
  •  
     
    2+ years experience in Python and C++.
  •  
     
    Working knowledge of 802.11 standard, communication theory and digital signal processing.
  •  
     
    Experience with debugging of integrated HW & SW in lab and field.
  •  
     
    Experience with high volume production of communication products.
Facebook is committed to providing reasonable accommodations for qualified individuals with disabilities and disabled veterans in our job application procedures. If you need assistance or an accommodation due to a disability, you may contact us at accommodations-ext@fb.com.