# Principal Software Engineer I - Distributed Systems - Elasticsearch

**Company**: Elastic
**Location**: Spain
**Work arrangement**: remote
**Experience**: senior
**Job type**: full-time
**Salary**: €80,400-€127,200 EUR
**Category**: Engineering
**Industry**: Technology

**Apply**: https://job-boards.greenhouse.io/elastic/jobs/8002562?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply
**Canonical**: https://yubhub.co/jobs/job_11f6c79a-a32

## Description

We are on the lookout for a Principal Software Engineer I to join our Elasticsearch - Distributed Systems team. This team focuses on how Elasticsearch provides scale, performance, and resilience. The successful candidate will improve Elasticsearch's components that support concurrent and consistent indexing across multiple machines. They will maintain 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. The candidate will also push the limits on the number of shards, nodes, and petabytes that Elasticsearch can handle today.

Key Responsibilities:

- 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, while maintaining the safety and liveness properties of the system as a whole.

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

- Look into all kinds of issues, including performance or concurrency issues, and propose solutions.

- Support our support engineers with the harder problems.

Requirements:

- A strong background in distributed systems and consensus algorithms.

- Strong skills in core Java and are conversant in the standard library of data structures and concurrency constructs, as well as newer language features.

- A deep technical proficiency in algorithms.

- Experience managing projects involving multiple engineers.

- Ability to own projects from beginning to end.

- Strong knowledge of data stores, search, analytics, Lucene, and asynchronous event-driven network frameworks such as Netty.

Bonus Points:

- Experience with JDK.

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

Compensation:

- The typical starting salary range for this role is €80,400-€127,200 EUR.

- Compensation for this role is in the form of base salary. This role does not have a variable compensation component.

Benefits:

- Competitive pay based on the work you do here and not your previous salary.

- Health coverage for you and your family in many locations.

- Ability to craft your calendar with flexible locations and schedules for many roles.

- Generous number of vacation days each year.

- Increase your impact - We match up to €2000 (or local currency equivalent) for financial donations and service.

- Up to 40 hours each year to use toward volunteer projects you love.

- Embracing parenthood with minimum of 16 weeks of parental leave.

## Skills

### Required
- distributed systems
- consensus algorithms
- core Java
- data structures
- concurrency constructs
- newer language features
- algorithms
- JDK
- asynchronous event-driven network frameworks
- Netty

---

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