Systems Software Engineer, Brain-Computer Interface Team
- 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.
Facebook Reality Labs (FRL) is dedicated to research and development required to deliver Facebook's vision of virtual reality (VR) and augmented reality (AR) experiences that ship in five to ten years. FRL's Brain Computer Interface, or BCI, team is developing a non-invasive system to enable anyone to use their brain to interact with devices. As a Systems Software Engineer, you will work with a multidisciplinary team of engineers and researchers in Menlo Park, CA. You will be responsible to bringup and integrate cutting edge hardware that implements neural interface technologies.
- Work at all levels of the software stack, from device drivers and operating system to high-level application, to integrate a variety of hardware devices
- Collaborate closely with the multidisciplinary team (hardware and software) to build embedded systems prototypes
- Develop robust processes for validating hardware and system integration
- BS in Computer Science, Computer Engineering or related field
- Knowledge of operating systems concepts
- Experience writing software at all levels of the stack, from device driver to high level APIs
- Experience with board bringup and systems debugging
- Experience developing and debugging on a microcontroller, embedded Linux or Arduino board
- Experience in the following programming languages: C++, Python
- Experience with multithreading and concurrency
- Experience with USB protocol and transfer types
- Experience with common communication protocols such as SPI, I2C, UART, etc.
- Experience with Linux kernel, IPC and device drivers
- Experience with embedded Linux
- Experience with real-time systems
- Experience in start-ups, research groups, or small teams
- Experience in fast-paced environments
Back to top