# Principal Java Engineer - Distributed Systems, Serverless - Elasticsearch

**Company**: Elastic
**Location**: Norway
**Experience**: senior
**Job type**: full-time
**Salary**: 949,500 kr - 1,502,000 kr NOK
**Category**: Engineering
**Industry**: Technology

**Apply**: https://job-boards.greenhouse.io/elastic/jobs/8378138?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply
**Canonical**: https://yubhub.co/job/principal-java-engineer-distributed-systems-25048cb3-a2e/

## 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, 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.

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

- Support our support engineers with the harder 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, as well as newer language features.

- Deep technical proficiency in algorithms.

- Experience building large-scale distributed systems, rather than making use of off-the-shelf services.

- Experience building and debugging complex features with a broad impact, running on multiple machines.

- Ability to own projects from beginning to end, covering both technical design and collaboration with others.

- Experience managing projects involving multiple engineers.

- Proven track record of using AI to accelerate development, debug complex systems, and optimize code.

- Ability to collaborate across functions and teams and seamlessly transition between different projects, codebases, or teams based on business priorities.

- Autonomy to drive decisions and results in a distributed team.

## Nice to Have:

- Data stores

- Search, analytics, Lucene

- Strong knowledge of the JDK

- Asynchronous event-driven network frameworks such as Netty

## Compensation:

The typical starting salary range for this role is: 949,500 kr - 1,502,000 kr NOK

## 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

- Flexible locations and schedules for many roles

- Generous number of vacation days each year

- Matching up to $2000 (or local currency equivalent) for financial donations and service

- Up to 40 hours each year to use toward volunteer projects

- Minimum of 16 weeks of parental leave

For more fresh new jobs, check out [yubhub.co](https://yubhub.co/).

## 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/8378138?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply)
