Algorithm Modeling Software Engineer

Employer

Job Description

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 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 Algorithm Modeling Software Engineer to support C++ modeling of computer vision, ML and other algorithms implemented in dedicated hardware accelerators (HWA) which are used inside our ASICs. The successful candidate will be part of a team that includes algorithm, software, firmware and hardware design and verification experts. The ideal candidate will understand algorithms, C++ modeling, virtual platforms, and firmware development processes. This is a full-time position.

Responsibilities
  • Work with IP Architect to delineate and develop C++ models for algorithms that will get implemented in hardware.
  • Support use of C/C++ models for architectural modeling and algorithm benchmarking.
  • Support integrating the models into Virtual Platform by SystemC wrappers for early firmware development.
Minimum Qualification
  • B.S. degree in Computer Science or Electrical Engineering or equivalent experience.
  • 2+ years of hands-on low-level programming experience including bit-level manipulation of data.
  • Knowledge in algorithms, data structures, software design and programming experience in C/C++ for development, debugging, testing and performance analysis.
  • Experience in writing, manipulating and maintaining scripts – Python or similar (Perl, Bash/AWK, Tcl).
Preferred Qualification
  • M.S. degree in Computer Science or Electrical Engineering.
  • Knowledge of audio, image, video and computer vision processing including file formats, meta data and related techniques for digital signal processing.
  • Knowledge of deep learning techniques such as CNN.
  • Experience with SystemC modeling.
  • Experience in reference model development.
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. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.