Software Engineer, Programming Language VM

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 is seeking an experienced Software Engineer to join the Software Engineering (Infrastructure) team. The Software Engineering (Infrastructure) team builds large distributed components that run Facebook. Our code serves millions of requests per second and it does so with sub-second latency and in a fault tolerant manner. We handle everything from Facebook scale data storage, to synchronization and coordination of large server clusters, to providing a runtime environment for front end Facebook code. Some of the most heavily used languages at Facebook are managed languages, such as PHP/Hack, JavaScript/Flow and Python. At Facebook, we are pushing the limits in deploying VMs for these languages to support the incredible scale of deployment of the Facebook family of apps. We are looking for candidates who share a passion for tackling complexity and building Virtual Machines that can scale through multiple orders of magnitude while minimizing resource usage, running on servers and mobile devices. This position is full-time and based in our Menlo Park, CA office.


  • Design core, backend software components
  • Code using primarily C/C++, Java, PHP and Hack
  • Interface with other teams to incorporate their innovations and vice versa
  • Conduct design and code reviews
  • Analyze and improve efficiency, scalability, and stability of various system resources
  • B.S. Computer Science or related technical field
  • Experience with operating system internals, filesystems, programming language design, compilers
  • Interests in compiler or programming language virtual machines
  • 6+ years relevant coding experience in C, C++, Java and/or C#
  • 2+ years relevant coding experience in Perl, PHP, Hack, Python, or JavaScript
  • 2+ years relevant experience building large-scale server applications
  • M.S. or PhD in Computer Science or related technical field

Back to top