Principal Java Developer - Distributed Systems, Serverless - Elasticsearch
Elastic- Compensation
- $128k–$203k Published range
- Location
- Hybrid - Canada, flexible location and schedule Remote eligibility
- Employment
- Full-time Staff / Principal
About the job
About Elastic
Elastic, the Search AI Company, enables everyone to find the answers they need in real time, using all their data, at scale. The Elastic Search AI Platform, used by more than 50% of the Fortune 500, brings together the precision of search and the intelligence of AI. Elastic’s complete, cloud-based solutions for search, security, and observability help organizations deliver on the promise of AI.
Role Overview
We are looking 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. You will tackle deep distributed systems challenges in how nodes in an Elasticsearch cluster communicate, and how data are indexed, allocated, and managed across nodes.
Responsibilities
- Design, build, and operate core pieces of our next-generation Serverless Elasticsearch offering.
- Improve Elasticsearch’s components that support concurrent and consistent indexing across multiple machines.
- Maintain our cluster coordination system to keep performance high while maintaining safety and liveness properties.
- Push the limits on the number of shards, nodes, and petabytes that Elasticsearch can handle.
- Investigate performance or concurrency issues and propose solutions.
- Support our support engineers with the harder problems and own operational investigations end-to-end.
Qualifications
- Deep background in distributed systems and consensus algorithms.
- Strong skills in core Java, conversant in 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 using off-the-shelf services.
- Experience building and debugging complex features with broad impact, running on multiple machines.
- Ability to own projects from beginning to end, including technical design and collaboration.
- 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 transition between projects.
- Work autonomously in a distributed team with asynchronous, direct, and transparent communication.
Bonus Points
- Data stores
- Search, analytics, Lucene
- Strong knowledge of the JDK
- Asynchronous event-driven network frameworks such as Netty
Compensation & Benefits
The typical starting salary range for this role is $128,300—$203,000 CAD. This role is eligible for Elastic's stock program. The total rewards package includes a company-matched Registered Retirement Savings Plan (RRSP) with dollar-for-dollar matching up to 6% of eligible earnings, along with a range of other benefits. Additional benefits include health coverage, flexible locations and schedules for many roles, generous vacation days, up to $2000 match for financial donations and service, up to 40 hours for volunteer projects, and a minimum of 16 weeks of parental leave.
Application Instructions
To request an accommodation during the application or recruiting process, email candidate_accessibility@elastic.co.
Skills & tags
Compare the essentials before you leave: pay, remote scope, employment type, source, and the employer apply destination.