Release Engineering plays an integral role in defining, implementing, and operating automated software release systems. The role supports Oculus Research engineering by managing the source code repositories, automating builds and tests, building custom automation tools, monitoring build and test infrastructure, and coordinating release deliverables. Release Engineering ensures that new software is released in a streamlined way, with high quality and repeatability. As a Lead Release Engineer you'll use your expert knowledge of build and test automation software and practices to define and implement the continuous integration systems that support the software engineering teams. You'll use your strong technical abilities to drive product releases across many different systems and teams. You will mentor software engineers on build and test automation best practices, and you'll mentor other release engineers on creating high quality build and test automation infrastructure. You'll coordinate build and test infrastructure with massive high performance computing back ends. And most importantly, you'll turbocharge the teams and help them move fast on cutting-edge projects. Come work alongside expert software engineers and research scientists to create the technology that makes VR and AR pervasive and universal. Join the adventure of a lifetime as we make science fiction real and change the world.
Evaluate, define, implement, and operate our tools for continuous build, automated testing, and release management
Own build and test systems that work across a wide variety of host and target platforms including Windows, Linux, and various mobile and embedded platforms
Own, manage, and improve our release processes across teams with a focus on scale and efficiency
Define and implement build and test tools needed during software projects
Identify and resolve build and test automation dependencies that span multiple code repositories and multiple teams
Document all build procedures and educate new team members on best practices for build and test automation
Continuously improve reliability, scalability and performance of automation systems and processes
Write clean readable scripts, debug complex problems that span systems and tools, prioritize ruthlessly and get things done with a high level of efficiency
Mentor other engineers working on release engineering systems and projects
Continuously evaluate the state of the art in build and automation systems and related technologies, and collaborate with release engineering teams across the company to ensure that we are on the cutting edge of software release automation capabilities
BS degree in Computer Science or equivalent experience
5 or more years relevant build system or release management experience shipping products of high complexity
Experience with Git, Perforce, Mercurial or related version control tools
Experience with advanced version control concepts and best practices like branching, merging, branch rebasing, remote/dependent repository handling, etc.
Experience with Jenkins, Bamboo, Gitlab CI or related continuous integration tools
Knowledge with build systems such as Buck, CMake or MSBuild
Experience on both Windows and Linux
Experience building C/C++ applications
Experience integrating a variety of tools into a build pipeline, including static code analysis, testing tools, and performance analysis tools
Experience debugging and triaging compilation and test failures and engaging the right software teams to resolve the failures.