Full-Stack Android Engineer — Self-Service Kiosk (MVP)
Job Description
About the role
We're building an internal retail self-checkout system on Sunmi K2 kiosk hardware, and we need a versatile engineer to ship a working self-checkout MVP for use in our own stores.
The role spans the full stack: you'll own the product end to end, from the on-device Android app to the backend that powers it. Because the work touches every layer, we value breadth and sound judgment over deep specialization in any single one. This is a lean MVP, not a large team — you should be comfortable making pragmatic calls and keeping the stack simple.
What you'll do
- Build and own the Android kiosk app (Kotlin) that runs the self-checkout flow: scan items, build the basket, take QR payment, print the receipt.
- Integrate the Sunmi SDK to drive the built-in hardware — the 1D/2D barcode scanner and the thermal receipt printer.
- Lock the device down: pin it to our app, hide system navigation, survive reboots, and require a PIN to exit.
- Keep the app usable when the network is flaky — cache the catalogue and pricing on-device and hold transactions locally until they sync.
- Stand up a lightweight backend and API for the product catalogue, pricing, and basket/transaction records, and sync it to the fleet.
- Deploy and update on real hardware, pushing app updates over the air via Sunmi's remote device management platform.
- Own the whole loop: design, build, test on-device, ship, iterate.
Must-have skills
- Kotlin + Android SDK, with the ability to build clean, touch-first UIs (Jetpack Compose preferred).
- Asynchronous Android work using Kotlin coroutines — you'll be juggling scanner input, printer calls, and network I/O without blocking the UI.
- Local persistence (Room / SQLite or similar) for an offline-tolerant catalogue and transaction records.
- Consuming REST APIs from the device.
- Hands-on integration with a hardware or device SDK — printer, scanner, payment, or similar peripherals over Android services.
- Genuinely full-stack: able to build a simple backend, API, and datastore end to end. Stack is open (Node, Kotlin/Ktor, Python, etc.) — we care that you can own it, not which framework you pick.
- Comfortable operating with ambiguity and shipping a lean MVP.
Nice to have
- Working knowledge of Android lock-task / kiosk mode, Android Enterprise, or MDM (the Sunmi-specific pieces are quick to learn on the job).
- Prior POS, kiosk, or self-checkout experience — Sunmi devices a strong plus.
- Experience with OTA update / fleet-management tooling.
- Basic crash/error reporting or remote diagnostics, since the kiosks run unattended and you'll want to know when one breaks.
The hardware, for context
The kiosk is an Android-based Sunmi K2 with a built-in barcode scanner and thermal receipt printer. Because it's standard Android underneath, vendor-specific code is only needed for the peripherals — the rest is ordinary Android work. As an internal system, payment is limited to QR / scan-to-pay rather than full EMV, so there's no card-payment certification involved.
Apply: admin@ccs.mv