The Company That Is All-In on Rust For Robotics

This is my interview with Vivek Bagaria, autonomy lead at Matic Robots. It was so much fun to hear him talk about Matic's autonomy strategy, and I know a lot of the Rust fans are going to be excited to hear what he has to say about Rust! To see jobs available at this and other cool rust companies, check out our extensive rust job board.

Drew: So, Matic is building a robot vacuum. Obviously robotic vacuums have been done before. But Matic is doing it very differently. How is the Matic value proposition different for your customers?

Vivek: First, I want to say that Matic is a home robotics company. It's not a vacuum robotics company. Our goal is to save people time and energy. In today's world, most of us just spend a lot of time doing chores at home. You're always busy cleaning your home, busy getting groceries, you are always folding your clothes, doing laundry, you're always cooking and then the weekend is over. And then you race through the weekdays and come the weekend, your home is dirty again, your clothes need to be washed again, and you’re out of food. Nowcompare this to digital life two decades ago, you had to talk to 20 people to book a Europe trip. You had to call someone to arrange cars, talk to an agent to book tickets, etc. Today, you can book a Europe trip lying in your bed using five apps. Digitally, the world is very modern. But inside the home, the world is still the same. If I take a photo of our homes and compare it with 1960, it's pretty much the same with screens removed. So the home has not been modernized. Matic will do that.

Vivek: To start on our mission, we had to find a good beachhead to really land us in people's homes. And what we found was that vacuum robots are a mess. They are a well known product, but they really do not solve the problem they aim to solve. Here are a few interesting stats. Each year, 17% more people are purchasing a vacuum robot. However, satisfaction-wise vacuum robots have a score of minus one. That basically means all your friends and family tell you, hey, don't buy this thing. It didn't work for me. And then the next day, you go and buy it! Why is that? Because it's a real pain point. People want this solved. But, the solutions are really bad. In fact, more than half the users just stop using it after six months. The fundamental reason why the current products do not solve the problem is because home is an unstructured environment. To work in the home, you need a good semantic understanding. You need to differentiate between a wire, a shoe, a toy, and a carpet frill. You cannot just use a spinning laser to do this. It needs an eye. It needs human-like semantic understanding. So, that's the main differentiator when it comes to Matic- we solve the problem semantically, not geometrically.

Vivek: The current robots are like a blind person trying to clean your home. They cannot see, but they can extend their hands and feel things. They don’t crash into things, but they bump into things. A lot. That scares people’s pets and kids. Other times, people have their bikes or other expensive things propped up vertically which will fall if bumped. Sometimes these robots get tangled in wires. Your kid might have this beautiful painting or jigsaw puzzle on the ground and the robot comes and destroys it. This all happens because there’s no semantic understanding.

Vivek: The first idea behind Matic is to use cameras for semantic understanding. In fact, we only have one kind of sensor- the camera. This was a very counterintuitive approach back in 2017 when we started. Today it's almost agreed upon that cameras are all you need. By having only one sensor, we actually flip most problems to software first instead of hardware first. A lot of existing robot products add a piece of hardware every time they have a new problem. You want to detect stairs? Cliff sensors. You want to detect carpet? Carpet sensors. You want to detect dirt? Dirt sensors. You want to detect a moving obstacle? IR sensor. Each problem is solved at the hardware level. But cameras shift the whole game to software, and we know how fast software iterates compared to hardware. By making it software first, we can lock the design earlier and keep shipping software. In the last six months, we have shipped software every two weeks reliably. Not every user can tell the difference between every release, but by two months everyone knows that there has been a meaningful upgrade. And they're like, “dude, this really works. They promised me software updates. Every other hardware company promises me software updates, but this actually meaningfully improves my experience.”

Vivek: The other thing I should mention is that our hardware is very modern too. We realized that the existing products have a lot of hardware problems because they have solved all the problems with hardware. Because you end up with this like Christmas tree of sensors, you don't have enough space for the mopper. Or, you don't have enough space for the bin. So, you end up miniaturizing things so much that you stop solving the original problem. So many of the vacuum robots end up having a dock, which is this gigantic, ugly thing that becomes your home’s second dustbin.The dock itself is a big vacuum that sucks stuff out of the little vacuum. So, the hardware just multiplies and gets very expensive and unreliable. By doing software first, we end up having really great hardware. For example, our bin is bigger, and it's co-designed with the software. So, when the bag is full, Matic goes to your dustbin and opens the lid and says, hey, just replace the bag.

