Elastic, the Search AI Company, enables everyone to find the answers they need in real time using all their data at scale. They are seeking a Senior Software Engineer to join the Elasticsearch - Analytical Engine team, responsible for building new analytics capabilities and enhancing existing features within Elasticsearch’s aggregation framework.
Responsibilities:
- You'll be a full-time Elasticsearch contributor, building data-intensive new features and fixing intriguing bugs, all while making the code easier to understand
- You are able to research what available data structures and algorithms work best to implement a new functionality or enhancement
- Sometimes you’ll need to implement a data structure or algorithm in the code base
- And there will be times when you'll need to get close to the operating system and hardware
- You’ll work with a globally distributed team of experienced engineers focused on the search and query (ES|QL) analytics capabilities of Elasticsearch
- You’ll get to work with the teams that build the UI to ensure a good user experience, and you’ll get to work with the teams building solutions on top of these APIs
- You'll be an expert in several areas of Elasticsearch, and everyone will turn to you when they have a question about them
- You'll improve those areas based on your questions and your instincts
- You'll work with community members from all over the world on issues and pull requests, sometimes triaging them and handing them off to other experts, and sometimes handling them yourself
- You'll write idiomatic modern Java -- Elasticsearch is 99.8% Java!
Requirements:
- 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 experience with software systems engineering
- You have a strong desire to optimize and make use of the most efficient data structures and algorithms
- You work with a high level of autonomy, and 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're comfortable developing collaboratively. Giving and receiving feedback on code, approaches, and APIs is hard! Bonus points if you've collaborated over the internet because that's harder. Double bonus points for asynchronous collaboration over the internet. That's even harder, but we do it anyway because it's the best way we know how to build software
- You've used several data storage technologies like Elasticsearch, Solr, PostgreSQL, MongoDB, or Cassandra and have some idea how they work and why they work that way
- You have excellent verbal and written communication skills. Like we said, collaborating on the internet is hard. We try to be respectful, empathetic, and trusting in all of our interactions. And we'd expect that from you too
- You've built things with Elasticsearch before
- You've worked in the search and information retrieval space
- You're familiar with the data structures and algorithms associated with information retrieval
- You've worked on data storage technology or have experience building data analytics capabilities
- You have experience designing, leading and owning cross-functional initiatives
- You've worked with open source projects and are familiar with different styles of source control workflow and continuous integration