P

Software Engineer - DevOps

Pella Corporation
Full-time
On-site
Urbandale, Iowa, United States
Description

SUMMARY 

As the DevOps Engineer you will work with a cross functional team of developers, QA engineers, analysts, and business stakeholders to develop and implement software deployment pipelines for application deployments across a wide variety of technologies. You will help to champion the reliability, performance, and scale of Pella's core infrastructure through the implementation of enterprise scaled microservices, automations, orchestrations, monitoring, and disaster recovery. You will work to optimize software deployment and infrastructure services through the latest technologies, removing roadblocks while helping enable engineering teams to succeed.



Responsibilities
  • Automate cloud native technologies, deploy applications, and provision critical infrastructure
  • Work with microservices and distributed application architecture, such as containers, Kubernetes, and/or serverless technology
  • Guide and support engineering teams with deployment pipelines as Pella develops new software in cloud and on prem environments.
  • Gauge the effectiveness and efficiency of existing systems; develop and implement strategies for improving or further leveraging and/or abstracting these systems.
  • Develop loosely coupled architectures around monolithic software to aide engineers in development velocity and deployment cadence.
  • Ensure infrastructure/application alerts and monitors to automatically identify potential issues and proactively resolve them.
  • Maintain and improve rollback solutions for deployments.
  • Secure and maintain environment variables and secrets for all live environments.
  • Develop, improve, and help maintain local engineer environments using Docker Compose over a variety of different operating systems (MacOS, Ubuntu, Windows).
  • Remain available for on-call work, as needed, to ensure environment stability for critical infrastructure
  • Actively participate in agile scrum meetings to ensure project progress and smooth execution


Qualifications

SKILLS/KNOWLEDGE

  • A passion for collaboration and helping engineering teams deliver solutions faster and more reliably.
  • An ability to understand complex system configurations and drive simplification to increase supportability.
  • Experience deploying and managing APIs, GraphQL, Data Processing services, SOA and event based streaming architectures with sources like Kafka.
  • Must have experience in at least one programming or scripting language (PowerShell, Bash, C#, Java, JavaScript etc.)
  • Demonstrated experience of git-based source control tools such as Gitlab or GitHub.
  • Proficiency with agile software development best practices, unit testing, continuous integration, and a passion for automating manual work.
  • Strong problem-solving skills with the ability to learn and come up to speed quickly on new technologies, self-motivated attitude.
  • Excellent verbal and written communication skills as well as a commitment to engage and collaborate with people across a variety of levels with diverse backgrounds.
  • Exceptional skills with scripting languages such as python, bash, Terraform, and infrastructure as code methodologies.

EDUCATION and/or EXPERIENCE 

  • Bachelor's degree in Computer Science or similar technical discipline or equivalent experience.
  • 5+ years of experience with AWS or Azure, Service oriented, and event-based architectures.
  • 5+ years of experience in deploying software and infrastructure as code (Terraform, Ansible, Puppet, Chef)
  • 5+ years of experience with Docker containerization, Kubernetes (K8s) preferred

 

SUPERVISORY RESPONSIBILITIES 

May be responsible for supervision of support resources, coordinating testing scenarios, and tasked with managing cross-functional relationships in assigned areas.  Assists with issue resolution and troubleshooting on a daily basis.