Vivek: The last thing I’ll add is about privacy. The world has changed a lot in the last 20 years, and people have realized how important technology is. At the same time, we’ve realized how scary technology can be. So, we have painstakingly designed Matic with privacy in mind. We solved this fundamentally by running all computations on the robot. This gives customers a choice of whether or not to share any data from the robot. I think about 20% have opted not to share while the others just prefer that we use data to iterate faster. So, customers don't have to take our word on privacy. This all makes our job extremely hard because we have better versions of our product which can run in the cloud. We can’t ship those. We have to get it on the robot. So all of that combined is what makes Matic different. And, we believe once we solve this problem of vacuuming, we will have learned how to map any unstructured indoor environment. In fact, we have started working on a second product, which is a declutter robot.

Drew: It was so fun to listen to you talk about Matic with such passion. Thanks for bringing me out to the bigger vision of home automation. So, here's a more basic question. How is it all going? Have you hit any big milestones lately?

Vivek: Yeah, so we are shipping 500 robots per month. To those who know robotics 500/month is big, for people who don't know, it's just 500. The thing with robots is that shipping your first robot is the hardest. And then shipping your first hundred, then first thousand, and so on. We aim to ship 6000 robots this year. That is $10 million in revenue this year. The growth can be painful, but it’s fun too. Also, we’ve got a lot of stuff we’re doing on the back end. Moving out of China for our manufacturing is one example. About every three months we ship a really major feature. For example, in two months I think we'll be shipping an Android app. Almost half of our customers have been asking for that. So yeah, the business is thriving and growing.

Drew: So one of the more specific business things that I was curious about is funding. I know that can be a challenge with robotics businesses, because it's not just a bunch of laptops and salaries that you have to pay for. You actually have to build stuff. So how has the business been funded so far?

Vivek: We are a venture backed company. We have raised around $30 million so far. And the founders have put in their own money too, which is a very good sign, because it means they have skin in the game.. One very important thing which we've done is stay lean. We are currently 50 to 60 people in the seventh year of the company. We've grown by about 8 to 10 people every year. Also, it's a vertically integrated company. We basically buy plastics, wires, and other raw materials, and we ship out a robot. It's almost like a mini car company with self driving and everything. We did do a couple of unique things early on that kept our costs low. For example, we did all our prototyping for the first five years with 3D printing. That made each iteration very fast. All we had to do was order raw plastic and raw metal. This was especially helpful during all the Covid supply-chain issues. We were just humming along because all we needed was plastic and electricity.

Vivek: When it comes to the software side, machine learning is supposed to be a very expensive undertaking. We did two things that helped us there. One thing we did was train a lot of our neural networks on simulated data using Unreal Engine and Unity. That's much, much cheaper than asking a human to label your data. And, that way, if you change your mind about something, it takes a few hours to generate a new data set instead of having like 10 people redo a bunch of manual work. We've also relied very heavily on public data sets to close the gap between simulation and reality. So, that got the robots good enough to get out in the field. Now, we have some customers who are like, take every piece of my data. It's actually funny. There’s a huge range. One customer is like, don't talk to me ever again. We've done business. That’s it. Bye bye. And then there's the other customers that are like, can you just take all my data and iterate faster? So now we have tons of data, and we are using really amazing computer vision models with 10 billion plus parameters to label the data. Between making sure the hardware iteration is cheap, making sure that the machine learning iteration is cheap, and having a lean company, we’ve been able to ship a product with ~$30 million in funding, which I think is quite efficient when it comes to robotics at least.

Drew: That's awesome. I want to point out what you said about the founders putting in their own money. I think that is really an important point that they have skin in the game. They believe. So one last general question before I get into the technical. How did you yourself get involved in this?

