AMERICAS and EMEA
Do you want to work on distributed search and analytics software that impacts the lives of millions of people? We’re not interested in your previous job title. Instead, we are looking for bright people with a deep knowledge of Java who love to tackle new challenges.
Right now, we are on the lookout for a Principal Java Engineer to join our Elasticsearch – Distributed Systems team and focus on the networking layer of how we allocate our data and how it moves. This team deals with concurrency, global state, and replication features and components of Elasticsearch. You can be based (pretty much) anywhere in the world.
What you will be doing
- Elasticsearch’s internal systems that support concurrent and consistent indexing across multiple machines.
- Cluster coordination and how it responds to nodes leaving and joining the cluster.
- Shard allocation, recovery and migration.
- Backup solutions (a.k.a Snapshot and Restore).
- Cross cluster replication of data to support disaster recovery and geo-replication.
- Look into all kind of issues, including performance or concurrency issues, and propose solutions.
- Supporting our support engineers with the harder problems.
What you will bring along
- You have strong skills in core Java and are conversant in the standard library of data structures and concurrency constructs, as well as newer features like lambdas.
- You have a deep technical proficiency in algorithms
- You have proven your ability to understand and work on complex, highly distributed systems.
- You are able to take on projects and guide them from beginning to end. This covers both technical design and working with other engineers to develop needed components.
- You demonstrate the ability to build and debug features that involve multiple subsystems and run on multiple machines.
Bonus points for knowledge of:
- Data stores
- Search, analytics, Lucene
- Strong knowledge of the JDK
- Asynchronous event-driven network frameworks such as Netty
To apply for this job please visit jobs.elastic.co.