We're looking for a Java Engineer to join the Elasticsearch - Query Languages team, focusing on building and improving support for additional query languages such as SQL, EQL and more to come. This is a software engineering role that covers new features, enhancements to existing features, and resolving bugs. We design and write code (including automated tests) and documentation. We review one another’s code via GitHub pull requests, and we investigate and fix bugs. We do all of this transparently on GitHub. Our work involves writing query parsers, language analysis, optimization, query execution and data manipulation across Elasticsearch APIs. We contribute across Elasticsearch to provide adequate support for these query languages.
Elasticsearch is a distributed application written in Java, dedicated to performance and scalability. We’re looking for enthusiastic and passionate engineers who are able to design new product features while thinking through the concurrency and performance implications of those designs.
What You Will Be Doing:
- Building and evolving the query language support in Elasticsearch.
- Contributing improvements to the wider Elasticsearch product to be able to better support query languages.
- Prototyping new ideas and experimenting openly.
- Working closely with cross product teams to expand query language offerings at all levels of the Elastic Stack.
- Collaborating in the open with the Elasticsearch team, Elastic Stack users, and others supporting open source projects.
What You Bring Along:
- You’re passionate about query languages!
- Experience developing a query language; building a Domain Specific Language in Java is preferred
- Hands-on technical experience in software engineering with a focus on server side Java development
- Strong algorithm implementation and optimization skills
- Strong knowledge of database and data stores internals
- Experience with parser/lexers like ANTLR
- Hands on experience of designing a query execution plan
- Experience with rule-based systems Search and analytics tools
- Worked in open source before and are familiar with different styles of source control workflow and continuous integration.
- Maintained a query language or DSL
- Built things with Elasticsearch before, and understand how distributed systems operate and the limitations and advantages.