If there’s one thing humanity needs right now, it’s robots. Our oceans need cleaning up, our roads need maintenance, and many restaurants and farms can’t find enough staff. We technologists better get building the benevolent robot custodians that are ultimately going to make our lives better by filling potholes and picking up our trash. You’ve likely been hearing this same robotics keynote at conferences, promising useful automata that will walk among us, for the last 20 years or so. So how come we don’t see them anywhere in our everyday lives? Today’s podcast episode explores why the barrier to entry for developers in the robotics industry is steep and what can be done to change that. Our guest, Eliot Horowitz, CEO & founder at Viam, shares his vision for a future in which it’s just as easy for developers to build robots as write code for a smart phone app.
Despite our hope for the power of robotics, the technology is still far from mainstream. That’s because the amount of effort needed to get hardware to do useful things at scale is…well…hard.
When Eliot started Viam, his goal was to address this challenge by creating software that supports a range of hardware builds right out of the box. As the company explains - “we’re addressing these issues by building a novel robotics platform that relies on standardized building blocks rather than custom code to create, configure and control robots intuitively and quickly. We’re empowering engineers – aspiring and experienced – across industries to solve complicated automation problems with our innovative software tools.” The company announced the opening of its public beta earlier this week.
While Eliot elaborates on his vision for Viam, Ben reflects on his time covering drones for The Verge and working on robotics at DJI.
Inquisitive badge winner, Neeta, gets props for asking well-received questions on 30 separate days.
Follow Ben and Eliot on Twitter.
[intro music plays]
Ben Popper Hello, everybody. Welcome back to the Stack Overflow Podcast, a place to talk all things software and technology. I am Ben Popper, Director of Content here at Stack Overflow, and today we have a very exciting episode. It is a guest we have had on the show before, although last time he was working in a very different industry. So we're excited to have him on again today and to chat a bit about some of the new things that he's working on. Eliot, welcome back to the Stack Overflow Podcast.
Eliot Horowitz Thanks, Ben. Thanks for having me back. It's great to be back in a very different context.
BP Yeah, exactly. So for folks who are listening, tell them a little bit about who you are, what it is you do, just that quick flyover of your earlier part of your career, and then what it is you're diving into now because I know you're trying to start something new.
EH So I started MongoDB back in 2007 and was the CTO there for 13 years. And at the end of the day, the most interesting part about MongoDB was it was born out of a shared frustration of building applications using databases was too hard and we wanted to make it a lot easier. And over 13 years I think we did that, and I'm still using MongoDB today. And so in 2020 I left MongoDB, took a little time off, and then was doing something a little different. And then I was looking at the world and sort of trying to see, “Okay, I want to solve some interesting problems.” I wanted to look at some really big problems out there. And I'm a big ocean person, anything from cleaning oceans to climate change to smaller problems like that I really don't like potholes in New York City. Riding bikes or scooters in New York, potholes are frustrating.
BP So you're running for mayor. I got it.
EH That would not be fun. So I was looking at all these problems and one common theme is that they're all expensive, they're all hard to do, there isn't enough people to actually get all these things done. If you want to go clean up all the garbage in the ocean, you're not going to get people to do that. Even things like managing forests better, it's just hard to get people to go do that. And so sort of the obvious solution was that there should be more robots. And if you're anything like me, you've sort of been seeing robots on stages at keynotes and conferences for 20 years, and there's always this idea that any day now there are going to be robots doing useful things. And there are some things out there, there's definitely more and more automation, there's more robotics, there's more things. But if you're in New York like me and you walk around the streets of New York, you're not seeing any robots.
BP No. Not even those fun little delivery ones.
EH Right. And so maybe in some places you're starting to see those. In your house maybe you've got a Roomba, but it's nascent. There's very few actual things out there. So if you're someone like me, you do what I would do and be like, “Great, I'm going to go buy a high end robotic arm, put it in my living room and try to make it play chess against me and see what happens,” which is what I did. And I consider myself a pretty good developer, and it was one of the most frustrating experiences I've had as a software developer. Just the amount of effort and work to make this thing do something as simple as play chess, which isn't all that hard, was kind of shocking. And so then I started working with a couple of people and we sort of dove into this problem of, “Why aren't there more robots doing useful things? Why is the software in the robotics space hard to use? What's going on?” And then if you take a step back and think about it more, I obviously know and work with a lot of software engineers, and what I've asked them casually is, “Have you thought about robotics? Would you ever start a robotic startup company?” It's very definitively, “No.” You get answers like, “Yeah, I played with Arduino in college,” or, “I played with Lego Mindstorms in high school.” You get a lot of people who are into the, “Yeah, hardware seems cool but it seems scary.”
BP Yeah, hardware is hard. I mean for background, I was the drone beat reporter at The Verge for a long time and started covering a number of other robotic ventures because I was learning a bit about that world. A lot of companies that tried had difficulty not just in creating it as you said, and getting it to perform as you wanted, but then supply chain issues and manufacturing, and competing in my case against Chinese companies like DJI that had all that stuff right in their backyard. So when you're in the United States at least and you're talking about creating a software company, it's a level playing field. You can go from zero to one pretty fast and you might even have an advantage given all the software engineering talent here. But hardware, creating things at scale, I think is where a lot of people don't want to face that challenge on the hardware side.
EH Yeah. But I think it's even deeper than that, which is the amount of effort required to get hardware is one thing, but the amount of effort to take that hardware and actually make it do useful things at scale is even harder. So what I will say is the price of hardware and the ability to get hardware and things has come down quite a bit and is much easier now than it was 20 years ago. The other thing that's really interesting that's happened is as computers have gotten faster, the amount of computing power you can get for under a hundred dollars in a Raspberry Pi right now is enormous. So part of the challenge in the hardware space and making hardware is this notion that there's a lot of custom circuit boards you need to do and a lot of custom things. And I think that a lot of that stems from lack of great software in the hardware space. I think there's a lot of mythology around what is required to build hardware. And if you look at things like 3D printing and all the things we're able to produce locally quickly now, again the computing power in a Raspberry Pi, the ability to use things like that, you can 3D print and laser cut things and we can do it in our office and build things remarkably quickly, maybe slightly more expensively, but then you have to completely change the paradigm of how you think about taking that hardware and bringing it to life.
BP I recently got a 3D printer. One of my children is really into the world of mini figurines these days and I figured I could save a lot of money printing them at home and also repair all the ones that get broken when he steps on them and stuff like that and just print them again. One of the things that kind of blew my mind there was the open source software in the space, in this case PrusaSlicer which is maintained by a big community, and over the years, as you point out, through software, has taken out a lot of the work that used to be manual of leveling the bed and deciding where the supports go and all this stuff that used to be, as you pointed out, tricky physical engineering that now can be solved more often than not through software which was kind of cool.
EH And I think that actually is a perfect segue into sort of a bigger point, which is that software has this amazing ability to smooth rough edges in hardware and do all these things. I think that's a great example where with filling in supports, the hardware didn't change. You don't need different 3D printers to enable that, but you do need a large community of software people and good software engineers to make those things happen. And right now, take robot vacuum cleaners. I would say I know a lot of people who think the actual vacuum cleaner portion of it's pretty good, and the software portion of it leaves a lot to be desired. And if you ask regular software engineers if they had really good APIs to control the vacuum portion of it and drive it around, would more people play with it? Would there be more innovation around how you do this? And I think pretty clearly the answer is yes.
BP Auth0 by Okta is the leading customer identity authentication provider. Straight out of the box, and into your app. With support for social logins, password lists, single sign-on, and a whole lot more so you can worry about everything else on your to-do list. Visit developer.auth0.com/stack and let them know the podcast sent you.
BP Yeah. I mean, I do think, again getting back to where hardware and software meet and where they can solve problems, one of the things I loved at DJI was watching obstacle avoidance evolve over the years. So the DJI drones when I got to know them in 2013 were blind. You were piloting them, they could return to home but if something was in the way the drone would not see it and it would just go right into it. And over the years they got to the point where the drone can follow you through a forest and dodge trees and branches and all that kind of stuff, and that's happening through ultra fast computation on device, seeing what's out there in the world and figuring out the best path to take. And for some of the robot vacuums, I actually used to do a bunch of robot vacuum reviews, but they're learning more and more, “Oh, this is a carpet. I shouldn't go over this. This is where I got stuck before. I'm not going to take this path again.” And so some of the things that are obstacles in the physical world are starting, as you pointed out, to be solved by hardware. Interesting to think about it more as you said, are there APIs and are there ways to enable other developers to do that? I don't know. Robot vacuums are a good example. I bet there are engineers and software developers like yourself who would love to improve them once they got them at home. I bet most of them are pretty locked down and not really something you can tweak and upgrade on your own.
EH Correct. And so if you take a step back and think about what we're looking to do and what we're building is a new way to think about hardware and software working together in the robotics space and a new software paradigm for robotics.
BP Well let me hear it. Now we're here. What's your pitch?
EH So at the end of the day, what Viam really is doing is a bunch of things. First of all, it's a software platform. We work with any hardware, so it's bring your own hardware. We support a ton of different hardware out of the box. But any new hardware you want, motors, arms, vacuum cleaners, drones, it doesn't matter. You can make it all work. And it's a new software layer that can go down as low as you want to things like controlling motors, doing RPM control, controlling arms, moving arms around, all the way up through how you connect to the cloud, how you get cloud connectivity, how you do data management, how you deploy robotics at scale and think about versioning, how you can handle data from robots going to the cloud, using it to build new machine learning models, pushing them back down to robots, all with very clean developer APIs, all very easy to get started with. And a lot of it's based on this idea of bridging the hardware and software world together.
BP Yeah. I think one of the things that I've heard on this podcast over the last few years as I've been sort of growing more into someone who's focused on the world of software and development, is that there are a lot of successful companies that are built these days API first. And people talk about Stripe as a great example or Twilio. Now folks will often say as they're pitching their company, “We want to be the Stripe, but we want to be that for single sign on or security,” or something like that. A company that thinks about what software developers need, comes out of the gate with a bunch of great APIs, iterates on them as they go along, and then that way becomes a great tool for lots of folks to build. So it sounds like maybe some of that is built into the approach you're taking here.
EH There's definitely part of that. If you think about the process of building a new robot, it starts with you obviously having to have some hardware. You've got to get some things, some motors, what have you. So the first thing we're doing differently is that we make it really easy for someone who is more of a hardware person, mechanical engineer, electrical engineer, to go and configure their hardware in a very easy to use interface. In that interface you get two things right away. One is the ability to start testing that hardware, like just simple UI things where you can go move a motor and move an arm. You immediately get a Blockly-like drag and drop interface to write some very simple code, but at the exact same time, you also now get APIs for software developers to use to use all that same hardware with higher level features added from any language that you want. So before, a hardware person would put something together, they might hack together some control scripts on an Arduino, and then the software engineers would get it and kind of have to start over. Now you don't. They just connect it to a computer, they connect the motors, connect the sensors, connect the camera, they can test all the hardware, make sure things are working. In parallel, a software engineer can take that exact configuration, start writing code, write it in whatever language they want, and just get going.
BP Interesting. So on that supply side, you mentioned that you want to make it simple to figure out what components to work with, and then from there layer up to how to put them together and how to create the software that makes it run. Do you give a suggested set of components? Do you make your own? Do you have partners? When people go out to buy the things that they need, where do they start?
EH We have hardware that we recommend that we know works well, but we also know there's a lot of hardware. And I think one of the things that we care a lot about is that, let's say there's a motor control you're using and then for whatever reason you can't buy it anymore. It shouldn't be so stressful and you should be able to get a new one and not have to change your code. Maybe you change the configuration for a different version of the product because you can't buy a thousand of this certain motor controller anymore, but the code shouldn't have to change. But if you want to go from one robot arm to another robot arm, again, the code for controlling that, the code for your application shouldn't change– just the driver. And so while we do sort of have like, “Hey look. We know this hardware works. This kit is a nice kit to get started with,” we strive to be as hardware agnostic as possible. There's a lot of great hardware out there of all sorts of kinds and we're happy to work with all of it.
BP And so for folks who are listening, are there certain languages or frameworks that if they're familiar with, this would be easier for them? When they come to this, what kind of code are they going to be writing?
EH So one of the core beliefs we have is that we want to be as flexible as possible. So everything we do is based on GRPC, which means that you can use any language that you want. So the languages that we use a lot and most of our examples are going to be now in Python, C++, Go, TypeScript, but basically any language you want is fine in terms of frameworks. And another thing that we think a lot about is trying to have a very low overhead of things you have to learn to get started. And also things that are sort of normal in the software engineering world, we're really trying not to reinvent for the robotics world. If you want to do machine learning, you can use TensorFlow. If you want to do the make files, the tools, they're all going to be the same tools you're using. If you want to build a web application for your robot, use whatever web tool you want and you can just communicate directly with the robot using our tools. So we're really trying to sort of be anti-“Hey, here's this framework you have to use. All robot applications need to be written with this tool.” If you think about the software world, it's very clear that APIs and services make it easier for developers to build faster, to iterate faster, for teams to scale, and we're trying to bring a lot of those ideas down to the robotics world and only changing the things that have to change for the robotics world.
BP Gotcha. This is a new company. What's your role there and how many folks do you have working with you at this time?
EH So I'm running things right now as CEO and we have about 65 people right now. As you can imagine, most of them are engineers. The most interesting thing about the robotics phase in this robotics project is because we're trying to really make it easy for people to build robots, one of the things we've talked about a lot internally is we want three smart 25 year olds to be just as willing to go start a robotics startup as a social media web startup. It shouldn't be so daunting. And so what does that mean? It means we need to have a lot of tools to make it easier. Everything from three people as a startup, maybe there’s one hardware person, one software person. We've got to make it easy for them to communicate. We've got to make it easier for them to write software and iterate on software quickly. We’ve got to make it easier for them to deploy, scale their applications, and then keep adding features and keep adding people to their team. So there's a lot of pieces.
BP Are you and I talking about this before it's launched or do you have examples of users and beta testers that you'd like to discuss?
EH We're now in public beta as of October 11th. We've been working with customers for about the last eight months in a pretty wide variety of use cases, everything from inspection and search and rescue, to things in the agriculture space, to things in commercial kitchens.
BP Nice. And so you've had it sounds like folks coming in from a lot of different areas. It's interesting, again when I was working at DJI, we saw people starting to take the drones and modify them, as you pointed out for search and rescue, and then we would come up with a new tool that was built in that helped it do that but with less battery life and more integrated. Same thing across agriculture. First people were just doing that ad hoc and then they were building drones that had sprayers on them. So they kind of followed the market, and it sounds like what you're trying to do is create a platform so that for all these areas where robotics have robust applications, people can do it themselves. If folks want to check it out and get involved, what are their options? Do you have different tiers for a student or hobbyist who’s curious versus someone who’s like, “Hey, I'm a farmer or someone doing land management. I know I want this kind of robot, but I always felt too intimidated to build it.” What are the entry points for folks to check you out and try using your stuff?
EH So taking a step back for a moment and we can come back to that, another core belief we have is that there is a lot of things to build in this space and so we believe that open source is going to play a huge portion in robotics. So everything that lives on the robot that Viam produces is open source. So all the drivers for all the core robotics bits that live on the robot, all the drivers for interacting with different hardware, all the SDKs, all open source. We're working with the community on it. We want to work with the community on it, so on and so forth. On the cloud side, the cloud services, those are going to be very simple usage based services. No big upfront contracts. No like, “Yeah. We’re happy to work with you. Just $100,000 upfront please.” None of that. Free tiers to get started. If you've got a small robot doing something small, you can have a very small bill. So very much designed for your hobbyist, your early software engineer, your tinkerer to get started. No big costs. They just come in and they just start building stuff.
BP Gotcha, gotcha.
EH And I think even the bigger agriculture people and all those bigger sort of more industrial applications, what I've learned in the software space is most of those start with a software engineer working with someone in the space or someone from industry. We're working with a company where it's someone who was a general contractor who started working with a software engineer friend to design a robot to help in construction. And I think that's going to be a lot of what we see– someone who really understands an industry, whether it's construction or agriculture or health tech, working with some of their software engineering friends to bring a new robotic idea to life. And in those cases they can get started for free with Viam. We will offer and have things like consulting packages and we very much want to help people build robots and we also are keenly aware that this space is very early. There's a lot of questions about how you get a new piece of hardware, a new robot, into production. How do you get it working correctly? How do you scale it? What are the right business models? These are all sort of a lot of unknowns in this space and we want to help with all of those.
BP That's very cool. Well, I have to say I love this idea. I just in my gut feel like it's not going to work so I'm glad that you're going after it, because I think that means it's exciting and if it does work it could be really impactful. I am trying to remember the right name, but Chris Anderson, who used to be the Editor-in-Chief at Wired, went on to create an online community, I think it was called DIY Drones. And it was a similar thing where they tried to make everything open source and folks were all building together and they were all sort of learning from each other, and over time they developed software that became in some places industry standard. You could download their sort of autopilot software and then if you were building a machine, all of a sudden it was much easier because you didn't have to start from scratch. So it would be very cool to see that applied not just to this specific category– drones, but more broadly to robotics. So yeah, I think we'll have to check back in a year and see how you're doing because it would certainly be cool, as you pointed out, to walk around the streets and see more robots in action. Everybody likes that. Well, not everybody. Some people are scared of that.
EH Yeah, but who wouldn't want robots wandering around collecting trash or filling potholes?
BP Right, filling potholes. Okay, the benevolent robot custodians. I hope we see them in the near future. Well, Eliot thanks again for coming on the show. I'm happy to talk to you again. You always have big ideas, and I'm glad that you're working on something new and exciting so I'm eager to see how it turns out.
BP All right, everybody. It is that time of the show. I want to shout out the winner of an inquisitive badge: somebody who came on Stack Overflow and asked a well received question on 30 separate days. So congrats to Nita for being so curious, for sharing that with our community, and for helping folks to spread some knowledge to everyone. I am Ben Popper. I'm the Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper. Email us with questions or suggestions, firstname.lastname@example.org. And if you like the show, leave us a rating and a review. It really helps.
EH I'm Eliot Horowitz and if you want to check out Viam, just go to viam.com and start building your robot today.
BP Very cool. All right, everybody. Thanks for listening and we will talk to you soon.
[outro music plays]