Previous Job
System Software Engineer – Algorithm Prototyping
Ref No.: 20-04403
Location: Redmond, Washington
This is an excellent opportunity to join the world's largest social media network who enables over a billion users to openly connect with friends and family, share content, and explore the world.

System Software Engineer - Algorithm Prototyping
Redmond, WA

If you're knowledgeable about virtual address translation & page management and have an interest in AR/VR graphics processing, a love for solving Client problems from first principles, and excellent coding and communication skills, you'll thrive in our collaborative environment.

Join a world-class team of pioneers experimenting with breakthrough technology. Partner with expert research scientists, mechanical engineers, electrical engineers, and other brilliant software minds to build cutting-edge software prototypes to help create the technology that makes AR/VR universal.

Come invent the future. At FRL, graphics software development is vital to turbocharging our scientific explorations and generating viable paths to the consumer products people will use for decades to come — products that will literally give people superpowers.


This project involves testing and ultimately implementing new methods for virtual page translation for use in AR/VR graphical systems. Job skills required for the position include the following:
  • Write code that emulates proposed algorithms, both for offline and real-time results
  • Build a memory access simulator to measure the performance of a Client virtual addressing system
  • Write a page management system that allocates virtual addresses for various kinds of memory resources
  • Ultimately write kernel code to integrate the new paging system into an embedded processor OS* Write clean readable code, debug complex problems that span systems, prioritize to maintain efficiency
  • Learn constantly, dive into unfamiliar technologies, and embrace the ambiguity of AR/VR problem solving
  • Work closely with our perceptual research team as well as other domain experts to evaluate results
Baseline Requirements
  • Solid working knowledge of how virtual address translation works in existing hardware
  • Solid working knowledge of how page management systems work in existing operating systems
  • 5+ years C/C++ experience, including C++11 (and up) features and principles
  • 5+ years of experience creating software for games or other high performance/complexity environments
  • Experience with one or more low-level graphics frameworks, such as DirectX, or OpenGL,
Additional Desired Skills
  • Knowledge of hypervisors or other dual address translation systems
  • GPU memory management including data compression and address swizzling
  • Knowledge of GPU architecture, GPGPU, caches, code generation, and profiling
  • Experience working with silicon teams
  • GPGPU experiences, such as CUDA, OpenCL or DirectCompute development
  • Embedded and low-power environments (mobile SoCs, DSPs, etc.)
  • BS degree in Computer Science or a related field