Engineer II, Nomad (Go, Distributed Systems)

Full Time
4 months ago

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. Our customers run Nomad on tens of thousands of nodes, and rely on our tools to operate their own infrastructure and software. The Nomad Engineering team cares deeply about reliability, performance, and the usability for our users.

Some of the future challenges for our team include:

  • Building an extensible orchestration platform for a variety of 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 available to the community or are open sourced. Nomad and its supporting libraries are written in Go.

In this role you can expect to…

  • Work on next-generation distributed systems for orchestration
  • Contribute to developing novel algorithms within the context of our tools
  • Contribute to systems for managing extremely large-scale global fleets of resources
  • Opportunity to interface with internal teams, users and HashiCorp customers, as well as the Nomad community
  • Contribute to the full lifecycle of feature development from design through testing and release
  • Program in Go, 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…

  • You have a basic understanding of cluster orchestrators and schedulers (Borg, Kubernetes, Mesos etc).
  • You have exposure to highly reliable infrastructure
  • You have  a basic understanding of container technologies: Linux, CGroups, Docker, Podman, etc.
  • You are comfortable with low-level programming, or are excited to learn.
  • You have understanding of high performance or distributed systems
  • You exhibit a drive to complete work, willingness to learn new things, and can communicate effectively
  • Experience programming in Go is a plus, though not required

#LI-Remote

Individual pay within the range will be determined based on job related-factors such as skills, experience, and education or training.

The base pay range for this role in the SF Bay Area / NYC area is:$151,300—$178,000 USDThe base pay range for this role in Seattle Metro, Denver / Boulder Metro, New York (excluding NYC), Washington D.C., or California (excluding SF Bay Area) is:$138,600—$163,100 USDThe base pay range for this role in Colorado (excluding Denver / Boulder Metro) and Washington (excluding Seattle Metro) is:$126,100—$148,300 USD