Back to all articles
productpersonalizationqsr-tech

The Kiosk That Beat the Queue: My 0-to-1 Journey from Code to 4,000+ Devices

Janahan Thavendran··6 min read
The Kiosk That Beat the Queue: My 0-to-1 Journey from Code to 4,000+ Devices

I still remember the day we rolled out the first SmartKiosk.

It was 2018. We were standing in Hokkaido-Ya, a busy Japanese restaurant at VivoCity in Singapore. The kiosk was basically an iPad on a custom metal stand. Nothing fancy. The frontend code was mine written just weeks earlier.

Customers walked up. Tapped through the menu. Paid without talking to a single staff member.

And I was absolutely terrified.

What if the billing calculations break under load?

What if the payment terminal freezes?

What if the order never reaches the kitchen?

Spoiler: some of those things did break. But that's how you learn.

The Mess I Inherited

I joined TabSquare in September 2017. Back then, we had one core product: eMenu. An iPad-based table ordering system for fine-dining restaurants. Already serving 200–300 merchants. Solid product.

But scaling it? A nightmare.

  • High hardware costs for merchants.
  • Fragmented codebases across different markets.
  • A tiny engineering team, 3 in Singapore, 4 in Indonesia.

My first job was simple: stabilize the ecosystem and unify those messy branches into a single, scalable codebase. Took six months. But it cleared the runway for what came next.

The Opportunity We Couldn't Ignore

Quick Service Restaurants in Southeast Asia were struggling. Staff shortages everywhere. Language barriers at the counters: English, Chinese, Malay, Tamil. Families couldn't coordinate large orders. Elderly diners felt rushed and intimidated.

We saw a gap.

What if customers could order in their own language, faster than any counter interaction? McDonald's was rolling out kiosks globally, but Southeast Asia was wide open.

We had no dedicated team. No budget. Just a hunch.

So I wrote the first line of code myself.

Writing the first lines of SmartKiosk code

Building Version 1: The Hard Way

From zero to first live deployment took four months.

We built on a 13-inch iPad, reusing bits of our legacy eMenu logic. Backend was Java Spring Boot, had to handle new prepayment, billing, and order routing flows. Partnered closely with design on UX, making sure it worked in four languages: English, Chinese, Malay, Tamil.

But here's where I got obsessed: data.

I worked directly with our data engineering team to instrument everything. Every click, every item added, every cart deletion. We streamed it all via Google Cloud Pub/Sub into BigQuery. That data fed our AI recommendation engine, which became our secret sauce.

The hardest part? Hardware.

Integrating with receipt printers, order buzzers, and local payment networks like NETS terminals meant engineering custom binary protocols over local networks. Total uncharted territory for us. I learned the hard way that software is only half the battle.

The First Deployment: Chaos and Lessons

We launched at VivoCity. Adoption was immediate. 70–80% of diners chose the kiosk over the counter.

Then production hit.

Concurrent billing calculations buckled under peak weekend load. Orders sometimes skipped kitchen sequences. Total chaos.

We camped out in the restaurant for days. Rewriting backend logic. Stabilizing network interactions in real time. It was stressful, exhausting, and honestly? Thrilling.

On-site at Hokkaido-Ya, VivoCity, during the first SmartKiosk deployment

Two Big Decisions

As transaction volumes exploded, we faced two massive strategic choices.

Decision 1: Kill iOS

We initially supported both iOS and Android. But Apple's rigid hardware ecosystem made enterprise scaling a nightmare. Fixed screen sizes. Limited flexibility.

I made the call: deprecate iOS entirely. Go all-in on Android.

It wasn't popular with everyone. But it unlocked engineering velocity. We could ship custom business requirements faster, scale cheaper, and support more devices. Painful decision. Right decision.

Decision 2: Standardize Hardware

Early on, we used a fragmented mix of Chinese manufacturers. Remote updates were a nightmare. Troubleshooting was manual. Operational friction was killing us.

So I established a global partnership with Sunmi. Standardized Android hardware. Robust Mobile Device Management (MDM). Now we could push over-the-air updates, track device health, and handle payments uniformly across thousands of endpoints.

Zero manual intervention.

International Expansion and COVID

With the Android framework locked in, our hardware partner secured, and data pipelines humming, international expansion exploded.

Singapore. Australia. New Zealand. Malaysia. Indonesia. Brunei. Philippines. Thailand.

Then COVID hit.

In-store dining collapsed overnight. Traditional kiosk traffic evaporated. We had to pivot fast. Leveraged our core backend API to launch SmartQR, contactless table ordering, and unified online takeaway systems.

That surge forced a complete organizational restructuring. I scaled our engineering and product teams, transitioning my own role from hands-on engineering to Technical Product Owner. Hired and directed a Product Manager to own the post-pandemic app redesign. Promoted our Lead Android Developer to Engineering Manager to run cross-market squads.

Hardest part? Letting go of the code. But necessary.

The TabSquare team behind SmartKiosk

The Hardest Decision I Made

Throughout this journey, the toughest product choice wasn't technical. It was regulatory.

We'd built an AI-driven biometric login system. Facial recognition. Returning customers were recognized instantly, one tap to access past orders and personalized rewards. Users loved it. Felt like magic.

But global privacy regulations were tightening fast. Rapidly.

We faced a brutal trade-off: keep a highly marketable, cutting-edge feature that customers loved, or kill it to protect the business from future compliance and security liabilities.

I chose protection. We pulled the feature.

It hurt. Significant R&D investment down the drain. But it reinforced a vital lesson: the most sophisticated solution means nothing if it compromises compliance or erodes trust.

The Numbers That Matter

By early 2024, we'd scaled to over 4,000 active global devices.

| Metric | Impact | | :--- | :--- | | Global Footprint | 8 markets | | Active Devices | 4,000+ | | Architecture | Unified Android + Sunmi MDM | | Data Infrastructure | GCP Pub/Sub to BigQuery | | Diner Adoption | 70–80% vs counter | | Order Value Uplift | 25–30% via personalization | | Speed Improvement | 30% faster processing |

These aren't vanity metrics. They represent real businesses running more efficiently. Real staff spending less time on repetitive tasks. Real customers eating faster.

What I Actually Learned

Look, the cloud pipelines were important. Global supply chains mattered. Managing matrix teams was a whole new skill.

But here's what anchors me.

I was standing in a Texas Chicken outlet, watching a multilingual family interact with our kiosk. The mother selected options in Mandarin. The father reviewed the order in English. Their daughter customized her drink seamlessly.

The mother turned to me and said: "This is the first time we've been able to order a meal together without confusion."

That's the objective.

We don't build systems to cut costs or optimize latency. We build architecture to solve deep real-world friction. To create accessibility, reliability, and seamless experiences at scale.