Greedy Algorithms: Part III
The User Experience
American Tire Distributors (ATD) warehouse associates are awesome — they have tons of expertise, they are hard-working and they are super collaborative.
They generally aren’t coders.
So, we decided to build an app that made it easy for them to select which trucks to receive and to help the forklift drivers slot the tires in the best bin locations.
The main challenge of creating the app was the design and user experience on the front end. We didn’t want to create a complex application that was too difficult to operate and didn’t fit in with our Standard Operating Procedures (SOPs). Hence, we developed an application that fits well in the day-to-day activities of the warehouse/operator/manager.
Our team is motivated to deliver simple designs and workflows, which we often term as the “Pacman experience” — anybody can play!
Optimization algorithms are triggered asynchronously from the application and send notifications via email and Slack when the moves are generated.
Technically, the app is built using:
- Flask — A Python microweb framework
- HTML5, bootstrap4 and Jinja2 — Responsive Web interface components
- python-wkhtmltopdf, JSbarcode — Used for generating custom PDFs and barcode
- Google Compute Engine — Dockerized App deployed
- Google Cloud SQL — Employed for data persistence and meta data
High Level Architecture:

Step 1: Select which truck to off-load

Step 2: Review suggested put-away locations

Step 3: Print put-away instructions for forklift drivers (including bar-code so they can use they hand-held devices)

After conducting interviews with power users of the app and subject matter experts, we built an interface that only requires what trucks they are going to offload. The system automatically captures that information in real time, scans and optimizes the warehouse in order to find the best possible locations for the tires, and generates a report that helps guide the operator to the best possible location for that SKU.
The Rollout (no pun intended)
At ATD, we don’t define success in terms of a great line of code in an app. We define success as people using and benefitting from our solutions and then measuring our results. Monitoring the results of our solutions helps our data scientists and developers who are working with the select warehouses receive feedback and develop a rollout plan that allows the integration of the new tool to merge with the existing workflows seamlessly.
We are on track to incorporate this tool with our larger warehouses across the ATD network. These locations will be using our algorithm and we will be diligently measuring activity levels, compliance and ultimately slotting improvements so “all-over-the-place” turns to “deliberate and strategic.”

This development cycle is typical for most of our use-cases and we look forward to share more with you as this system is rolled out. We look forward to sharing the next case study with you soon! Stay tuned.