Overview

Elastic is the world’s leading software provider for making structured and unstructured data usable in real time for search, logging, security, and analytics use cases. Founded in 2012 by the people behind the Elasticsearch, Kibana, Beats, and Logstash open source projects, Elastic’s global community has more than 80,000 members across 45 countries, and since its initial release. Elastic’s products have achieved more than 100 million cumulative downloads. Today thousands of organizations, including Cisco, eBay, Dell, Goldman Sachs, Groupon, HP, Microsoft, Netflix, The New York Times, Uber, Verizon, Yelp, and Wikipedia, use the Elastic Stack, X-Pack, and Elastic Cloud to power mission-critical systems that drive new revenue opportunities and massive cost savings. Elastic is backed by more than $104 million in funding from Benchmark Capital, Index Ventures, and NEA; has headquarters in Amsterdam, the Netherlands, and Mountain View, California; and has over 400 employees in more than 30 countries around the world.

Do you want to work on distributed search and analytics software which impacts the lives of millions of people? We are looking for outstanding back-end Java engineers who love solving problems. We’re not interested in your previous job title. Instead, we are looking for bright people with a good knowledge of Java and a desire 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 anyone needs to be in the position to comment on absolutely anything, regardless of their role within the company.

Right now, we are looking for a talented Java Engineer to join our Elasticsearch team. This role can be based (pretty much) anywhere in the world.

Could you answer most of these questions?

  • When would you make a variable volatile?
  • How do you decide whether to use a HashMap or a TreeMap?
  • How do you decide whether to use a CopyOnWriteArrayList or a Collections.synchronizedList(ArrayList)?
  • When would you use merge sort over quicksort?
  • When might recursion cause stack overflow?
  • Is Math.abs(Random.nextInt()) always positive?
  • What are the pros/cons of async vs. blocking I/O?
  • What unit tests would you write for Arrays.binarySearch?

These are the kinds of problems you will work on:

  • Design and implement new horizontally-scalable features and APIs in Elasticsearch and X-Pack.
  • Integrate new features from Lucene
  • Improve existing APIs to make them address more use-cases while keeping their surface area contained.
  • Look into all kind of issues, including performance or concurrency issues, and propose solutions.
  • Supporting our support engineers with the harder problems.

Experience in these areas is a plus:

  • Distributed systems, networking
  • Search, analytics, Lucene
  • Security, LDAP, SAML, Kerberos
  • Systems integration, JVM debugging

Additional Information

  • Competitive pay and benefits
  • Stock options
  • Catered lunches, snacks, and beverages in most offices
  • An environment in which you can balance great work with a great life
  • Passionate people building great products
  • Employees with a wide variety of interests
  • 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.
  • Distributed-first company with employees in over 35 countries, spread across 18 time zones, and speaking over 30 languages! Some even fly south for the winter 🙂