Preparing software for release requires bringing many separate components together: code that needs to be compiled, third-party libraries that need to be installed, scripts that enable everything to run, and some kind of hardware where the software is deployed. Ensuring that the right versions of all the components are packaged together and successfully installed is the job of a build and release engineer.
Build and release engineers usually have a degree in computer or information science. The engineers should understand how configuration management and version control systems work, and be able to work with the development team to manage branches.
Engineers should become comfortable writing complex scripts for a variety of platforms, as these are needed to automate the many steps of a build and deployment process. Many organizations try to minimize manual effort required to install a product, as that may be error prone. The scripts help ensure that the build process is repeatable and reliable.
Communication skills are important, as the build and release engineers need to work with the development and infrastructure teams to understand the components needed for the builds and the platforms the built packages need to run on. Release engineers need also need written communication skills, in order to document the build and release process.
Attention to detail is critical, since pulling the wrong version of source code into a build or omitting a necessary library means build scripts may fail or the deployed application won't run correctly.
The salary for build and release engineers is comparable to those in related careers like software engineering and systems administration. As you become more experienced in the release engineering process, you can take on additional responsibility for planning the application build and deployment process. For those who are interested in management, senior engineers can help choose tools and set corporate standards around the build and deployment process. Other build engineers opt to move into quality assurance or software development roles.