Case study · mobile & fulfillment

Pick and Pack / Trinio OS

Fulfillment operations for omnichannel retail: staff in a store or warehouse pick, check and hand over orders, using a React Native app on the floor and a Next.js dashboard on a desk. The app runs in conditions software usually gets to ignore: poor connectivity, physical interruptions, and exceptions that have to be handled rather than hidden.

Context

I worked on web and mobile features of Trinio OS, an omnichannel commerce and fulfillment platform. The mobile app (React Native + Expo) is the working tool of the people doing the picking: they scan item barcodes, confirm quantities, handle items that are not in stock, and move orders through the fulfillment lifecycle.

Problem

My responsibility

Feature-level work across the web dashboard and the mobile app: picking and checking flows, barcode reading, exception handling, resuming interrupted operations, offline behaviour with local persistence, push notifications, plus continuous UI, UX, performance and business-rule improvements. I worked on top of existing platform architecture and patterns.

Representative work

How I approached it

The pattern I used consistently: understand the operation first (who does what, on which device, under which constraint), then map it onto existing platform patterns instead of inventing a new one. State that must survive interruption is kept locally and treated as authoritative until the server confirms it, so the operator never loses a step. Exceptions are modelled as explicit states in the UI rather than as failures. For anything repetitive and user-facing, I measure the cost in taps and in perceived latency, not in elegance.

Decisions and trade-offs

Result

Operational rather than numerical: the packing flow stopped losing the operator's work on interruption, exception cases gained a defined path, and the app became consistent enough to teach.

What I learned