Job Description
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 Reality Labs (FRL) is helping more people around the world come together and connect through world-class Augmented, Mixed and Virtual Reality hardware and software. With global departments dedicated to AR/VR research, machine perception, graphics, operating systems, social interaction, and more, we are committed to driving the state-of-the-art forward through relentless innovation. AR and VR’s potential to change the world is immense and we’re just getting started.We have openings at all levels for engineers with strong interest and experience in designing, building, and optimizing operating systems software for revolutionary Facebook AR/VR consumer electronic devices.As an Operating Systems Software Engineer, you will be an integral member of the team, responsible for systems software design, implementation, and optimization. You will be involved in developing a platform while working on a variety of domains to enable new experiences for augmented reality, virtual reality and social/family products.
Responsibilities
- Design, develop and support Kernel, Virtualization, Storage related system software. Develop tools to support root cause analysis, performance measurement and analysis.
- Optimize implementations for improved resource utilizations and energy efficiency.
- Debug complex, system-level, multi-component issues spanning multiple layers from kernel to application.
- Profile performance problems and drive optimizations that span the entire software stack.
- Understand software components from multiple partner teams, lead the integration of those components into the unified product code base, and drive their continued development.
- Design and implement devices and drivers that operate efficiently in a constrained environment yet when pressed can efficiently deliver large volumes of data with low-latency and high-bandwidth.
- Bring up new devices and lead debugging and performance tuning exercises that span multiple hardware/software teams.
Minimum Qualification
- Solid understanding of Kernel (scheduling, memory management, IPC, resource allocation, optimization, power management, security), Virtualization (hypervisor, full/para/os virtualization) or Storage & File Systems (block, volume, eMMC).
- Programming skills in one or more languages: C, C++, assembly language.
- 2+ years of experience developing, debugging, and shipping software products on large code bases that span platforms and tools.
- 2+ years of experience with software development process (source control, design documentation, bug tracking).
Preferred Qualification
- 5+ years of experience in designing and developing production quality in one or more OS modules such as Scheduler, Memory Management, Inter Process Communication, Hypervisor solutions, File Systems, Power Management Frameworks, etc. for ARM v8/9 and/or x86_64 architecture based systems.
- Knowledge of ARM v8/9 and/or x86_64 architectures.
- 2+ years of experience with tools and techniques for micro architecture specific performance measurement/benchmarking, analysis and optimizations.
- Experience working collaboratively with cross-functional teams on a large multi-component system software code base.
- Familiar with open source technologies and development communities.
- Bachelor or Master in Computer Engineering, Computer Science, Electrical Engineering, or related field.
Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.