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.