Software Engineer, Distributed Systems - Nomad
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. Jet.com, CircleCI, PagerDuty, SeatGeek, 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.
Some of the future 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.
- Advanced scheduling use cases such as managing dependencies between tasks, oversubscription and rebalancing.
- Service segmentation and enabling shared network namespaces among tasks.
- Deployments across a large fleet of nodes spanning multiple regions.
- 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 Golang.
At 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 customers.
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 and autonomy.
In your cover letter, please describe why you're interested in working at HashiCorp, and what draws you to this role in particular. Specifics of your past experience that are relevant to this role are great to include, too.
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 and architect systems for managing extremely large-scale global fleets of resources
- Interface directly with internal teams, users and HashiCorp customers, as well as the Nomad community
- Own the full lifecycle of feature development from design through testing and release
- Program in Golang, learning from and 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 and schedulers (Borg, Kubernetes, Mesos etc).
- You enjoy designing systems for managing highly reliable infrastructure
- You have experience with container technologies: CGroups, Docker, Rocket, etc.
- You’re 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’re able to knowledgeably discuss design and performance tradeoffs in complex systems
- You exhibit ownership in your work, including research and understanding of the problem space, collaborating with the team to come up with solutions, proactively communicating your progress to the team, and shipping the feature over the finish line.
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!
Apply for this Job
Did we miss something?
Do you believe you'd be a great fit for this role, but the description above doesn't quite match your skills or experience? We'd still like to hear from you.
Subscribe to our monthly newsletter to get the latest news and product updates.