Software Engineer - Rosetta

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.

The Rosetta team sits at the heart of XROS. We’re building a modern, feature-rich and language-independent IDL that is the RPC mechanism by which OS services and frameworks communicate. We’re building the runtimes which provide support for the spatial computing (AR/VR) programming model in multiple languages. It’s asynchronous, declarative, supports bound data, and composes hierarchical object trees for input and output. Members of this team move seamlessly between languages. Our code spans Rust, Scala, C, C++, JavaScript, and more. If you want to help build the platform for spatial apps, if you’d rather generate code, if you love efficient code and discussing syntactic sugar, if you want to help lead the team inventing the programming model of the future—join us.

Responsibilities
  • Contribute significantly to the IDL compiler and runtime implementations.
  • Architect platform specific and platform independent subsystems of the runtimes.
  • Own OKRs for the work-stream and ensure proper scheduling, design, and implementation.
  • Instrument, profile, and fix problems to ensure best-in-class performance on resource-constrained mobile platforms.
  • Help refine ergonomics based on developer and usability feedback.
  • Collaborate with other teams across AR/VR to present a unified developer offering.
Minimum Qualification
  • BS degree in computer science or related field.
  • 4+ years experience in C++, C, Objective-C, Rust, Scala, Scheme, Lisp or Haskell.
  • 4+ years experience core systems or compiler development.
  • Experience profiling, debugging, and optimizing production code.

Preferred Qualification
  • Strong communication skills.
  • Proficiency in modern C++ constructs and practices (C++17, etc.).
  • Functional language skills (Scala, Haskell, F#, LISP, Scheme, etc.).
  • Experience with existing IDL compilers (MIDL, AIDL, Thrift, ProtoBuf, Flat Buffers, etc.).
  • Track record of being an early adopter/contributor for new frameworks.
  • Experience with parsers, compilers, code generation, virtual machines, etc.
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.