03 · Logistika Urbana · native Android & iOS
A point of sale that keeps selling when the network does not.
- Role
- Technical Lead (contract)
- Period
- Dec 2024 — present
- Engagement
- Remote contract
- Team
- Led the mobile and POS developers in 2024–25
- Location
- Mexico City · from Lahore
- of 171 commits on the Android POS
- 144
- of 147 commits · Kotlin driver app
- 147
- of 87 commits · SwiftUI driver app
- 87
- native apps: POS, 2 driver apps, kiosk, store ops
- 5
counted, not estimated · no client business metrics
The ERP is the back office. These apps are what people on the shop floor and on the road actually touch: cashiers at a store counter, drivers delivering orders, and staff looking up and receiving stock.
The POS sells the same catalogue as the Yoon Lab website, from the same stock. The physical store is not a separate business with its own system. It is the same inventory, reached from a counter instead of a browser.
A point of sale is the one system in a retail business that cannot go down. Connectivity in a store is not guaranteed, and a terminal that stops taking payments when the network drops costs money at the counter.
It also has to be trusted. A shared tablet must know which warehouse it belongs to and who is using it, without a full login for every sale. And it has to drive hardware (a receipt printer, a scanner, a customer display) that does not behave like a browser API.
- 01
Offline-first by design
The POS is Kotlin and Jetpack Compose, with a Room database on the device. Each ticket is written locally first and synced by WorkManager when the network is available, so a dropped connection does not lose a sale.
- 02
Device pairing and a PIN per shift
A tablet is registered once by a device hash and bound to one warehouse. After that, staff sign in with a short PIN for each shift, not a full login for each sale.
- 03
Real counter hardware
The app drives the peripherals directly: a Star Micronics TSP100III receipt printer, a USB customer display, and barcode and QR scanning.
- 04
The end of the day, not only the sale
The work at a counter does not end at payment, so neither does the app.
- Shift open and close with cash-drawer reconciliation, pay-in and pay-out tracking
- Refunds against an existing receipt, and email receipts
- A driver handover flow for delivery orders, cash collection and restock
- Crash reporting with Sentry; signed releases through the Play Store pipeline
- 05Dec 2025 – Mar 2026
Native driver apps on both platforms
I rewrote the driver apps natively and am the sole author of both current versions: Kotlin with Jetpack Compose, and SwiftUI. They replaced earlier React Native and UIKit apps. Jobs are assigned by road distance, computed on the self-hosted OSRM server.
- Live location and job updates over WebSockets
- Masked calls between driver and customer through Twilio Voice (CallKit on iOS)
- Maps, CameraX for delivery-proof photos, push notifications, English and Spanish
- Crashlytics, Remote Config and a forced in-app update path on Android
- 062026
Store tools
Smaller native tools for the store floor: an Android product-lookup kiosk (Compose, ML Kit barcode scanning, a USB scanner, voice search) and a SwiftUI store-operations app for iOS (VisionKit scanning, PencilKit signatures, SwiftData).

- 144 of 171 commits on the Android POS (December 2024 to today)
- Sole author of the current Kotlin driver app (147 commits) and SwiftUI driver app (87 commits)
- In 2024–25 I led the developers working on the mobile apps and the POS
- The backend side of every app: the APIs, WebSocket consumers and dispatch logic they call
- These are private client apps, so there are no code links. The commit counts are mine, from the git history.
- The store-operations iOS app is built but not yet deployed (October 2026).
- I contributed only part of the earlier React Native and UIKit driver apps; the numbers above are for the current native rewrites.
Platform, DevOps or AI-platform role? Let's talk.
I build and run production systems on AWS, and I deploy and operate models in them. I'm looking for a senior platform, DevOps or AI-platform role, and I'm relocating to Japan in 2027. A résumé and references are available on request.
- Role
- Platform & AI Engineer · Technical Lead
- Location
- Lahore, Pakistan · Relocating to Tokyo · 2027
- Languages
- English (professional) · Urdu (native) · Japanese (beginner, studying daily)
- contact@codewithmuh.com