Software Engineer, Server Performance

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 has built one of the largest connected Internet service in the world. To support the fast growth of different products, Facebook has several very large shared platforms to support computation, caching, and storage workloads with extremely different performance characteristics. Despite a general trend towards faster/more CPU, bigger memory, more accessible flash/NVM and cheaper storage device over time, the organic growth of the workload always outpaces overall infrastructure capacity. At Facebook’s scale, the raw demand for hardware resources will limit how much we could support the fast-growing worldwide community, not only in terms of cost to run the platform, but FB’s demand often pushes the boundary on how fast we could build data centers around the world. Efficiency improvement cross stack is key and scaling that to the wide variety of services is challenging. The Efficiency Infra team owns efficiency for all server-side code running in shared platforms across products. We own key companywide efficiency metrics and build solutions to solve efficiency problem in distributed systems automatically in generic way. It has the direct impact on how fast Facebook could meet the demand for next billion users. Our team is growing and we are looking for performance-minded engineers, who are passionate about solving performance/efficiency problems at scale. The ideal candidate is comfortable digging into complex systems, mining large set of data, identifying optimizations, and working with different teams to develop solutions. You will contribute to development of performance tools for investigation, regression tracking, and metrics reporting and own performance optimization efforts. These solutions span different layers of distributed systems and require creative, unconventional thinking. As part of a world-class engineering team, you will apply performance best-practices from across the industry to a world class Internet service.

RESPONSIBILITIES

  • Analyze and optimize large-scale server code and the underlying platforms
  • Build world-class performance instrumentation and analysis infrastructure
  • Automate efficiency measurement and analysis
  • Own high-visibility efficiency metrics
  • Optimize CPU, memory, I/O, network and storage usage in our backend infrastructure
  • Build common framework to provide optimal implementation of common server-side logic
  • Mentor engineers on performance/efficiency best practices
MINIMUM QUALIFICATIONS
  • Bachelor's or Master's degree in Computer Science, Computer architecture, Electronics, Electrical, or related field
  • 5+ years of industry experience shipping production software
  • Experience building large-scale distributed systems
  • Knowledge of systems architecture and performance trade-offs
  • Experience in any of C/C++, PHP, C, Java, Python programming languages
PREFERRED QUALIFICATIONS
  • Performance analysis/optimization for server software


Meet Some of Facebook's Employees

Lauren W.

Global Marketing Lead, Facebook Blueprint

As the marketing lead for Facebook’s Blueprint program, Lauren focuses on building awareness around the program and the adoption of education and training by businesses and advertisers.

Ariane J.

Software Engineer

Ariane works to improve Android performance for various Facebook products. She drives the entire tooling system and the way it should operate, and fixes logging and instrumentation APIs.


Back to top