Description
We are seeking a Principal Software Developer II to join our Elasticsearch - Distributed Systems team. As a member of this team, you will focus on how Elasticsearch provides scale, performance, and resilience. This involves improving Elasticsearch's components that support concurrent and consistent indexing across multiple machines, maintaining our cluster coordination system, and pushing the limits on the number of shards, nodes, and petabytes that Elasticsearch can handle today.
You will be responsible for looking into all kinds of issues, including performance or concurrency issues, and proposing solutions. You will also support our support engineers with harder problems.
To be successful in this role, you will need a strong background in distributed systems and consensus algorithms. You should have strong skills in core Java and be conversant in the standard library of data structures and concurrency constructs, as well as newer language features. You should also have a deep technical proficiency in algorithms and be able to understand and work on complex, highly distributed systems.
In addition to your technical skills, you should be able to own projects from beginning to end, covering both technical design and working with others to develop needed components. You should also have experience leading projects spanning multiple teams and communicating with a variety of stakeholders.
Bonus points will be given for data stores, search, analytics, Lucene, strong knowledge of the JDK, and asynchronous event-driven network frameworks such as Netty.
This role is eligible to participate in Elastic's stock program and has a competitive salary range of $192,500-$304,500 CAD.