HashiCorp is a fast-growing startup that solves development, operations, & 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 & small to mix & match AWS, Microsoft Azure, Google Cloud, & other clouds as well as on-premises environments, easing their ability to deliver new applications for their business.
At HashiCorp, we have used the Tao of HashiCorp as our guiding principles for product development & operate according to a strong set of company principles for how we interact with each other. We value top-notch collaboration & communication skills, both among internal teams & in how we interact with our users.
Engineering at HashiCorp is largely a remote team. While prior experience working remotely isn't required, we are looking for team members who perform well given a high level of independence & autonomy.
About the Role
Our team builds & maintains Nomad, a performant, distributed cluster orchestrator that supports heterogeneous workloads including containerized applications, VMs, batch processing, & machine learning frameworks. Jet.com, CircleCI, PagerDuty, SeatGeek, & many other large organizations run Nomad in production today.
Our customers run Nomad on tens of thousands of nodes, & rely on our tools to operate their own infrastructure & software. Our team cares deeply about reliability & performance.
Some of the future challenges for our team include:
- Building an extensible plugin architecture to support & grow an ecosystem of plugins for shared concerns like runtime drivers, devices & logging.
- Advanced scheduling use cases such as managing dependencies between tasks, oversubscription & rebalancing.
- Service segmentation & enabling shared network namespaces among tasks.
- Deployments across a large fleet of nodes spanning multiple regions.
- Debugging & inspection capabilities for tasks.
- Monitoring & predicting resource utilization.
Much of our work & libraries are open source. Nomad & its supporting libraries are written in Go.
In this role, you can expect to:
- Work on next-generation distributed systems for orchestration
- Develop novel algorithms within the context of our open source tools
- Build & architect systems for managing extremely large-scale global fleets of resources
- Interface directly with internal teams, users & HashiCorp customers, as well as the Nomad community
- Own the full lifecycle of feature development from design through testing & release
- Program in Golang, learning from & contributing to a team committed to continually improving their skills
You may be a good fit for our team if:
- You have a basic understanding of cluster orchestrators & schedulers (Borg, Kubernetes, Mesos etc).
- You have strong experience (4+ years) in a lower-level language like Go
- You enjoy designing systems for managing highly reliable infrastructure
- You have experience with container technologies: CGroups, Docker, Rocket, etc.
- You are comfortable with low-level programming, or are excited to learn.
- You have prior experience working in high performance or distributed systems; while we strive to hire at a variety of experience levels, this particular opening is not well-suited for recent graduates
- You are able to knowledgeably discuss design & performance tradeoffs in complex systems
- You exhibit ownership in your work, including research & understanding of the problem space, collaborating with the team to come up with solutions, proactively communicating your progress to the team, & shipping the feature over the finish line.
In your cover letter, please describe why you're interested in working at HashiCorp, & on the Nomad team in particular. Specifics of your past experience that are relevant to this role are great to include too.
What is our hiring process like?
The below serves as a basic outline; we may choose to add or remove steps based on the information that we gather during the process.
- Introductory Call with someone from our recruiting team.
- First Interview with an Engineering Manager
- Interview Loop with additional team members, with the following panel:
- Technical Code Pairing interview
- Code Review interview
- Communication & Collaboration interview
- Systems & architecture interview
- If applicable, a final conversation with the Engineering Manager for the team you would be joining
We do our best to accommodate your programming language of choice for technical interviews.
About the Application Process:
Please note, as collaboration & communication are a critical aspect of how we work, a cover letter is a great way to provide a sample of how you communicate.
In your cover letter, please describe why you're interested in working at HashiCorp, & what draws you to this role in particular. Specifics of your past experience that are relevant to this role are great to include, too.
HashiCorp embraces diversity & equal opportunity. We are committed to building a team that represents a variety of backgrounds, perspectives, & skills. We believe the more inclusive we are, the better our company will be. Not sure you meet 100% of our qualifications? Please apply anyway!