Software Engineer - WhatsApp Erlang Team

Facebook ,
London, Greater London

Overview

Job Description

Intro: 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. Summary: Our team works on the Erlang programming language, libraries and tools. Our mission is modernizing and improving Erlang, and making it more efficient for WhatsApp and beyond. Our biggest and the most challenging project is evolving Erlang into a modern statically typed programming language. Our work is motivated by extremely successful and large-scale application of Erlang at WhatsApp. Our Messaging Infrastructure that powers fast and reliable message delivery for 2B+ users is written in Erlang. Required Skills: 1. Working on design and implementation of the Erlang programming language 2. Working on Erlang standard library, and on other libraries written in Erlang 3. Integrating language and library changes into existing Erlang codebases. Building tools to automate migration 4. Working on language tools such as build system, formatter, language server. Integrating language tools into existing development workflows 5. Working with WhatsApp Erlang users and cross-functional team partners inside WhatsApp and Facebook 6. Collaborating with the Erlang community and open-sourcing our work Minimum Qualifications: 7. Fluency in at least one of the following programming languages: OCaml, SML, Haskell, Scala, Erlang 8. Work experience in at least one of the following languages: C, C++, Java, Kotlin, Go, Rust 9. Work experience in at least two of the areas listed under PREFERRED QUALIFICATIONS Preferred Qualifications: 10. Inference-based type systems, type checkers 11. Compilers 12. Programming language design 13. Programming language runtimes, virtual machines, operating systems 14. Programming language tools (e.g. build systems, IDE) 15. Libraries and tools for programming language interoperability 16. Work experience in Erlang 17. Server programming, scalable server infrastructure 18. Open-source projects and collaboration with open-source communities Industry: Internet