Vivek: So, fun fact, I did my PhD at Stanford in blockchain. In fact, I was the first Stanford student who did a PhD in blockchain. I used to be a very researchy person. In the last six months of my PhD, I came to a realization that the blockchain industry is too nascent. And, it felt like a solution in search of a problem. If you want to make big changes, you have to solve a real problem. So what I started looking for after my PhD was a team that was solving a real pain point using deep tech.. I really wanted to do deep tech, and that’s how I found Matic. I spoke to Navneet and Mehul and got the sense that they are really trustworthy people. They really seemed to care about solving the problem. I was also very thankful that they gave me a job, even though I had no experience in computer vision and robotics.

Drew: I’m sure they saw in you the intelligence and passion I’m noticing just talking now! Let's move on to some technical questions. You and I ran into each other online because we have both been in the Rust community. I think the first thing I saw from you was this really passionate post about how your whole autonomy stack is in rust. So first, let me ask, is your stack really all rust?

Vivek: Well, the answer is basically yes. Our firmware is all Rust. Every component of our autonomy stack is Rust. Our app is 50% in Rust. And, our visualization tools are in Rust. Our production tools are in rust. The production QC software, which we ship to China, is in rust. Our internal websites are in rust. It's rust all over. We’ve drank the Rust Kool-Aid. In fact, there is no Python installed on the robots. This is not to dis Python at all, but it’s just simply not there.

Vivek: We use Python for neural network training. But Python is boxed to that. Everything else is Rust. And, the advantage of using Rust exponentially builds up.

Drew: You're going to make a lot of the Rust diehards very happy with this. They're going to love to hear this.

Vivek: Well, I should take the opportunity to thank them for all the work they've done. This is where my blockchain days actually have made a positive impact. I learned Rust during my blockchain days.

Drew: Oh right, I guess that would make sense.

Vivek: When I joined the company, Navneet (CEO) was like, do you want to write SLAM in rust? It was a young company, so there was not much software written yet. I was like, are you sure? To his credit, he said we should try it! Over the next three months we became a Rust company. I was very lucky that he made that bet. And again, I thank the rust community wholeheartedly for all the effort and this beautiful piece of technology they have produced.

Drew: That's so cool. I want to talk more specifically about this post we previously mentioned. The way I remember it, you were kind of putting a flag in the ground for Rust in robotics. If I remember, you said that you are not using ROS, meaning R-O-S Robotics Operating System, which is a huge deal. I don’t know of any other robotics company that isn’t using it to some extent. And, you said that you were able to do that because of Rust. That sent some shockwaves through the ecosystem. Tell me about it.

Vivek: You're being very kind. I was really just thinking aloud when I posted that. But anyway, you’re right that we do not use ROS. ROS is a decent tool for prototyping robotics, but it does have its issues. I mean, ROS is old. It is a tool that was built 15-20 years ago. It’s not that well-maintained in my opinion, and it's got a complex build system.

Vivek: One of the core aspects of any robotics stack is multiple modules running simultaneously, talking to each other. That is child's play in Rust! Rust is built for fearless concurrency, and it achieves it! Data races are basically impossible unless you are actively trying to shoot yourself in the foot. And also you’ve got great channels in the Rust ecosystem, whether that’s in the standard library or Crossbeam or Tokio. So, having processes running and talking to each other is quite easy in rust. I have tried doing this in other languages, and there are a lot of gotchas. For example in Python, you don't get the multi-threading linear performance. In C, I would frequently run into data races. Rust also has the Serde crate, which is great. It makes serialization and deserialization very easy for all practical purposes. I use it so much, it might as well be in the standard library.

Vivek: The second thing I really like about Rust is visualization. We do a lot of visualizations, and Rust has amazing visualization libraries. For example, our internal websites are built on egui. I would recommend anyone reading this learn egui, because egui makes writing visualizers as simple as writing for loops. We’ve been able to build really excellent visualizers using egui. We have around 50,000 lines of egui code written across the company.

Vivek: Rust also makes FFI very easy for interfacing with C, C++, Swift, and Kotlin. That means that if we run into holes in the Rust ecosystem, we can use libraries from other ecosystems. We are not such diehard fans of Rust that we won’t touch something that’s not Rust. We like good software and good software is written in every language. In fact, there is this one particular library which we use in certain parts of the code. It’s made by Google, and it's called Ceres Solver. It's a nonlinear least squares optimizer written for production. A good fraction of Google maps runs on it I believe. It’s a great piece of software. So, that tool has a C API, and all we had to do was roll out Rust bindings. So, all the nice components in the robotics community can be used in Rust. In my opinion, Rust doesn’t really leave anything to be desired when it comes to robotics.

