Elasticsearch - Senior Java Engineer - Distributed Systems

Elastic

Distributed

At Elastic, we have a simple goal: to solve the world's data problems with products that delight and inspire. As the company behind the popular open source projects — Elasticsearch, Kibana, Logstash, and Beats — we help people around the world do great things with their data. From stock quotes to Twitter streams, Apache logs to WordPress blogs, our products are extending what's possible with data, delivering on the promise that good things come from connecting the dots. We unite Elasticians across 30+ countries (and counting!), 18 timezones and 30 different languages into one coherent team, while the broader community spans across over 100 countries.

Do you want to work on distributed search and analytics software which impacts the lives of millions of people? We’re not interested in your previous job title. Instead, we are looking for bright people with a deep knowledge of Java and who love to take on new challenges.

Engineering Philosophy

Engineering a highly complex distributed system that is easy to operate via elegantly designed APIs is a non-trivial effort. It requires solid software development skills, and more importantly, a sharp mind and the ability to think like a user. We also care deeply about giving you full ownership of what you’re working on. Our company fundamentally believes great minds achieve greatness when they are set free and are surrounded and challenged by their peers, which is clearly visible in our organization. At Elastic, we effectively don’t have a hierarchy to speak of. We feel that you should be empowered to comment on really anything, regardless of your role within the company.

Right now, we are on the lookout for a talented Java Engineer to join our Elasticsearch team and focus on the distributed aspects of Elasticsearch. You can be based (pretty much) anywhere in the world.

What you will be doing

  • Elasticsearch’s internal systems that support concurrent and consistent indexing across multiple machines.
  • Cluster coordination and how it responds to nodes leaving and joining the cluster.
  • Shard allocation, recovery and migration.
  • Backup solutions (a.k.a Snapshot and Restore).
  • Cross cluster replication of data to support disaster recovery and geo-replication.
  • Look into all kind of issues, including performance or concurrency issues, and propose solutions.
  • Supporting our support engineers with the harder problems.

What you will bring along

  • You have strong skills in (core) Java, and are conversant in the standard library of data structures and concurrency constructs, as well as newer features like lambdas.
  • You have proven to your ability to understand and work on complex systems.
  • You are able to take on projects and guide them from beginning to end. This covers both technical design and working with other engineers to develop needed components.
  • You demonstrate the ability to build and debug features that involve multiple subsystems and run on multiple machines.

Bonus points for knowledge of:

  • Distributed systems internals
  • Data stores
  • Search, analytics, Lucene
  • Strong knowledge of the JDK
  • Asynchronous event-driven network frameworks, Netty
Additional Information:

We're looking to hire team members invested in realizing the goal of making real-time data exploration easy and available to anyone. As a distributed company, we believe that diversity drives our vibe! Whether you're looking to launch a new career or grow an existing one, Elastic is the type of company where you can balance great work with great life.

  • Competitive pay based on the work you do here and not your previous salary
  • Equity
  • Global minimum of 16 weeks of paid in full parental leave (moms & dads)
  • Generous vacation time and one week of volunteer time off
  • Your age is only a number. It doesn't matter if you're just out of college or your children are; we need you for what you can do.

Elastic is an Equal Employment employer committed to the principles of equal employment opportunity and affirmative action for all applicants and employees. Qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender perception or identity, national origin, age, marital status, protected veteran status, or disability status or any other basis protected by federal, state or local law, ordinance or regulation. Elastic also makes reasonable accommodations for disabled employees consistent with applicable law.

Apply here