UX · Product · AI Tools · Restaurant Tech

Grew revenue 10%.
Shipped early.
Solo.

Revi had no handheld POS. No offline capability. No full-service controls. I built the product, research to PRD to design to PR review, using AI tools at every step. Shipped a month ahead of the original date.

UX Researcher · PM · Designer
Stripe Reader S710
Compressed to February
Revi

Interaction Design

Check splitting that beats Toast.

Toast groups similar items together, so "split by item" doesn't actually let you split individual line items. Two lattes become one line you can't separate. We broke every item into its own draggable row. Servers split exactly what they need, drag between tickets, and close out faster.

Split payment — choose split by items or split by payments
Split items — drag items between sub-tickets
Split items — revert split and pay

Revi had a gap competitors were winning on.

Every restaurant we talked to had the same question during sales: what happens when the WiFi goes down? Revi didn't have an answer. No handheld POS meant no offline purchasing, no table-side service. A hard stop in full-service restaurants and a meaningful gap against competitors.

Beyond offline capability, full-service restaurants needed seating controls and kitchen display system (KDS) integration baked into the handheld. Our sales team was hearing this directly from operators who were being pitched competitive upgrades.

I wore every hat. And held myself accountable for all of them.

This wasn't a typical "designer on the team" engagement. I ran the research, wrote the epic and PRD, defined requirements, broke work into dev tickets, drove design through iteration, and sent PRs for review alongside the engineer. That kind of full-stack ownership wasn't planned. It emerged because the project needed it and AI tools made it possible.

An AI-native workflow, research through code review.

Instead of a conventional design process, I built an AI-augmented pipeline that let one person do what normally takes four.

Restaurant Owners + Sales Research Loveable (rapid iteration) Client Testing PM GPT (epic / PRD / tickets) Builder.io Figma (polish) Builder → Ship
01

Research: operators and sales, not just users

I talked to restaurant owners and servers to map what competitive solutions were winning on. Then I worked with our sales team to understand what features would actually move deals, not just what users liked in a lab. That dual lens shaped the entire scope.

02

Iteration with Loveable: fast, throwaway concepts

I used Loveable to generate rapid interaction explorations and stood those up with real clients for reaction testing. This gave us signal early, before anything was in Figma. The goal was to fail fast on bad ideas and invest in the directions that got instinctive buy-in.

03

PM artifacts: I wrote the epic myself

I built a PM GPT trained on Revi's product context, then used it to write the epic, PRD, requirements, and dev tickets. I drove every decision. The AI handled the formatting and structure so I could stay focused on the substance.

04

Design in Builder → Figma → Builder

I built the core designs in Builder.io, sharpened interaction details in Figma, then returned to Builder to prep for shipping. Dev review was collaborative. I could contribute to PRs instead of just handing off a spec and waiting.

The tradeoffs that actually mattered.

Midway through the project, our team was concurrently pulled onto the Revi OS project. The timeline pressure was real. I had to be tight about scope, packaging small workloads when direction changed quickly and making hard feature tradeoffs to protect the February release.

Tradeoff: Cash Handling vs. Labor Integration

✓ Keep cash handling
Every restaurant being sold a handheld already had a Revi point-of-sale cashier unit. Orders sync automatically. Zero new infrastructure needed.
vs
Employee pin-in/out + 7shifts integration. Deferred for v2, with a clear handoff plan.
The timeline call: Original release date was March. I restructured the sprint packaging to ship in February, a full month ahead. Everything that wasn't core to offline purchasing and full-service controls moved to the backlog.

Time clock on a shared device. The reason we deferred 7shifts.

The 7shifts integration would have given us third-party labor management. But our partners didn't need a sync. They needed clock in/out that actually worked on shared hardware. Multiple employees, one terminal, no personal logins. The real problem on the restaurant floor.

Building our own time clock meant we could design for the actual environment: tap to clock in, track breaks without navigating away, see the full shift log, and hand the device to the next person cleanly. Partners could replace their separate time tracking system entirely. One less device, one less subscription, one less thing to train staff on.

Shared Device UX

Clock in/out on a device that isn't yours.

Manager view shows the full team's activity. Individual view shows only your session. One tap to clock in, one tap for break, clean handoff to the next employee.

Time clock — manager view with shift activity log
Time clock — active session with break and clock out
Time clock — confirm clock out with continue button

Shipped ahead of schedule. Covered a competitive gap.

1 mo
ahead of original release date
5K+
merchant locations now with offline-capable handheld POS
+40%
partner utilization gained across the Revi platform
3-in-1
roles held: researcher, PM, designer on one product

What I'd change if I went back.

Revi's design system carries years of diverging designer opinions. Even in its lightest implementation, it still feels like a collection of decisions that never quite agreed with each other. I shipped within it, but if I were starting fresh, I'd use AI to rebuild the system from scratch so the product felt cohesive.

I'd also push harder to write more of the code myself. I was sending PRs, reviewing diffs, using Builder, but having Claude Code in my toolkit now, I'd handle more of the implementation directly. Waiting on dev time for UI fixes I could have shipped myself cost momentum more than once.