← All workHire me

04 / 052025 – 2026Client

Multi-tenant POS

A point-of-sale and inventory platform for retail chains: every shop gets an isolated database, an offline-capable web cashier, a desktop cashier app and a Telegram storefront.

Sole engineer on all four apps · backend, web, desktop and mini app

apps, one platform
4
bugs fixed in audit
57
products, Cyrillic/Latin search
3,292
STORE #014— sale —

Milk 1L12 000

Bread4 500

Coffee38 000


TOTAL54 500

Cashier · Shift 2● online

UZSUSD

FRONTBEHIND
⟷

Problem

Small retail chains need a cashier that keeps selling when the internet drops, prints on cheap thermal printers, handles two currencies, and keeps each shop’s data strictly separate. Off-the-shelf systems were expensive and didn’t speak Uzbek or Russian well.

What I built

The whole platform, alone: a multi-tenant Django backend, an installable Vue web cashier, a native Flutter desktop cashier for Windows and macOS, and a Telegram Mini App storefront. The client’s name and screens stay private.

Front · Web & desktop

Behind · Servers

Shoppers and cashiers type in either script. A transliteration fold plus a pg_trgm fallback makes “сут” and “sut” find the same product; 3,292 products were backfilled.

Hard problems

  1. Strict tenant isolation — a self-run security audit hardened the boundary between shops: every token is bound to its tenant and checked on every request.
  2. Double sales on flaky networks — idempotent sales keyed by a client-side UUID and locked stock mutations.
  3. 57 confirmed bugs (4 critical) fixed across 29 files in one audit pass.

Results

Four apps on one platform in daily use by the client’s shops.

06 · Contact

Let's build
something.

available — open to remote — UTC+5. Usually replies within a few hours on Telegram.