Embedded Software Engineer
Vacancy expired!
Facebook Reality Labs focuses on delivering Facebook's vision through Augmented Reality (AR) and Virtual Reality (VR). The compute performance and power efficiency requirements of Virtual and Augmented Reality require custom silicon. Facebook Silicon team is driving the state-of-the-art forward with breakthrough work in computer vision, machine learning, mixed reality, graphics, displays, sensors, and new ways to map the human body. Our chips will enable AR and VR devices where our real and virtual world will mix and match throughout the day. We believe the only way to achieve our goals is to look at the entire stack, from transistor, through architecture, to firmware, and algorithms. We are seeking an Embedded Software Engineer to support development of ASICs custom-designed for Facebook Reality Labs products. The successful candidate will be part of a team that includes algorithm, user experience, software, firmware and silicon experts. The ideal candidate will understand low-level embedded software development for custom low-power SoC. This is a full-time position.
- Lead firmware design, architecture, and implementation for key components of Facebook Reality Labs custom silicon SoCs
- Collaborate closely with silicon architects, the OS team, and algorithm and model development teams
- Support all phases of SoC development - including early architecture requirements definition for custom silicon, firmware architecture, implementation, simulation, FPGA debug, chip bringup and support systems and software teams on algorithm development on validated systems
- End-to-system firmware development to include power-management, boot loaders, scheduling, RTOS and/or bare-metal implementations
- Develop custom kernel drivers and APIs for hardware accelerators and peripherals
- B.S. degree in Computer Science or Electrical Engineering and 5+ years of experience in firmware development
- Experience building software for complex embedded systems or custom SoCs
- Experience with embedded software design and programming in C/C for development, debugging, testing and performance analysis
- Experience in understanding hardware, clock-level issues, bridges, delays, interrupts, clock gating, polling etc.
- Experience with prototyping or pre-silicon environments (FPGAs, simulation, or emulation)
- Hands-on coding experience with peripherals such as UART, SPI, CSI-2, i2c, GPIO, USB
- Experience with lab tools like oscilloscopes or logic/protocol analyzers for debugging embedded systems at HW level
- Experience with embedded security, audio algorithms, DSPs, or software pipelines for low power edge inference systems/products
- Experience with computer vision and speech recognition deep learning models
- Experience with low precision inference, quantization, compression of deep learning models
- Familiarity with cryptographic primitives, protocols, and threat modeling
- Familiarity with bootloaders, Trustzone, and industry standards
- Experience with silicon and device manufacturing
Vacancy expired!