Skip to main content

Principal Java Developer - Distributed Systems, Serverless - Elasticsearch

Elastic
Hybrid - Canada, flexible location and scheduleUpdated 11d ago
Compensation
$128k–$203k
Published range
Location
Hybrid - Canada, flexible location and schedule
Remote eligibility
Employment
Full-time
Staff / Principal
Role family
Engineering
Developer tools
Apply on jobs.elastic.co
Job actionsApply now
Job actionsApply now

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

What you can verify before applying

Compare the essentials before you leave: pay, remote scope, employment type, source, and the employer apply destination.