Life@ Elastic | Geospatial mapping with Nick Knize | Elastic Blog
Culture

Life@ Elastic | Geospatial mapping with Nick Knize

Want to know what life at Elastic is like? You've come to the right place. Hear from our Elasticians first hand as we highlight their stories and photos from around the world. In this Spotlight, Nick Knize shares his journey with Elastic, from the start to the recent release of the new ShapeFieldMapper.

My name is Nick Knize, and I’m the Geospatial Technical Lead at Elastic. I work on Elasticsearch together with the Elastic Maps team. Elastic Maps is a really exciting product for users of the Elastic Stack. With it, users can analyze their geospatial data, visualize with interactive layers, and search through multiple sources of data in real time — and so much more. Users can experience Elastic Maps in Kibana today and open up new ways to visually explore their location data. They can also try it out on the Elasticsearch Service.

Nick

Over the last few years I’ve watched my team grow and with it the technical capabilities of what we can do with geo in Elasticsearch, Kibana, and machine learning. I want to share a bit about how I ended up at Elastic, why I think it’s a great place for engineers to work, and a few of the major accomplishments we’ve made as a team over the last few years.

A geospatial roadmap

My journey into geospatial development was a long one, and not exactly straightforward. I initially studied meteorology in college — I had and still have a fascination with weather patterns, astronomy, and terrestrial analysis. But after a short time studying meteorology, I realized I was doing better in my programming classes and enjoyed programming and mathematics way more than coloring and manually creating maps. I decided I wanted to go deeper and design and develop programming models capable of analyzing the earth and its behaviors.

As I did more and more modeling and visualization, I converted into being a software engineer but again found other interests, specifically in computer graphics. After taking an internship in the medical school’s image guided surgery lab, I had the notion that I would become a character animator at a movie studio. Those dreams were quickly dashed — I learned I’m not much of an artist — and I ended up doing more image processing and analysis, computer vision, facial recognition, and biometrics than real character animation.

That was when it hit me: images in combination with location attributes are extremely powerful. And once I started playing around with image analysis, I was hooked. After several years of study, and a lot of research, my professors suggested that I complete a dissertation for a PhD. So I did, knowing that it would open doors for me later in life.

Coming to Elastic

Following my university studies, I worked as a government contractor. After several years of contracting work, I had grown a bit restless in the government space and wanted to work on an open technology found at the core of many other companies’ products. I also wanted to get into open source, because being able to push code out there and let people see it, use it, and collaborate with it was something I found incredibly exciting.

After doing some research I came across Elasticsearch and was excited by the possibilities I saw in the product. I interviewed with Elastic (which was just called Elasticsearch at the time), and after the interview I felt that the technical freedom to explore new things and eventually have them turn into a feature release was a great opportunity that I couldn’t pass up.

I was brought in to completely overhaul the geospatial code inside of Elasticsearch and Lucene. I'm a longtime Lucene committer, so I worked closely with the Lucene team to introduce a new spatial and numeric data structure that now indexes anything that's numeric in Elasticsearch. So, anytime you index scientific data, for example an integer, float, IP, date, timestamp, or latitude/longitude, it indexes in a new data structure that I and a few other people developed and improved from the Lucene side.

Building success with the team

I started with Elastic in 2014. We were still a small company then — around 120 or 130 employees. I remember a few months after I joined we had the first Elastic{ON}. In those days we all fit into Pier 39 on a single stage.

I needed a good team to bring our geospatial vision to life. At first the engineers who worked on the project had a broad focus in their career — they weren’t exactly specialized in geo but they were extremely talented developers nonetheless. I began hiring additional developers that were passionate and fully dedicated to the geospatial tech space, which is where the project really took off.

Meet the team

From the beginning, my ultimate goal with the geo capabilities in the Elastic Stack has been to do everything we can with arbitrary geospatial geometries and shapes. Doing that makes it possible for users to index terrestrial shapes in Elasticsearch, and run geospatial object searches and analysis for a wide range of traditional and non-traditional GIS use cases.

With a team in place, and focusing on the above goal, we had a big win with Elasticsearch 6.0 with the release of the BKD data structure for all numerics, including latitude and longitude geo_point types. Then we expanded what we accomplished in 6.0 to geo shapes, for more performant indexing and searching of geospatial geometries for the Elastic Stack 6.6 release.

Then the focus shifted to achieve the same performance success for arbitrary geometries. If users want to index shapes inside Elasticsearch and perform all sorts of spatial analysis on geometric objects, they should be able to — and at lightning speed. The optimized geo_shape fields in Elasticsearch 6.6 were a big step forward toward that goal. We were able to create the first pull request for a new Elasticsearch shape field type for indexing and searching arbitrary Cartesian geometries. This was a really exciting development.

Engineering culture at Elastic

There’s a lot more to working at Elastic than the really exciting leaps and bounds we’ve made technologically (which is already enough of an incentive for most). What some engineers might not know when starting at Elastic is that you’re joining forces with a company that's ready to stand by you. You have a lot of freedom to explore and do things, which is a far cry from what you might experience working on proprietary software somewhere else. I think most engineers enjoy that freedom, because if those other engineers are anything like me, they get bored doing the same thing over and over again.

Another big bonus of working with Elastic is that, at least with my team, you have the opportunity to be a Lucene committer. This is a pretty big feather in the cap for any software developer. It's a good resume builder, opens doors, and genuinely — I think — makes you feel pretty good about what you do.

Staying power

Elastic is a company with a lot of longevity. That’s because we evolve and grow. And as the company has evolved, so have the reasons that I’ve stayed on with Elastic over the years.

At first, I stuck with Elastic because of the technology. I told myself that as long as Elastic stays true to the original idea of building a pluggable framework that allows people to apply the Elastic Stack in different ways, I will follow — and we have.

But what has also kept me here is the culture. I've now got four kids at home, and being with a company that has the flexibility of Elastic, supported by the trust from my managers and staff that we can get the work done, is a priceless incentive to keep working with my amazing team well into the future.

Interested in joining a company with a Source Code to live by? We’re hiring. Check out our teams and find your fit! Want to read more about life at Elastic? Read more on our blog!