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)