Co-Founder & CTO (company aquired) — VendScreen
VendScreen is a network of interactive touchscreen devices powered by a proprietary cloud-based platform. The screens retrofit on vending machines to enable payment, deliver information about products, and provide a more interactive consumer experience that is more like attended retail.
I was one of co-founders of VendScreen and served as the company’s CTO from inception in 2011 through January of 2014. We entered a vending market crowded with cashless payment options – including some heavyweights with known brands and a four- or five-year head start!
Our goal was to differentiate VendScreen from standard cashless devices and create a disruptive message in the marketplace. We told operators, “If you’re considering cashless payment, don’t make a move until you check out VendScreen.” VendScreen offered all the benefits of cashless payment with the added WOW factor of a digital touchscreen.
VendScreen was certainly one of the most interesting, comprehensive, and challenging IoT ecosystem platforms that I ever built.
The main component was a custom Android credit card/terminal device that was built to fit into the standard cutout on modern vending machines usually reserved for the payment system (bill acceptor or card reader). The first rev of the unit contained a single-board computer and a custom IO board that had power management and interfaces to various vending machine interfaces (MDB and DEX). The device also had a built-in cellular module for cloud connectivity.
The VendScreen devices “talked” to a cloud infrastructure hosted on Amazon that included a web application for configuring the devices and managing key content like nutritional data, product images, and on-screen advertising.
There were also a few mobile apps aimed at vending operators to support installing the devices and tracking service calls at machines. These apps also communicated with the cloud infrastructure.
The entire system had integration points into a credit card processor for card acceptance. In our case the devices talked directly to the processor allowing for less scope for PCI and faster transactions. Other integration points included an accounting system for billing and settlement and the vending industry’s NAMA VDI, which enabled the system to transmit sales data back to vending operators’ vending management software.
While there were many challenges and triumphs, the biggest achievement was getting the entire system from a few prototypes (12) to a production system ready to deploy (first 500 units) in about six months. Here are a few of the challenges we overcame along the way:
- Holding back on deploying a single unit into the field until we had full capabilities to remotely debug each unit using SSH and push full application-level and OS-level updates (no small feat :-). We used a VPN with fixed IP addresses in AWS integrated with our carrier networks.
- Numerous issues hardening the Android kernel and getting it ready for distribution as an embedded device (vs. consumer). Of course, that included making it hack proof.
- Working through several issues regarding spotty cellular connectivity and issues with modem firmware, the Android RIL (Android’s term for modem driver), and latency.
- Getting the system to communicate with several thousand variations of vending machines and board firmware releases that are supposed to follow common standards but never do exactly!
- Incorporating one of the smallest hidden NFC antennas into the design to support Apple Pay and Google Wallet.
- Struggling through issues with MySQL and eventually migrating to a Postgres database that was more suited to high transaction volumes.
- Configuring true “auto-scaling” in AWS to automatically spawn more servers to handle high loads during certain times of the day.