UPS Store kiosk

The store's self-service print and ship kiosk needed replacing with something the store could update without a vendor.

Period
2026-06 to present
Status
Live
Stack
Python, Flask, Rust, Tauri v2, Square
Ownership
Sole builder for a client

Problem

The store’s self-service kiosk was a closed vendor unit. The replacement had to take payments, print, update itself safely on a machine nobody logs into, and never leave a customer’s session open for the next person.

Role

Kavish scoped it with the store owner, built it, and operates it from the server side while working at the store.

Built

A signed updater with no logon

A private release proxy hands each device its own bearer token; updates are signed and installed before logon.

Walk-away sessions and usage billing

Five idle minutes end a session and bill only up to the last input. Every plan pays for the minutes used, with a one-dollar floor.

Sandbox first

The floor unit runs against the payment provider’s sandbox until the owner flips production. The cutover was rehearsed on a virtual machine before the first install.

Result

Live on the store floor. Usage billing, the walk-away rule and an idle screensaver shipped in October 2026; shell version 0.2.10 installed October 2026. 848 commits; 703 Python and 118 Rust tests as of August 2026.

Collaborators

The store owner (requirements and acceptance); AI coding agents (Claude Code, Codex): drafted implementation from specs and plans he wrote, under his review and tests.

What stays private

Customer data, payment configuration, device tokens and the store’s pricing.