As a DevOps Engineer, you will be responsible for end-to-end service packaging and deployment pipeline scripting for complex business information systems and maintenance and support of the systems components throughout their lifecycle – from commit to health checks. The systems are a hybrid of on-premises, cloud and vendor, and the role involves responsibility for the hygiene of the applications configuration to support rapid re-configuration and deployment to different environments. The role expects a polyglot with a strong background in software development, SCM, CI, docker containers, combined with the ability to work with multiple development tools.
Responsibilities
- Solving software challenges by building robust applications, in-house tools for software configuration management, on top of writing code
- As an Engineer you will be responsible for designing, building and running systems that make software engineering faster, better and safer
- Strong scripting skills in at least one of these is an advantage: Shell scripting, Powershell, Python, Scala, Java, Javascript, Ruby, Go, Perl.
- Use TDD style development – follow acceptance stage TDD to perform testing earlier in the lifecycle
- Review and improve application design to cater for rapid re-configuration and secure deployments
- Containerisation (Docker) – experience with Docker – building, deploying and debugging containers
- Ability to support configuration of multiple runtime – Java, Node.js
- Ability to support multiple build tools (Maven, Gradle, Ant, NAnt, Webpack, MSBuild, Rake, GNU Make)
Skills & Requirements
- Bachelor’s degree in Programming/Systems or Computer Science or other related field. Or equivalent work experience
- 3-7 years of analysis and programming experience.
- Experience working in applications, systems or IT operations.
- Demonstrates in-depth knowledge of a broad range of hardware and software products.
- Strong grasp of automation tools.
- Strong troubleshooting and problem solving skills.
- Requires working knowledge of multiple programming languages
- Lead roles
- Experience designing, developing, testing, and deploying applications/systems using proven or emerging technologies, in a variety of technologies and environments.
- Demonstrated ability to analyze and interpret complex problems or processes, identify and understand requirements and develop alternate solutions.
- Experience in mentoring and executing DevOps, Agile, Lean, and Continuous Delivery best practices
- Experience running and scaling CI/CD systems such as Jenkins, TeamCity or Artifactory
- Experience configuring static and dynamic analysis tools (Sonar, Istanbul, etc)
- Experience with Container orchestration frameworks (Kubernetes)
- Experience with configuring logging for applications (Log4J, logback, bunyan)
- Working knowledge of Site Reliability Engineering – environment provisioning, monitoring, security, storage and networks
- Working knowledge of technologies such as Vagrant, VMWare
- Working experience on Linux (Ubuntu, RHEL).
- Experience with automated build pipeline, continuous integration and continuous deployment environments
- Continuous Integration Tools (Hudson, Bitbucket Pipelines, CircleCI)
- Proficient at SCM tools and branching strategies for different use cases (SVN, Git)
- Application servers and web servers (WebSphere, Tomcat, Jetty, Nginx, Nodejs, Microsoft IIS, Apache)