Facebook Firmware Engineer, SLAM in Redmond, Washington
Oculus is the world leader in the design of virtual and augmented reality systems. Come work alongside expert engineers and research scientists to create the technology that makes VR and AR pervasive and universal. Join the adventure of a lifetime as we make science fiction real and change the world. We are seeking a Firmware Engineer to support development of state-of-the-art SoC with dedicated hardware accelerators (HWA) designed for computer vision and machine learning. The successful candidate will be part of a team that includes algorithm, user experience, software, firmware and ASIC experts. The ideal candidate will understand low-level embedded firmware development for custom low-power HWA. This is a full-time position based in our Redmond, WA office.
Low-level embedded firmware architecture and design to orchestrate HWA operations in system pipeline
Implement C/C++ code to manipulate bits in HWA control registers
Aid RTL developers with simulation and debug with DV engineer for co-verification of hardware and firmware before chip tapeout
Develop low-level OS drivers for hardware accelerators and peripherals
End-to-system firmware development to include power-management, boot loaders, scheduling, RTOS and/or bare-metal implementations
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
B.S. degree in Computer Science or Electrical Engineering
5+ years of experience in embedded firmware design
Experience in firmware development for mobile SoC low-power design
Knowledge of how hardware works, clock-level issues, bridges, delays, interrupts, clock gating, polling etc.
Experience implementing firmware for low-power SoC and tapeout of chips
Knowledge of embedded micro-controllers like ARM Cortex M0/M3/M4 architecture and boot mechanism, interrupt priorities and experience with configuring peripherals
Experience working with DRAM-based systems and issues related to DRAM bandwidth, power and throughput
Software design and programming experience in C/C++ for development, debugging, testing and performance analysis
Experience using instrumentation like oscilloscopes, logic/protocol analyzers for debugging embedded systems at HW level
Experience in cross multi-disciplinary boundaries to drive system solutions
Hands-on coding experience with peripherals such as USB, SPI, CSI-2, i2c, GPIO etc.
Experience in protocol implementations such as USB device classes (UVC, UAC, HID)
Experience with embedded DSP and CPU architectures
Experience with EDA design tools and instruction set simulators
Hands-on experience with FPGA and vendor specific hardware evaluation boards
Experience customizing Linux kernel, FSBL, UBOOT
Experience developing custom Linux device drivers (kernel, user space- UIO or other)
Experience in video and sensor drivers
Experience in FPGA Firmware debug using protocol analyzers, logic analyzer, o-scope, and internal FPGA logic analyzer
Experience in FW architecture for file transfer, DFU, multi-chip communication, and runtime configuration
Equal Opportunity: Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. If you need assistance or an accommodation due to a disability, you may contact us at firstname.lastname@example.org or you may call us at +1 650-308-7837.