DevOps Engineer
Role details
Job location
Tech stack
Job description
Defines all aspects of the Software Engineering build, Continuous Integration and Continuous Delivery systems in collaboration with other senior roles. Proactively encourage the wider department to develop and improve all aspects of the software development lifecycle and adoption of best practice. Share expertise and support the development of other DevOps staff through training, coaching or mentoring as appropriate Ensure that all teams are using the latest build system. Design and development of the staging and deployment software builds processes, to test and production environments. Ensure that metrics on code quality (static code analysis) and code coverage are generated for all projects and are available to each team and managers within the department and push for the improvements in all respects. Lead engagement with other development teams within the company (across all geographic locations) to share expertise and move towards standardised procedures. Work collaboratively with IT teams to specify new build environments and implement the use of new tools. Advise and oversee the adherence to the Secure Development Lifecycle and assist teams to implement it within the department build, integration and delivery system. Generate Operating System images for all projects (including Windows and Linux). Defines the escrow submission process. Define the Software Engineering policies and procedures and update them as build, deploy and test methods are improved. Prepare reports, manuals, procedures and status reports. Keeps abreast of improvements and developments within software engineering and DevOps. Comply with Cubic's values and adherence to all company policy and procedures. In particular comply with the code of conduct, quality, security and occupational health, safety and environmental policies and procedures. In addition to the duties and responsibilities listed, the job holder is required to perform other duties assigned by their manager from time-to-time, as may be reasonably required of them.
Requirements
Continuous Integration and Continuous Delivery - Expertise in and ability to fully implement and define using Jenkins (including installation and configuration of third-party plugins). Scripting languages - Key tools require Ruby, Bash and DOS, as well as Python and Perl. Dependency and Repository Management - Experienced in installing, configuring, and maintaining software Repositories from within Artifactory and other SCM tools. Automated Test - Designing and supporting the implementation of automated tests - both of software and systems. Windows and Linux Operating System images creation - Expert knowledge with Vagrant and Chef to generate development environments. Installation and configuration of VirtualBox for deployment of Virtual Machines. Expertise in creating and maintaining Chef recipes for multiple development environments Software Configuration Management - a thorough understanding of git and associated tools, Knowledge of ClearCase, Windows and Linux - Proficient with Ubuntu, Lubuntu, Raspbian and various Windows OS versions. Secure Development Lifecycle - a working understanding of Secure Development to enable assisting with such projects. Automation of software quality analysis using SonarQube and ability to interpret results and provide relevant reports. Also required understanding of third-party plugins, e.g. Dependency Checker. Desirable: Networking and interfacing - Experience of IP Addressing, secure key handling, secure ftp, certificates, etc. Software development tools - Experienced in supporting; development environments such as Visual Studio, CLion, Eclipse, IntelliJ etc., SCM Tools, Automated build servers and scripts (Python, JavaScript) etc, Agile - experience of working in an agile team environment. Experience with Atlassian Tools and administration thereof., Bachelor of Science degree in computer science or related field, equivalent professional experience or combination of both Personal Qualities Excellent written and verbal communication skills with the ability to communicate effectively at all levels Diligent, with attention to detail. Able to problem solve and find effective and timely resolutions Ability to work as part of a team towards individual and shared goals Self-motivated with the ability to work on own initiatives and under pressure Organised with the ability to handle multiple projects and undertake new tasks quickly An effective problem solver with the ability to understand and resolve complex issues Demonstrates excellent interpersonal skills with a willingness to share knowledge, coach and collaborate effectively with individuals and other departments Strong organisation and planning skills with the ability to handle multiple projects and undertake new tasks quickly Worker Type