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 improve storage efficiency for metrics, logs, and other types of data, and to advance their ES|QL solution for querying such data.
Responsibilities:
- You’ll work with a globally distributed team of experienced engineers focused on data storage mechanisms and query capabilities of Elasticsearch
- You'll be an expert in the storage engine area, and everyone will turn to you when they have a question about it. You'll improve those areas based on your questions and your instincts
- You'll be a full-time Elasticsearch contributor, building data-intensive new features, fixing intriguing bugs, and increasing the testing coverage, all while making the code easier to understand
- You will design and implement advanced algorithms and data structures, often working at the system and hardware level. You’ll also engage with our global community for triaging and resolving issues and pull requests
- You'll write idiomatic modern Java -- Elasticsearch is 99.8% Java!
Requirements:
- You have strong core Java skills and are conversant in the standard library of data structures and concurrency constructs
- You have an excellent understanding of concurrent and parallel programming principles
- You have an excellent background in applied data processing (data structures, algorithms)
- You are familiar with storage systems and low-level abstractions in OS
- 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 have solid software engineering foundations, with a proven track record of designing and delivering high-quality solutions
- 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 on data storage technology
- 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
- You have past working experience with database, search engine, OS, or cloud service development