With today's cloud-centric architectures, we need engineers who can bridge develpment and operations, automating the infrastructure for development and deployment. We use tools like Vagrant and Packer to build development environments and production AMIs. We use Ansible and Terraform to automate setup of test and production environments. We deploy to Amazon Web Services, Google Cloud Platform, Microsoft Azure and fleets of dedicated bare-metal servers.
You will work with customers and developers to determine application requirements and design an architecture to support it. You will create scripts to build development and production machines based on our common templates, e.g. a Virtual Private Cloud with NAT and Bastion host, Ruby on Rails application running in an autoscaling group, and a highly available Postgres db cluster.
You will integrate the application into our continuous deployment pipeline, including continuous integration testing and automated deployment.
You will set up monitoring for system and application metrics and make sure that the systems are working properly. If something goes wrong, you will be the first to respond, then you will work with the developers to analyze the causes behind the problems and implement any necessary system and process improvements. You will join our on-call rotation to provide 24-7 systems support.
You will document and maintain systems architectures, standard templates and operational processes.
You will ideally have experience with:
- Linux systems deployment and administration
- Database configuration and administration
- Network configuration and administration
- System capacity planning and performance monitoring
- Standard network services such as web, email, DNS
- Automation and configuration management tools such as shell, scripting languages and Ansible
- Cloud platform configuration and operations
- Programming in scripting languages, with an understanding of operating systems concepts
- Systems and network security, firewalls, DDOS mitigation
- Open source projects and tools, and how to work with open source communities
- Compliance and quality systems for health care and financial applications
Our preferred technology stack is currently:
- Ansible and Terraform
- Amazon Web Services, with some GCP and Azure
- Dedicated servers
- Docker and Vagrant dev environments
- CentOS and Ubuntu Linux, occasional Windows
- Nginx, Varnish, Postgres, MySQL, Redis, Elasticsearch
- Elixir, Ruby on Rails, Python and PHP
- Occasional Java and .NET
Depending on your background, you may come more from the development side or the operations side. Either is ok, but you should be comfortable writing code to deploy, monitor and debug complex software systems.