Senior Java Engineer - Distributed Systems - Elasticsearch

Elastic Elastic · Enterprise · Remote · 0000: Pipeline

This role is for a Senior Software Engineer focused on the distributed systems aspects of Elasticsearch, specifically concerning node communication, data indexing, allocation, and replication. The engineer will work on improving concurrent and consistent indexing, maintaining cluster coordination, and pushing the limits of Elasticsearch's scalability.

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
  • core Java
  • standard library data structures
  • concurrency constructs
  • complex, highly distributed systems
  • build and debug features with broad impact

Nice to have

  • Data stores
  • Search, analytics, Lucene
  • Strong knowledge of the JDK
  • Asynchronous event-driven network frameworks such as Netty