# Principal Java Engineer - Distributed Systems, Serverless - Elasticsearch

**Company**: Elastic
**Location**: United Kingdom
**Experience**: senior
**Job type**: full-time
**Category**: Engineering
**Industry**: Technology

**Apply**: https://job-boards.greenhouse.io/elastic/jobs/8352581?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply
**Canonical**: https://yubhub.co/jobs/job_30507781-7c6

## Description

Elastic, the Search AI Company, enables everyone to find the answers they need in real time, using all their data, at scale , unleashing the potential of businesses and people.

We are on the lookout for a Principal Software Engineer to join our Elasticsearch - Distributed Systems team and focus on how Elasticsearch provides scale, performance, and resilience, especially in the context of our Serverless offering.

## Responsibilities

- Design, build, and operate core pieces of our next-generation Serverless Elasticsearch offering, directly impacting the experience of customers worldwide.

- Improve Elasticsearch’s components that support concurrent and consistent indexing across multiple machines.

- Maintain our cluster coordination system to keep performance high even though nodes come and go from the cluster and data moves around.

- Push the limits on the number of shards, nodes, and petabytes that Elasticsearch can handle today.

- Investigate and propose solutions for various issues, including performance or concurrency issues.

- Support our support engineers with complex problems.

- Own operational investigations end-to-end until performance or stability issues are successfully resolved.

## Requirements

- Deep background in distributed systems and consensus algorithms.

- Strong skills in core Java and familiarity with the standard library of data structures and concurrency constructs.

- Deep technical proficiency in algorithms.

- Experience building large-scale distributed systems.

- Experience building and debugging complex features with a broad impact.

- Ability to own projects from beginning to end.

- Experience managing projects involving multiple engineers.

- Proven track record of using AI to accelerate development and optimize code.

- Ability to collaborate across functions and teams.

- Ability to work autonomously and drive decisions and results in a distributed team.

## Nice to Have

- Knowledge of data stores.

- Familiarity with search, analytics, and Lucene.

- Strong knowledge of the JDK.

- Experience with asynchronous event-driven network frameworks such as Netty.

## Benefits

- Competitive pay.

- Health coverage for you and your family.

- Flexible locations and schedules.

- Generous number of vacation days.

- Matching up to $2000 for financial donations and service.

- Up to 40 hours each year for volunteer projects.

- Minimum of 16 weeks of parental leave.

## Skills

### Required
- Java
- distributed systems
- consensus algorithms
- algorithms
- large-scale distributed systems

### Nice to have
- data stores
- search
- analytics
- Lucene
- JDK
- Netty

---

Source: [Apply at job-boards.greenhouse.io](https://job-boards.greenhouse.io/elastic/jobs/8352581?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply)
