Role Overview
Our DevOps Engineers apply software engineering practices to build, run and maintain the software and infrastructure required for distributed fault-tolerant systems. DevOps Engineer ensures that the reliability and uptime of our systems aligns with the needs of the system’s user base and optimizes the capacity, performance, and cost of running our systems, often via automation of repetitive operational tasks.
Responsibilities
- Engages in the entire lifecycle of our systems development from inception through production maintenance
- Assists in defining automated monitoring, deployment and repair strategies using a wide variety of Ops tools and monitoring platforms
- Builds and maintains tools for deployment, monitoring and operations as well as troubleshoots and resolves issues
- Assists with the Continuous Integration and Continual Deployment (CI/CD) processes and mentors teams to assist with improving their processes
- Designs systems to be able to be fault-tolerant and scalable
- Designs and builds software and systems to manage infrastructure and applications
- Ensures reliability, quality, and time-to-market targets are well understood and achieved for our software
- Provides primary operational support and engineering for test and production systems
- Participates in post-mortems with a focus on improvement
- Contributes to the sustainability of our systems through automation
- Collaborates with development and release teams to improve services through rigorous testing
- Balances the pace of feature releases with service-level objectives
- Researches and understands emerging technologies, tools, platforms, and frameworks
- Performs other duties as required
Requirements
- Bachelor’s Degree or the equivalent combination of education, training, or work experience
- 2+ years of experience in systems administration, DevOps, Site Reliability Engineering (SRE), and/or development
- Experience with container orchestration tools such as OpenShift and Kubernetes
- Experience working in an environment that utilizes CI/CD processes
- Experience with a programming/scripting language such as Python, PowerShell, Bash, Java, C#, or Ruby
- Experience analyzing, and troubleshooting scalable distributed systems
- Knowledge of source code control tools such as Git (GitLab, GitHub, BitBucket)
- Experience creating and maintaining CI/CD pipelines using Jenkins, GitHub Actions, or similar
- Experience in Linux (Red Hat Enterprise Linux / RHEL) and/or Windows operating system
- Ability to automate routine tasks, debug and optimize code
Skills
- Kubernetes
- Python
- Jenkins
- Git