Drones, Data and Node.js: A Skycatch Story

EVO3X Flying. Photo courtesy of Skycatch’s press kit

Surveying property for construction sites or any other large industrial site can be a huge and expensive task, but thanks to Skycatch, it doesn’t have to be. The company builds commercial drone data solutions for construction, mining, energy, and more.

How? It creates specialized drones that provide a bird’s-eye view of the site that you want to survey, and then provides the data that you need to start your project. KQED has a great video and article on what that looks like. It’s awesome!

Founded in 2013 by Christian Sanz, now the company’s CEO, Skycatch has used Node.js since the beginning. Christian was also one of the first people to get involved in the NodeCopter community. Given its longevity with Node.js, Skycatcher essentially uses Node.js everywhere: on its drones, for back end development, and for data processing.

Mikeal recently got to sit down with Andre Deutmeyer, who is on the engineering team at Skycatch, to discuss how Skycatch works, and how it is using Node.js. You can find the full video of the interview here.

Mikeal Rogers: All right. Welcome to Enterprise conversations. I’m Mikeal Rogers from the Node.js Foundation, and I’m here with Andre Deutmeyer from Skycatch. Hey Andre.

Andre: Hey, what’s up Mikeal?

Mikeal Rogers: Not much. Just, you know. Relaxing in sunny San Francisco today.

Andre: Beautiful day.

Mikeal Rogers: Yeah. I think I’m probably just about 4 blocks from your office.

Andre: You’ve got to swing by sometime. It’s pretty nice.

Mikeal Rogers: Yeah. I saw the old one, but I haven’t seen the new one yet.

Andre: Cool.

Mikeal Rogers: Let’s get into it. Why don’t you tell me a bit about what Skycatch is and what your role and your team do there?

Andre: Skycatch is a data company; that’s key number one. We’re not a drone company, we’re a data company. What we really want to do is we help you capture, manage, analyze commercial drone data.

I think the way you can think about this is that we view your site (whether it is your construction site or your mining site, etc) as a database that needs to be queried. Existing tools are using raw SQL queries making it hard; it’s time consuming. We want to put an ORM or UI on top of that and make it easy to extract actual data from your construction sites.

Mikeal Rogers: Construction workers are probably not going to write their own code. They use more end-to-end tools. You said that you’re not a drone company, but you do make a drone right?

Andre: That is correct. We build our own drones, and it helps us make a very smooth experience.

Mikeal Rogers: Sort of an end-to-end full stack solution?

Andre: Yes.

Mikeal Rogers: Great. Then, what’s your role there?

Andre: I primarily lead the web and infrastructure development here at Skycatch. We’re still a relatively small team with about 25ish developers. It’s a small, cross functional team. I am most heavily involved with architecting and scaling out our data processing. So my goal is basically to deliver the data that our clients send us back to them reliably and quickly.

Mikeal Rogers: Great. That’s awesome. Why don’t you tell me a bit about how you use Node.js over there, and where you use it?

Andre: We use Node everywhere you can think of… There’s a little bit of Node on our drones. We have a little Edison board, it’s nothing critical, but we have an Edison board running on the drones to handle some of the file management stuff., and some of the IO stuff. We have Node.js running there. Almost our entire back end is Node.js; Node.js is essentially our glue. For all of our data processing stuff, we have a lot of microservices that are in constant communication with each other, passing data back and forth. Node.js is what keeps that going smoothly. Then, also in our API site as well, we’re using Node to keep our dashboard up and running.

Mikeal Rogers: Wow. Node.js everywhere. That’s what we like to hear. I remember the NodeCopter days, back in 2012, and Christian was one of the first people to get involved in that community, and eventually do drone games. Out of that, started Skycatch.

Andre: Right.

Mikeal Rogers: I mean, Christian is one of the earliest Node users. I know that you all have been using Node from the very, very early days. What impact has Node had on your company and how you do development? Especially since from the time that you started the company, you’ve been able to take it for granted.

Andre: Node.js has been great. I mean, you can’t really put a price on the ability to move fluidly from the front end development (more web based development) into the service and architecture side of it. We’ve been able to get away with smaller teams, and been able to do what we do and scale what we do because of Node. There’s no hurdle to moving between front end and back end. I think it’s allowed us to scale much more easily than if we had chosen a different language to run on our servers.

Mikeal Rogers: Do you have people that literally stretch from the drone to the front end of the cloud, back end and back again? Actually that far in the stack?

Andre: We have one. We have one that does that. It’s a little unusual to scale that far, but we definitely have a lot of people who are both working on the web API and the data processing side. One thing we encourage with our teams is to move through that process. It’s a growing process for them. They figure out which part of the stack they enjoy working on, and again, there’s not a huge mental hurdle to making that move because it’s just JavaScript.

Mikeal Rogers: I love that. I’m going to put that on a t-shirt. It’s just JavaScript. What are some things coming up in the future of Node, and JavaScript for that matter that you’re kind of excited about?

Andre: I think one of the things that we’re most excited about recently is Lambda (AWS Lambda). Up until probably just two months ago, it was experimental for us, because they didn’t support Node 4. But, they just recently released their support for Node 4, and we’ve been in a very big hurry to start putting a lot of our smaller services to that and making use of the infrastructure there. That was really cool.

Mikeal Rogers: What’s that going to allow you to do what you’re not doing now? What are the things that you have to deal with now that will go away once you move to that technology?

Andre: For us, I think because we’re a small team, we really want to focus on the product and not necessarily on having to scale out the infrastructure. Lambda is beautiful for that. With Lambda, you send it some data and it does it’s thing. It’s always there. It’s on demand. Scale becomes a non-issue at that point for us. Again, because it a supports Node 4, we’re breaking down our code so that it works in smaller chunks. We can deploy it quickly and scale really simply.

Mikeal Rogers: That’s great. I think you were going to get into something else that you were also looking forward to. I’ll let you finish that.

Andre: In the more the language level, I like watching ES6 get built into Node so we can start using a lot of those fancy new methods, generators and amazing functions like native link without having to have any special flags or special runtimes to make it work.

Mikeal Rogers: Because you’ve got Node version 4 everywhere, you can really rely on that stuff.

Andre: Exactly.

Mikeal Rogers: That’s great. Exciting stuff. It was great talking with you. Thanks for taking the time.

Andre: Likewise. Really enjoyed it, and hopefully again, feel free to swing by the office anytime.

Mikeal Rogers: Yeah. I definitely will.