Vivek: I should say, none of this was methodically thought through before. We just ran with Rust, and it kept working. When I wrote that post I was just connecting the dots looking backward. One more thing that is very underappreciated is that Rust has an amazing tool chain, right? The build process is extremely easy. It has standard formatters. It's very easy to add your own lints. As a programmer, when someone else has taken care of your build process, it’s just great. A good build process is like electricity. You probably have forgotten that your whole home is electrified, but the day it starts failing, you remember. Rust makes build problems fade into the background like that.

Drew: One last question about your technical work. What's the most interesting or exciting thing your team is tackling right now?

Vivek: If you’ll let me, I have two answers.

Drew: Go for it!

Vivek: The first thing is product two, our declutter robot. People's homes are not only dirty, but they're messy. You have toys on the floor. You have wires on the floor. You have packages on your floor. You have shoes on the floor. This becomes an even more pressing problem when you have kids. There's this Netflix show by Marie Kondo all about tidying. It was a very popular show. After the show, she had kids and came out and said, I have given up on tidying! So this is a near impossible problem for humans. We actually had customers tell us that they want a hand that comes out of the vacuum robot, moves whatever is in the way, and then cleans the floor. So, we were like okay we’ll do that for you. So we are building on our existing stack, because the fundamental semantic understanding of the home that is needed is the same. We have solved that navigation problem. Now we need to build a system that can manipulate the environment. We are not tackling all of this at once though. We are going to start with shoes, toys, wires- things that are not brittle. We are not going to start by trying to lift your cups and mugs. So we're starting with something simple and we will try to keep the cost under $2,000 or $1,500 so that we can make it affordable to a customer.

Vivek: The other thing we’re doing is building a native voice interface for the first product. A lot of people are app fatigued. You know, they have like 45 apps. And here we come with yet another app. And not to mention you have to learn this new app interface to talk to the robot. Half the people just lose interest there. I don’t think voice is good for everything, but I think it really makes sense for our robot. For example, I don't think the voice is good for shopping, because you want to see all the options with prices and make comparisons. But I would like to just tell my robot, hey, Matic, clean up my dining table. We want people to have the fewest interactions possible with our robot and get maximum value out of each one so that they can save time and energy

Drew: Those are two very interesting projects. I do think you're right about voice too. I want to be able to just ask my robot to do things, not like open my app and have to click around. I mentioned before that a lot of our audience is people who are interested in companies where they might be able to work. So, I like to ask some questions around that topic. How would you describe the culture of the team that you work with?

Vivek: Okay. I actually never know how to answer these questions because this is my first job. We are passionate people who want to do R&D and ship real products at the same time. We don’t just do research. Research is fun, but at some point you want to solve real problems. One interesting thing is that the people who have joined Matic have mostly never done computer vision or robotics. That included me. I would say like 90% of us had never worked on it. So all of us have learned how to do computer vision and robotics and Rust in the company. A cool thing that comes out of that is a learning and teaching focused culture. People are very happy to help because someone else had to help them in the past. This also makes it so that new people are not shy of admitting that they don't know something. So the company has become a very good bed for learning.

Vivek: Our teams are organized more vertically than horizontally. What I mean by that is that you’ll have a team of size two or three that has to ship a feature to the end customer. Take voice as an example. Two people are working on voice. They have to make sure that the hardware works, make sure that the hardware is calibrated, do the literature review, write the code, train the neural networks, reduce the neural network size, get it on the robot, and test it. They're responsible for all that. They also have to code up analytics and answer customer tickets. So, it's extremely vertically integrated. It's not like, hey, I trained this beautiful model, someone else please ship it. So, people that work here have to become a very good researcher, a very good developer, a very good software architect, and also develop a very good product sense, because you have to actually understand what the customer wants. In fact, a lot of people actually join us because this is the promise we make to them.

