About this series
I’ve been working on general purpose robots with Everyday Robots for 8 years, and was the engineering lead of the product/applications group until we were impacted1 by the recent Alphabet layoffs. This series is an attempt to share almost a decade of lessons learned so you can get a head start making robots that live and work among us. Previous posts live here.
So you have to do a demo
If you work with robots, at some point you are going to have to do a demo for an Important Person. This could be a VC, a potential customer, an executive or a journalist you hope will write the “Cool New Robot Company Doing Awesome Things” article instead of the “Welp, I Guess Robots Are Still a Long Way Off” article. Unfortunately for you, robots are famous for failing spectacularly right when you want to demo them. I can’t change that, but I can make it more likely your robots run at their best. Each item on this list was added because of a demo catastrophe, so hopefully this can save you some heartache.
The Checklist
Three Days Before: Make sure it will work.
Run your whole demo including practicing what you will say. Get someone to pretend to be your VIP and ask hard questions.
Make sure that the wifi is good. Assume the wifi will be much much worse on the day-of (especially if it’s a demo for a group who will all have phones in their pockets and be blocking signal with their big meaty bodies.) Think about ways to reduce wifi reliance, add wired emergency backup plans or bring in your own router / network if needed. If you aren’t paranoid about wifi, it will sink your demo.
Make sure your demo works 3x in a row. If it doesn’t even work reliably without demo pressure, you should go for a video instead.
Freeze the code you are going to use for the demo now. Ignore the temptation to demo the thing you are super excited about because you finished it the night before the demo. That feature is new and exciting to you, but everything is new and exciting to your VIP. Demo the stuff you were super excited about four weeks ago, that is now old hat and reliable.2
Morning of: Print out your checklist and get a pen
You will be so tempted to just read the checklist on your computer, but on the day, when stress is high, you are much much more likely to miss a step if you don’t cross things off a piece of paper. (Also, if it is a more complicated demo with multiple people running things they should each have their own checklist with their name on it. Feels stupid. Really helps.)
“Where are the robots?” “Shoot! I knew I was forgetting something”
T-minus 1:40: Bring your stuff to the demo location
Your robot plus two spares (if you have them)3
Extra batteries (if your batteries are swappable)
Chargers to keep your robots charged (and extension cords if needed).4
The laptop you’ll use to run the demo and debug whatever breaks at the last minute
A charger for that laptop5
A cart or table or something to put the laptop on6
Your standard debugging equipment (cables, screwdrivers, allen wrenches, carts for moving dead robots out of the way etc.)
Whatever else you need (and added to your checklist when you printed it).
Bot23 died, can you help me move it out of the demo area? I forgot the cart.
T-minus 1:30: Bring the robots online
Powered up
Connected to the internet
Localized (if applicable)
Connected to your visualizer/debugger/textlog-viewer
If you can, now is a good time to turn off any sleep-mode or screensaver on the laptop.
T-minus 1:15: Run the demo on each robot
You don’t have to get through the entire demo, if it takes a long time, but enough to see the main action happen.7
T-minus 0:45: Check battery levels
If any robot is below 50%, swap the battery. If that means you have to restart it, then do it one at a time, getting a robot all the way back up and ready to go before bringing the next one down.
T-minus 0:30: Start each robot again
You don’t have to get to the whole demo, just verify that they are still able to move.
T-minus 0:15: Start each robot again
This one is kind of optional, but it makes me feel better.
T-minus 0:10: Clean the space
Remove any tape you put on the floor to specify exactly where things should be.
Hide tools laying around or anything else that makes it look like demos are hard.8 The point of all this work is to make it seem effortless.
Oh hey, we were just running this robot for no particular reason, want to watch?
T-minus 0:05: Start the primary robot one more time
Verify that it moves off its starting location and then stop it and put it back.
T-minus 0:03: Last checks
Make sure your laptop is ready and unlocked
Double check your connection to all three robots
Get the command to start the demo up on your laptop.
» Third Failed Password Attempt:
The Wait
This is the real reason you brought those batteries and chargers. You are now waiting for the VIP to show up. The more important the person, the more likely they are to be 2 hours late. If you can, schedule the demo early in their visit because looking at slides and Q&A are very likely to go long.
As you wait, if robots drop below 50% battery, replace the battery (one robot at a time). Make sure your laptop is plugged in.
Get an accomplice. You want someone who is following along with the VIP but is not the person doing the talking. This person will quietly text the demo groups letting them know the status and estimates of how long before they arrive at various stations/demos. This will help make The Wait more bearable and also let you make better decisions about when to swap batteries, etc.
When you get the text that they’re on the way:
Unplug the primary robot’s charger and hide it behind a plant or something.
Scan the last 30s of text logs to make sure everything still looks good.
Check that your visualizer is connected.
Double check that your robot is still correctly localized.
Focus your cursor on the command to start the demo so all you have to do is press ‘enter’.
During the demo:
Even with all this prep, it’s still a robot demo and something will probably go wrong. You want to assign the following two roles to different people:9
The Talker: You want someone who is good on their feet and also has a deep technical understanding of the robot. If something goes wrong it is their job to explain what's happening, why it happened and why it isn’t really a big deal (“Did we mention that this is an early prototype?” “I think that's fixed in the next version of the hardware” “Some of these things are just hard problems, but progress is moving along”).
The Fixer: This is someone who is ready to fix issues as they happen and make the call of when to swap to backup robots. They run the demo. (Protip: it's almost always better to swap robots than debug during a demo).
Yeah, so the robot is, umm… just give me a sec…. It's probably not working because… wait, no…. huh.
This checklist might seem like a lot, and that's because it is a lot. Demos-done-well are a huge distraction to you and your team and likely cost 2-3 people their entire day, so it's worth being picky who you promise demos to.
“Hi, I’m an Angel investor who doesn’t do hardware startups at all, but wanted to see cool robots.” “Great, we’ll spend a whole day prepping for you to see it!”
Watching a video and looking at powered down hardware is 100x cheaper than a live demo, so consider that. Though it is also much less compelling, so during the life of your startup you will probably have to do many high stakes demos. So good luck, use the checklist, and may the odds be ever in your favor.
Thanks to Rebecca Schofield (who ran the most complicated demo I’ve ever been a part of) and Kim Kleiven for reading early drafts of this.
People are probably going to ignore this advice because it is really really hard to resist fixing things for a demo. But trust me, you’d much rather be saying, “Oh yeah, we know about that problem and it’s fixed in the new version of the code” than “hmm. I don’t know why nothing is happening. It might be the thing I added late last night”.
Two spares might seem like a lot but this is a true story: we were giving a demo to Larry Page and Sergey Brin and we got the text that they were walking to us. We started our primary robot and nothing happened. No problem, we have spares, so we started our first spare and it literally caught on fire. That is the only time one of our robots ever caught on fire. We quickly unplugged it, fanned the electronics-smoke away as best we could and started robot number three, which worked, and the demo was going merrily as they walked around the corner. So have two spares, if you can.
By this time you should know how many robots you can charge on a standard circuit without tripping the breaker. At Everyday Robots it was “two”, so to have three robots we needed to find two different circuits to charge them on.
This one is so painful: when the robot is good to go but your laptop dies just when you want to start. I’m wincing thinking about it. If power isn’t handy where you are waiting, consider investing in a big battery/inverter.
High stress debugging while typing one handed: not recommended.
Decide what the ‘main action’ for your demo is and write it down on the checklist.
After a particularly intricate demo of wiping tables in a cafe (many robots, many people), the VIP complimented me on how mundane all this had become and how so many people in the cafe were so blasé about the robots. In reality many of those blasé people were our techs ready to support the demo pretending to be casual diners.
I’ve been both of these roles at the same time and am getting anxious just thinking about it.