Elasticsearch - Senior or Principal Engineer - Query Languages at Elastic
Elastic is a search company with a simple goal: to solve the world's data problems with products that delight and inspire. As the creators of the Elastic Stack, we help thousands of organizations including Cisco, eBay, Grab, Goldman Sachs, ING, Microsoft, NASA, The New York Times, Wikipedia, and many more use Elastic to power mission-critical systems. From stock quotes to 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. We have a distributed team of Elasticians across 30+ countries (and counting), and our diverse open source community spans over 100 countries. Learn more at elastic.co
Engineering a distributed system that is easy to operate via elegantly designed APIs is a challenge. It requires software development skills and the ability to think like a user. We care deeply about giving you ownership of what you’re working on. Our company believes we achieve greatness when they are set free and are surrounded and challenged by their peers. At Elastic, we feel that you should be empowered to comment on anything, regardless of your role within the company. Our team builds Elasticsearch, the heart of the Elastic Stack.
We're looking for a Senior / Principal Java Engineer to join the Elasticsearch - Query Languages team, focusing on building and improving support for additional query languages such as SQL and PromQL. This is a senior 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 to understand the language through to executing queries using the Elasticsearch search API and adding additional logic to process the responses into the appropriate form to return to the user. We also suggest and make improvements to the search API so it will provide adequate support for these query languages.
Elasticsearch is a distributed application written in Java, dedicated to performance and scalability. We’re looking for Senior 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.
- Hands-on technical experience in software engineering with a focus on server side Java development
- Highly proficient in Java, conversant in the standard library of data structures and concurrency constructs, as well as newer features like lambdas.
- Strong algorithm implementation and optimization skills
- Deep understanding of query language concepts; ideally, you have developed and implemented a language
- Experience with optimizers, query planning and execution. Parser/lexer knowledge is a plus.
- Experience developing against at least one query language, e.g. SQL or PromQL
- Strong knowledge of database and data stores internals
- 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.
- Built things with Elasticsearch before, and understand how distributed systems operate and the limitations and advantages.
Additional Information - We Take Care of Our People
We're looking to hire team members invested in realizing the goal of making real-time data exploration easy and available to anyone. As a distributed company, we believe that diversity drives our vibe! Whether you're looking to launch a new career or grow an existing one, Elastic is the type of company where you can balance great work with great life.
- Competitive pay based on the work you do here and not your previous salary
- Double your charitable giving - we match up to $1500 (or local currency equivalent)
- Global minimum of 16 weeks of parental leave (moms & dads)
- Generous vacation time and one week of volunteer time off
- 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