Senior Java Developer - Distributed Systems - Elasticsearch

Elastic Elastic · Enterprise · Remote · 0000: Pipeline

Senior Java Developer for Elasticsearch Distributed Systems team, focusing on cluster communication, data indexing, allocation, and replication. The role involves improving concurrency, maintaining cluster coordination, scaling to petabytes, and resolving complex distributed systems issues.

What you'd actually do

  1. Improving Elasticsearch’s components that support concurrent and consistent indexing across multiple machines.
  2. Maintaining our cluster coordination system to keep performance high even though nodes come and go from the cluster and data moves around, while maintaining the safety and liveness properties of the system as a whole.
  3. Pushing the limits on the number of shards, nodes, and petabytes that Elasticsearch can handle today
  4. Looking into all kinds of issues, including performance or concurrency issues, and proposing solutions.
  5. Supporting our support engineers with the harder problems.

Skills

Required

  • distributed systems
  • consensus algorithms
  • Java
  • data structures
  • concurrency constructs
  • algorithms
  • complex distributed systems
  • debugging distributed systems

Nice to have

  • Data stores
  • Search
  • analytics
  • Lucene
  • JDK
  • Asynchronous event-driven network frameworks
  • Netty

What the JD emphasized

  • strong background in distributed systems and consensus algorithms
  • strong skills in core Java
  • deep technical proficiency in algorithms
  • understand and work on complex, highly distributed systems
  • build and debug features with a broad impact, running on multiple machines
  • own projects from beginning to end