We're looking for a Senior Java Engineer to join the Elasticsearch - Analytics & Geo team, focusing on Geospatial work in Lucene and Elasticsearch. This globally-distributed team of seven senior engineers is responsible for building new analytics and geospatial capabilities in Elasticsearch, profiling and optimizing existing functionalities, analyzing runtime and edge-case behaviors of distributed algorithms, and innovating new ways to store and analyze data in Elasticsearch.
Our company is distributed by intention. We hire the best engineers we can find wherever they are, whoever they are. As a result, our team is diverse and distributed across continents. We collaborate every day over email, GitHub, Zoom, and Slack.
At our best, we write fast, scalable and intuitive software. We believe that the best way to do that is to code review for every change, decide big things by consensus, and strive for incremental improvements. We believe the team should be aware of how our customers use our products and be empowered to make bold decisions.
We are looking for an engineer that is proficient in Java and either has prior experience working with or building Geospatial products or is interested in pursuing a career in this space.
What You Will Be Doing:
- Design and implement new, fast, horizontally-scalable features and APIs in Elasticsearch, integrating and exposing new features from Apache Lucene. You'll propose technical approaches, discuss, and will have ownership of the features you work on.
- Investigate and implement optimizations for geo spatial indexing and search data structures.
- Integrate new geospatial features in Elasticsearch from Lucene.
- Implement new geospatial aggregations and data analysis techniques (e.g., faceting, clustering, hot spot analysis).
- Improve existing geospatial APIs including new intercommunication formats.
- Work closely with cross product teams to expand geospatial offerings at all levels of the Elastic stack
- Working with the community on bugs and performance issues and assisting out support engineers with tougher customer issues.
What You Bring Along:
- You are proficient in low-level Java, standard data structures and concurrency primitives.
- You have a firm understanding of how distributed systems operate, their limitations and advantages.
- You have experience with Elasticsearch or another search technology, and understand basics of indexing and querying documents
- You have experience designing and writing distributed algorithms on a map-reduce style of system (Hadoop, custom code, etc.).
- You work with a high level of autonomy. The distributed nature of the company offers freedom to work when and how you see fit, but also requires team members to work independently, and reach out for help when stuck.
- You are familiar with different styles of source control workflow and continuous integration.
- You are meticulous at reviewing code, comfortable receiving feedback through PR reviews, and familiar with different styles of source control workflow and continuous integration.
- You have excellent verbal and written communication skills. You are an excellent teammate with strong analytical, problem-solving, debugging and troubleshooting skills. Clear and concise interpersonal skills are critical for working with our distributed teams.
- You have a good understanding of geospatial coordinate systems, map projections, and datum transformations.
- You have experience with geospatial data structures, geospatial visualization techniques or geographic information systems.
- You have contributed to open source projects.
- You have built things with the Elastic Stack.