Senior Software Engineer, Terraform Enterprise
United States (Remote)
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.
- 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.
About the Application Process
All work requires excellent written communication skills, remote work doubly so. For this reason, we require a cover letter for your application to be considered complete.
In your cover letter, please describe what draws you to working at HashiCorp and to this role in particular. Specifics of your past experience are great to include, too.
At HashiCorp, we are committed to hiring and cultivating a diverse team. If you are on the fence about whether you meet our requirements, please apply anyway!
We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.