Senior Software Engineer, Nomad Go
Canada - Toronto (Remote)
At HashiCorp, we have used the Tao of HashiCorp as our guiding principles for product development and operate according to a strong set of company principles for how we interact with each other. We value top-notch collaboration and communication skills, both among internal teams and in how we interact with our users.
Engineering at HashiCorp is a remote team, and has been since the early days of the company. While prior experience working remotely isn't required for this role, we are looking for team members who perform well given a high level of independence and autonomy.
About the Role
Our team builds and maintains Nomad, a performant, distributed cluster orchestrator that supports heterogeneous workloads including containerized applications, VMs, batch processing, and machine learning frameworks. PagerDuty, Cloudflare, Roblox, Pandora, and many other large organizations run Nomad in production today.
Our customers run Nomad on tens of thousands of nodes, and rely on our tools to operate their own infrastructure and software. Our team cares deeply about reliability and performance.
Alongside Nomad’s self-managed product, we’re creating a new Nomad experience for practitioners through our flagship HashiCorp Cloud Platform (HCP), a self-service, fully managed platform offering HashiCorp products as a service to automate infrastructure on any cloud.
Some of the challenges for our team include:
- Building an extensible plugin architecture to support and grow an ecosystem of plugins for shared concerns like runtime drivers, devices, and logging.
- Shipping and supporting new Nomad API features for cluster operators, developers, and product integration.
- Service segmentation and enabling shared network namespaces among tasks.
- Deployments across a large fleet of nodes spanning multiple regions, hosting providers, and machine types
- Debugging and inspection capabilities for tasks.
- Monitoring and predicting resource utilization.
Much of our work and libraries are open source. Nomad and its supporting libraries are written in Go. Our API is used by a broad ecosystem of clients including our own CLI and web interfaces, other HashiCorp products, and community and enterprise tools built on Nomad.
In this role, you can expect to:
- Be part of Nomad’s newest team and build out a cloud-based software-as-a-service offering
- Guide the technical approach and architecture of Nomad
- Program mostly in Go, learning from and contributing to a team committed to continually improving their skills.
- Work closely with HashiCorp’s Cloud Platform and SRE teams to build efficient systems and processes by automation
- Contribute to Nomad’s open-core product and community
- Interface directly with internal teams, users and HashiCorp customers, as well as the larger Nomad community.
- Own the full lifecycle of feature development from design through testing, release and support.
- Work with various cloud partners (AWS, GCP, Azure…)
- Participate in periodic on-call rotations
You may be a good fit for our team if:
- 4+ years of experience in a lower-level language like Go.
- 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 design with efficiency, empathy, and instrumentation in mind (performance tuning, monitoring, capacity planning, root cause analysis)
- You’ve worked with open source and/or “open core” products, including locally-hosted and managed products
- You’ve been a developer-owner of a production service in a public cloud environment
- You have awareness of the broader orchestration ecosystem and the Platform-as-a-Service space
- You are curious about academic computer science research, particularly distributed systems papers such as Raft and Paxos variants, and enjoy learning more about the challenges of consistency at global scale.
- You enjoy working with operations, security, and application teams both internal and external to HashiCorp
- You’re comfortable navigating ambiguity and embracing change
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 and Collaboration interview
- Systems and 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:
As a remote team, collaboration and 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, and on the Nomad team in particular. Specifics of your past experience that are relevant to this role are great to include too.
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. Not sure you meet 100% of our qualifications? Please apply anyway!