Software Engineer, Server Efficiency

MetaApplyPublished 3 months agoFirst seen 1 months ago
Apply

Description

Our team is responsible for increasing the efficiency of the entire software stack running in our data centers. Our work contributes to one of Meta’s top priorities: we save the company billions of dollars in operating expenses every year, ensure that we have the computational resources necessary for our growth, and improve business metrics by advancing system software. We seek software engineers for roles focusing on performance engineering to support the majority of Meta’s server-side software. At Meta we have a particular opportunity to optimize software execution, as we have full knowledge of what we run and the data patterns that we see. This guides our design and implementation of data structures, libraries, and performance optimizations to increase efficiency across our varied workloads and allows us to contribute beyond Meta's services through our open-source software. As a member of our team, you will contribute to high-impact efficiency improvements that benefit all of Meta's server developers and users. You’ll be working alongside industry-leading library and compiler experts and collaborate with the open-source community.

Responsibilities

Develop and optimize C/C++ libraries for Meta services–memory allocation, thread pools and work scheduling, thread synchronization and lockless data structures, highly performant collections, async processing and I/O, RPC, etc Analyze resource utilization in server applications (CPU, GPU, memory, network, etc.), identify bottlenecks, scope out opportunities for improved resource utilization, and implement improvements, such as modifying core libraries to optimize Meta server workloads, implementing efficiency improvements in production code (e.g., change core data structures), or improving server utilization Work with internal customers and partners to define requirements Reflect requirements in the team roadmap and plan out execution

Qualifications

Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience 6+ years of professional C/C++ experience Knowledge of computer architecture, CPU and memory subsystem, and OS-level resource management Experience using performance-profiling tools and optimizing native applications for execution-time and memory efficiency Experience implementing and optimizing low-level libraries, such as memory management, threading, data compression, or string processing Knowledge of modern ISAs, such as x86 and ARM Experience hand-tuning code, e.g., with loop optimizations, vectorization, parallelization, HW-architecture-specific optimizations Experience developing operating-system kernels

Compensation: $74.04/hour to $217,000/year + bonus + equity + benefits