Vivek: The last thing I’ll say about this is that we are not in a high-risk domain like the military, so we don't try to hit perfection. We ship a V0, iterate to V1, iterate to V2, and so on. And this is all enabled by the software first approach. With that said, people thinking about joining should know that customers are the hardest to please. If the robot makes mistakes, they only give you about three strikes. After that, the robot gets packed up and returned. It can be brutal.

Drew: Are you all in-person since you're doing robotics?

Vivek: Yeah, we are based in Mountain View, California. The team is all here. It’s a consumer robotics business, so each of us owns at least two robots. One is in our home, where we wear the consumer hat, and the other one is for the development that happens in the office. Some of us even own six to seven too, because they are doing reliability testing. Our hardware and software are co-designed heavily. For example, the robot is really, really quiet because of some cool things we’re able to do in software. It’s to the point where some customers think it’s not working. But it’s all just software tricks. When you're on a carpet, the robot knows, so it reduces its roller speed by 4x and the carpet noise is eliminated. When it's on hardwood, it reduces its vacuum speed by 4x and just keeps the roller speed. I’m not even sure if this kind of development would be possible in a remote environment.

Drew: It's fun to hear about those little optimizations. You can tell that the whole company cares about crafting a great product. So what do you look for when you're adding people to your team?

Vivek: We mainly look for passion. That is something which is very hard to teach. I always feel like hard work and courage beats intelligence. These are all buzzwords, but I have really seen this over the last five years. 90% of us have never done Rust, robotics, or computer vision, and we are shipping fast. So we heavily focus on attitude and learning over existing skills.

Drew: Since I was asking about new hires, what's the culture at Matic around compensation? So like salary, equity, benefits, time off. I know you probably can't say specifics about some of those, but how do you think about it generally?

Vivek: We have competitive salaries and good equity which makes them true owners. I think a lot of Silicon Valley companies want to hire owners and not advisers. The effects of hiring owners compound very fast. Giving ownership is not easy though. Just giving someone equity is not the only thing you have to do. The harder part of giving ownership is trusting that they can solve the problem and not micromanaging while still knowing the details. One of the ways I try to strike this balance is by spending a lot of time reviewing pull requests. And, if someone has written documentation, I try to read it very well. I don't have to write the code, but after the code is written, I can actually go into the details. So, I’m not a micromanager, but I am in the gory details.

Vivek: When it comes to perks and time off, I would say this is a fun place! We have a lot of fun activities happening around the office. We are not a company that is all work and no play, but we also like grinding hard. We do expect people to spend 50 plus hours regularly. At the end of the day, customers don't care that it's a hard problem, they just want the problem to be solved. But again, we are not this company where there is no concept of weekends. It's not a sprint, it's a marathon. We do have to beat the rest, but we will take water breaks.

Drew: Is there anything else you want to share before we finish?

Vivek: I guess I should officially say that we are hiring. And, it's across the stack. It's not only software, but it's hardware and manufacturing too. We almost want people to have multiple skills. Like if someone is working on manufacturing, we want them to actually maybe have software skills. Someone who is working on software we might want to have some hardware skills. Like I said before, we are trying to collapse the company structure because these are very hard problems and all of us have to upskill. So, if you want to learn a lot, this is a really, really good place.

Drew: Thanks Vivek for coming and speaking with so much enthusiasm about everything you’re doing!

Vivek: Thank you.

Drew: Hi reader. Post-interview Drew here. You might notice this interview is slightly different from what we've done in the past. We've been working hard to refocus as a company on our mission to become the best place to find Rust jobs. As part of that, we're trying to use these interviews as an opportunity to go out and do information-gathering for you, a Rust developer who might consider working at one of these companies. So, you'll notice I asked about things like the company's growth trajectory (it being a startup), its culture, what they look for in hiring, and of course about the type of work they do and how Rust is involved. We figure there are plenty of places you can go to hear more nitty-gritty technical Rust details. This is our unique contribution- giving you more data to make better career decisions. So, the question is, is that valuable to you? And, are we hitting the mark? Let us know: filtra@filtra.io

get rust jobs on filtra

Know someone we should interview? Let us know: filtra@filtra.io

sign up to get an email when our next interview drops