Senior Software Engineer, Build and Release Job Description Template
Our company is looking for a Senior Software Engineer, Build and Release to join our team.
Responsibilities:
- Administer, build, and manage build clusters;
- Prepares written software/storage specifications for complex products from architectural diagrams and documents;
- Administer GitHub repositories for our products;
- Measures and analyzes quality metrics;
- Contributes to the design and architecture of new or re-engineered software/storage environments;
- Continue to improve build infrastructure, efficiency and reliability;
- Maintain inventory of third-party dependencies and track them for security updates;
- Administer Gerrit code review server including integration with build process;
- Manage, automate and improve the build process;
- Create, review, publish and manage formal release notification, instructions and launch plans if needed;
- Troubleshoot and resolve build failures;
- Designs and implements source code revision control methods for products;
- Prepares accurate project status documentation for leadership;
- Work effectively with cross-functional and distributed teams.
Requirements:
- Linux System Administration;
- Experience building Java based applications;
- Managing package repositories such as Artifactory, NPM, Pypi;
- 2+ years experience with development environments including Xcode, MSVC, and Linux build tools;
- Deep understanding of Git, including branching, etc;
- Work experience with software development ALM tools (For example Atlassian, TFS);
- Experience with build slave pooling (e.g. docker swarm) and virtualization (e.g. VM’s);
- Must be detail oriented and provide high quality of deliverables;
- 2+ years experience in software development with at least 2 years in release engineering;
- Strong scripting for example PowerShell, Python, Ruby, Bash, Java Script, Gradle;
- Strong communication skills are required to be able to articulate complex solutions back to customers as part of collaborative efforts;
- Utilization of Docker containers;
- Configuration Management tools (For example Puppet/Chef/Nagios);
- Docker and Ansible expertise highly desirable;
- Experience working with overlapping product release cycles (e.g. major releases, maintenance releases, beta and patches).