Senior Java Engineer - Security

Elastic · Sep 3rd 2017

Apply on StackOverflow Careers

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 real time 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. The Elastic family unites employees across 30+ countries 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 are looking for extraordinary Java engineers with security experience 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 to add a talented Java Engineer to join our Elasticsearch team and focussing on Security.

These are the kinds of problems you will work on

  • Design and implement internal security mechanisms to secure individual Elasticsearch clusters as well as provide security for cross cluster operations

  • Implement access control for Elasticsearch APIs, documents, and fields within documents

  • Ownership and sharing of objects with differing permissions in Elasticsearch

  • 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.

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 mergesort over quicksort?

  • When might recursion cause stack overflows?

  • 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?

Experience in these areas is a plus:

  • Distributed systems, networking

  • Search, analytics, Lucene

  • Systems integration, JVM debugging

Apply on StackOverflow Careers