MLMaxim Lazovsky Head of Operations
ENRU

All projects

Gostockup project · since January 2026 · beta

Warehouse app

How manual picking errors turned into our own web app for the warehouse: from a spec that went through eight versions to a test order through every role.

Every day the warehouse packs dozens of orders: frozen, dairy, dry goods, items sold by weight. Picking was manual, and human errors hit in two places at once.

Customers got the wrong item or not everything. And stock on the shelves drifted from the numbers in the system, to the point that we once had to do a full stocktake. I needed a tool that walks the packer through each order step by step, so skipping an item or adding an extra one simply isn’t possible.

Project rule

Spec first, then code

The app started with a spec that went through more than eight versions. Every new requirement goes into the spec first and only then into development.

An order’s path through the warehouse

  1. Queue a packer takes an order, it locks for everyone else
  2. Scan every item with a scanner, a “5 of 5” counter
  3. Weigh items sold by weight get weighed
  4. Photo the boxes are photographed
  5. Invoice print the invoice, enter the box count
  6. Label the shipping label
  7. Carrier the package goes to the carrier

The store status updates on its own: “picking”, “ready”, “shipped”. Stock is deducted and the customer gets a tracking number only after “shipped”.

Roles

Everyone sees their own part

Orders from loyalty subscribers are packed first, the rest in order, oldest to newest.

Role What they do Sign-in
Packer Packs orders from the queue to the label Personal PIN
Supervisor Resolves errors, reassigns orders, marks shipments at the end of the day Personal PIN
Office Reviews logs, creates warehouse accounts Password
Admin Full rights; every change requires a reason Password

Error-proofing

A mistake shouldn’t reach the customer

I put these rules into the spec before the developer wrote the first line.

Three wrong scans

Call the supervisor. They enter their PIN and decide what the item is and who made the mistake.

Item not on the shelf

Anything not scanned drops from the order, and the customer is refunded with no calls or emails.

Order changed mid-pick

A red banner, and the packer sees the updated list right away.

Every step logged

Who did what and when, plus box photos. The office sees the order’s full history. Log entries can’t be deleted.

The supervisor closes shipping

At the end of the day they mark the packages the carrier picked up. Stock is deducted only after the real handoff.

Read-only after “ready”

The supervisor can edit an order until it’s ready to ship. After that, only the office and admin can change it.

For any language

One next step per screen

Many people on the warehouse team aren’t native English speakers. So the interface runs on icons and big buttons, with an English, Russian and Spanish switch. Every screen has just one next action.

Testing

A test order through every role

Once the app worked, it didn’t go straight to the warehouse. A test order went through the whole path as a packer, then a supervisor, then an admin, checking every button.

We found small interface bugs. For example, the counter didn’t update during scanning, and a canceled print still counted as done. I put everything into a list for the developer.

What’s next

Partner items, stats, scales

For orders with partner products that aren’t in our warehouse, I designed a separate role. Its spec is already written.

Packer

Doesn’t see partner items and packs only ours.

A separate staff member

Handles the partner part of the order.

Supervisor

Sees the whole order and can’t hand it to the carrier until both parts are ready.

Next steps: a stats screen and automatic weighing on the scale instead of manual entry.

What I took from it. You can’t debug a warehouse on the fly: every mistake goes straight to a customer or into the stock count. So the order is always the same: requirement in the spec, development, a test order, and only then the warehouse.

The full Gostockup case

The fastest way to reach me is LinkedIn

My full career and notes on the work are there too

Message me on LinkedIn