Virtru

Your browser cookies must be enabled in order to apply for this job. Please contact support@jobscore.com if you need further instruction on how to do that.

DevOps Engineer

Operations | REMOTE | Full Time

Job Description

Automation, APIs, orchestration, scaling, backups… These are the problems that fuel your curiosity. You want to make beautiful software that continuously delivers and deploys other beautiful software. This is where you want to be. We are looking for leaders to build a team.

Here at Virtru you’ll help build a cutting edge of security software platform made for actual humans, whilst getting your hands on some of today’s most important tools and tech like Docker, AWS, Ansible, Terraform, Elasticsearch, and a plethora of other tools and services. Due to the team’s size, your voice will immediately have a significant impact. With a constantly growing customer base, there is no shortage of challenging and exciting scaling/optimization work to ensure that we can provide the most secure and performant service.

Get in touch if you are excited to help us grow our infrastructure into a world-class service.

Responsibilities:

  • Develop, maintain, and support a large SaaS system deployed on AWS (EC2, VPC, S3, SNS, SQS, etc).
    • You must have a wide range of experience so that you can contribute to other projects outside the build and deployment workflow in the future.
  • Participate on the 24/7 on-call rotation.
    • The on-call engineer is responsible for debugging and addressing any production issues which might arise. Currently, the on-call team consists of 5 members. Each member is responsible for covering several weekdays a month and one weekend rotation every ~5 weeks.

Requirements:

  • Minimum 3 years developing with a dynamic language (Javascript, Python, Ruby, etc.).
  • Minimum 3 years demonstrable experience designing and maintaining large VPC deployments in AWS.
  • Minimum 3 years experience using a configuration management software, such as Ansible, Salt, Puppet, or Chef.
  • All team members must have coding and development experience; basically, the Dev side of DevOps.
    • Experience working with JSON and RESTful APIs.
    • Strong understanding of software design patterns.
  • Strong understanding/experience with Unix/Linux system administration.
    • We currently run our applications on Ubuntu EC2 instances.
  • Must be a good communicator.
    • Our team holds retrospective at the end of each 2-week sprint. You should feel comfortable communicating what worked well for you in the previous sprint and also what the team needs to improve upon. You should also be able to accept constructive criticism from teammates and make adjustments accordingly.

Preferences:

  • Experience designing, managing, and deploying immutable infrastructure using Docker.
    • We are planning to move our entire application hosting infrastructure to use containers and need someone with experience to guide the team without fighting a learning curve at the same time.
  • Experience managing CI/CD systems.
  • Strong NodeJS Experience.
    • The majority of our backend services and application are written in NodeJS. At a minimum, you should be excited to learn, but it would be great if you already have experience profiling and debugging NodeJS apps.
  • Strong Ansible experience.
    • We currently use Ansible to manage the mutable portions of our infrastructure and deploy all of our services. For example, during a deploy we will use Ansible to create a new AMI to deploy our application, create a new Launch Configuration to use that AMI, and finally update an existing Auto Scaling Group to use the new Launch Configuration.
  • Experience with Terraform to manage AWS resources.
    • We currently use Terraform to manage all of the immutable infrastructure in our AWS environment. For example, VPCs, subnets, route tables, DNS records, Security Groups, Cloudfront distributions, etc.
  • Security focused.
  • Strong analytical and creative abilities.
    • We are looking for teammates who can problem solve and suggest solutions as opposed to just implementing a plan they are given.
  • Experience pair programming.
    • We have found that pair programming is a great way to create high quality software quickly. It also allows the natural dissemination of knowledge throughout the team. The on-boarding process will involve a significant amount of pair programming.
  • Comfortable working in a fast-paced, constantly evolving environment.
  • Willing to put in additional hours during the occasional crunch mode.
  • Experience with any of the other portions of our current or planned stack.
    • Elasticsearch, AWS Aurora, New Relic, Pagerduty, Bamboo, Jenkins, AWS ECS.