Elasticsearch - Java Engineer - Scripting Infrastructure
Elastic (NYSE: ESTC) 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, Goldman Sachs, Microsoft, The Mayo Clinic, NASA, The New York Times, Wikipedia, Verizon, 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
Elasticsearch includes a powerful, flexible family of scripting features that enable users to programmatically modify documents, inject fields into search responses, store search templates, express custom scoring and ranking functions, and more. We're looking for a Java engineer to join our team to develop and maintain this key functionality. In this role, you will help us develop our custom scripting language, maintain the script engine plugin infrastructure, and support the Lucene expressions language. This is a great opportunity to build features that contribute heavily to the overall flexibility and usability of Elasticsearch.
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.
What You Will Be Doing:
- Developing Painless, Elasticsearch’s custom scripting language
- Improving existing scripting infrastructure within Elasticsearch, including support for Lucene expressions, Mustache templating, and custom scripting plugins
- Improving the usability and performance of Painless, including the server-side work required to build an IDE for the language
- Improving Painless’s documentation
- Collaborating in open source with the Elasticsearch team and Elastic Stack users
What You Will Bring Along:
- Strong understanding of Java in general, including the standard library of data structures
- Solid understanding of JVM internals including JIT compilation, object allocation / garbage collection, and the Java memory model
- Firm understanding of compilers and interpreters
- Knowledge of parser generators such as ANTLR
- Familiarity with Java ASM or bytecode manipulation in general
- Experience with and interest in technical writing
We believe in working in the open. As an engineer on the Elasticsearch team, you will collaborate publicly on GitHub with your fellow engineers and our users. Here are a few examples of the kind of work you may undertake:
- Designing and implementing new APIs from scratch
- Collaborating with colleagues to improve the usability of Painless
- Extending the language’s grammar
- Future-proofing the codebase against JVM changes
- Refactoring and simplifying existing code
- Improving tests and documentation
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
- Global minimum of 16 weeks of parental leave (moms & dads)
- Generous vacation time and one week of volunteer time off
- The flexibility to work 100% remote from your home
Additional Information - We Take Care of Our People
At Elastic, we strive to have parity of benefits across regions. While regulations differ from place to place, we believe taking care of people is the right thing to do.
- Health coverage for you and your family.
- Flexible location and schedule for many roles.
- Generous number of vacation days each year.
- Double your charitable giving — we match up to 1% of your salary.
- Up to 40 hours each year to use toward volunteer projects you love.
Elastic is an Equal Employment employer committed to the principles of equal employment opportunity and affirmative action for all applicants and employees. Qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender perception or identity, national origin, age, marital status, protected veteran status, or disability status or any other basis protected by federal, state or local law, ordinance or regulation. Elastic also makes reasonable accommodations for disabled employees consistent with applicable law.
When you apply to a job on this site, the personal data contained in your application will be collected by Elasticsearch, Inc. (“Elastic”) which is located at 800 W. El Camino Real, Suite 350 Mountain View, CA 94040 USA, and can be contacted by emailing email@example.com. Your personal data will be processed for the purposes of managing Elastic’s recruitment related activities, which include setting up and conducting interviews and tests for applicants, evaluating and assessing the results thereto, and as is otherwise needed in the recruitment and hiring processes. Such processing is legally permissible under Art. 6(1)(f) of Regulation (EU) 2016/679 (General Data Protection Regulation) as necessary for the purposes of the legitimate interests pursued by Elastic, which are the solicitation, evaluation, and selection of applicants for employment. Your personal data will be shared with Greenhouse Software, Inc., a cloud services provider located in the United States of America and engaged by Elastic to help manage its recruitment and hiring process on Elastic’s behalf. Accordingly, if you are located outside of the United States, your personal data will be transferred to the United States once you submit it through this site. Because the European Union Commission has determined that United States data privacy laws do not ensure an adequate level of protection for personal data collected from EU data subjects, the transfer will be subject to appropriate additional safeguards under the standard contractual clauses. You can obtain a copy of the standard contractual clauses by contacting us at firstname.lastname@example.org. Elastic’s data protection officer is Daniela Duda, who can be contacted at email@example.com. We plan to keep your data until our open role is filled. We cannot estimate the exact time period, but we will consider this period ended when a candidate accepts our job offer for the position for which we are considering you. When that period is over, we may keep your data for an additional period no longer than 3 years in case additional opportunities present themselves in which yours skills might be better suited. For additional details, please see our Elastic Privacy Statement https://www.elastic.co/legal/privacy-statement.
Notify Me of Open Positions
Sign up to receive emails when Elastic posts open positions you might be interested in: