Senior Software Engineer - Terraform Enterprise
HashiCorp is a fast-growing startup that solves development, operations, and security challenges in infrastructure so organizations can focus on business-critical tasks. We build products to give organizations a consistent way to manage their move to cloud-based IT infrastructures for running their applications. Our products enable companies large and small to mix and match AWS, Microsoft Azure, Google Cloud, and other clouds as well as on-premises environments, easing their ability to deliver new applications for their business.
At HashiCorp, we operate according to a strong set of company principles, many of which are described in The Tao of HashiCorp. We value top-notch collaboration and communication skills, both among internal teams and in how we interact with our users. We take care to balance and be responsive to the needs of our open source community as well as our enterprise level customers.
Engineering at HashiCorp is largely a remote team, and this role is no exception. We are looking for a Full-time Remote Employee within the US, UK, Canada, or the Netherlands. While prior experience working remotely isn't required, we are looking for team members who perform well given a high level of independence and autonomy.
We build Consul, Nomad, Vault, Terraform, Packer, and Vagrant. Alongside that, we deploy enterprise products for each in a variety of different ways: licensed and unlicensed binaries, appliances to public cloud platforms, and hosted SaaS platforms. Our products help organizations of all sizes run any infrastructure for any application.
Packaging and delivering Terraform Enterprise is a unique challenge, as it is deployed as a multi-tenant SaaS in Terraform Cloud as well as a self-hosted deployment in Terraform Enterprise. The Terraform Enterprise team is the team dedicated to taking the software running in our SaaS offering and delivering it into our Enterprise customer’s infrastructure. Focusing on providing a beautiful customer experience around installing, administering and maintaining Terraform Enterprise.
The team is small, you'll be able to have a large impact on the project's architecture and direction. There are a host of interesting problems to tackle, stemming from the fact that this team needs to handle scale in three distinct dimensions:
- A growing number of customer installations means we need features and automation to help sales and support teams give every one of our customers a wonderful experience with Terraform Enterprise.
- We expect each installation to scale placing scaling challenges on the application and the infrastructure that we will need to address.
- Each new customer environment we support introduces the potential of additional complexity - we'll need novel solutions across our entire pipeline to be able to regularly deliver releases across platforms with confidence.
In this role, you can expect to:
- Switch fluidly between Infrastructure Engineering and Software Engineering tasks. For example: The results of your debugging investigation into a boot ordering issue one morning pushes us to decide to rewrite a Bash bootstrapping script in Go, a task you pick up that afternoon.
- Help discover, design, and build the software that helps us support Terraform Enterprise customers (e.g. telemetry and diagnostics tooling designed for airgapped environments).
- Working alongside our SRE team, help own operations, reliability, availability, and security of SaaS and private installations.
- Work with internal and external stakeholders to determine and prioritize new features and enhancements.
- Advocate and support improvements to Terraform Core and the Terraform plugin SDK.
- Design, build, iterate on, and ship the Terraform modules, machine images, system configuration, and software that hosts Terraform Enterprise in customer environments.
- Work on the full stack of the system. For example: While working on a customer-reported issue, you discover that we need to handle an unforeseen error condition in one of our Go services. You author the fix, get it reviewed and deployed to the SaaS, and pull it in for the next Enterprise release.
You may be a good fit for our team if...
- You care deeply about product experiences.
- You have a strong Software Engineering or DevOps background with a minimum of 5 years experience.
- You have used Terraform & enjoy working with Go (or experience with Ruby/Rails).
- Experience writing developer tools for containerization/schedulers is a plus.
- While this is not an SRE role and will not be managing servers day to day, you are familiar with infrastructure management concepts and tools (infrastructure as code, software defined networking, virtualization, and the tools used to operate and maintain related systems).
- You have experience operating and maintaining production systems in a Linux and public cloud environment and/or VMWare.
- You relish in systems design problems that require you to pattern-match across multiple dimensions of complexity.
- You get energy out of the prospect of diving into work that requires you to learn new things.
- You understand that success in modern engineering requires navigating the tension between the overall technical ideal and the pragmatic next step. You are ready to help your team trend towards ideal solutions in the long term while also delivering concrete solutions to real problems in the near term.
- Familiarity with the Replicated native scheduler is a plus.
HashiCorp embraces diversity and equal opportunity. We are committed to building a team that represents a variety of backgrounds, perspectives, and skills. We believe the more inclusive we are, the better our company will be.