In 2012, I went to a friend’s birthday party where the night started at Michael Minna, a very high end restaurant in San Francisco. I was a little surprised that the host would pick the restaurant given that he and his guests didn’t usually frequent such expensive venues. In the end, we sat at a very large round table with somewhere between 12 and 15 people.
Now, the shitshow started immediately. Many of these people had never been in such an establishment and didn’t know how to appropriately carry themselves. The waiter tried desperately to take drink orders before getting entirely exasperated. As I’ve done throughout my life, I took control of the situation. I brought the waiter over, wrestled my friends into behaving, ordered some appetizers for everyone, and basically handled all of the interactions with the restaurant staff all night so as to cause them as little a nuisance as possible.
However, that also meant at the end of the night they slipped me the check. It was $8,000.
I quickly asked how many cards we could split it on. The answer was 4.
Now, these were the days before Venmo, Cash App, or Zelle. And the variance in orders around the table couldn’t be more dramatic. There was a young couple so strapped for cash, they split a single beer. Then there was the guy who sold his startup who ordered filets for him and his wife along with two very expensive bottles of wine.
Again, as I usually do, I didn’t panic. However, everyone else was severely inebriated and everyone was apt to get to the next destination (a nightclub). I first scrambled to make notes about what each person actually owed (and of course they all argued with me since they didn’t factor in taxes and a mandatory 20% tip) and then grabbed the five most well off people at the table to decide what to do. They were surprisingly more frustrated than I was but agreed to chip in. In the end though, I ate a huge portion of the check at a party I was just invited to because I tried to prevent the wait staff from having a nightmare of an evening.
However, my friends were all good people and over the next few months I basically ate and drank for free. They all appreciated the loan and I got paid back reliably.
But this isn’t about them. That night I wondered: in the world of smartphones, how come we cannot pay using them at a restaurant?
I had been looking for a good idea and felt I had one. I set to work and created a really fantastic web app where you scanned a QR code to get to your tab. Multiple people could scan the code and then select which items were theirs. You could even split items as many ways as you wanted. While you were all interacting with the check, it updated in real time and showed who had picked what so you could all sort out that everyone was paying appropriately. Then, once everything was covered, it would charge every person’s card simultaneously.
It was probably the best demo I’ve ever made and people adored it. Then I hit a brick wall.
See, in order to display a check, you had to get what was on it from the restaurant’s point of sale (POS). At the time, this market was cornered by very old systems such as Micros and Aloha. And they did not play well with other software. In fact, during my research, I found that basically no one could figure out how to interact with them despite dozens of other companies trying to solve the same problem I was. Except for one: SubtleData.
SubtleData was a company out of Austin where its explicit goal was to allow apps to interface with restaurant POS systems. And they had cracked the code on how to do it. I started using them and found they had a very unique problem. See, their CTO was very good at figuring out how to interface with POS systems, but knew very little about modern APIs and how to create a solution that developers would implement. Rather than using a typical JSON API using best practices, he had implemented his own data request and response format that made very little sense and required multitudes more effort to learn and use. So in my implementation of their API, I translated it into a much more developer friendly version. SubleData took notice. They demoed my API to a big client who immediately said that was how they wanted to integrate. SubleData purchased my work and hired me to rebuild their API.
Sadly, SubleData soon went out of business due to a patent troll. However, I was the primary contact for most of their customers so I set about implementing a new manner of interacting with POS systems that went around the patent. It took around 8 months of development, but I got there, and thus Omnivore was born. It sold in 2022 for $50mm and its API powers 30,000 restaurants today.
However, what has shocked me the most is how much the POS landscape has changed. See, there had been many attempts to create new restaurant POS systems since the entrenched ones were awful.In fact, I had two friends that were CEOs of two different companies making new restaurant POS systems. Both failed.
See, the POS doesn’t just keep track of what’s ordered. It’s also a full accounting suite, personnel management application, and supply chain calculator. These are very complex systems with very unique requirements. For instance, a very large company trying to make inroads did a lot of user testing and realized that iPads were not optimal. Servers at restaurants quickly memorize the layout of the touchscreens they use and get very fast at using them, especially in bars. Due to limitations with iPad software, they could not update the screen fast enough while servers navigated it to keep up with human muscle memory. So they went with a Windows solution with a touchscreen instead. This is one example of the tremendous thought that has to go into designing these systems.
But today, I barely see Aloha and Micros anywhere. Here in Boston, almost everyone is on Toast. Clover is another great POS. Despite decades of companies failing to replace Micros and Aloha, it’s actually happened. It’s very fun to see. Perhaps my favorite part is that Toast actually does put QR codes on their receipts that you can use to checkout with your phone. Their software is nowhere near as feature complete as mine demo was (it doesn’t have any capacity for splitting checks) but the general idea is there. It only took 12 years for my idea of paying your restaurant bill with a QR code came true, but it did.
It’s been very fun to be an expert in this field and watch it grow so I thought I’d share the ride with you. Enjoy your Sunday evening.