Automation of Non-Inventory Asset Management System
- For a major retail group, Python developers from Pynest created a system for tracking and managing non-commercial assets, such as uniforms and personal protective equipment (PPE). This system automates the processes of managing, tracking, and replacing uniforms based on events related to employees (onboarding, transfers, terminations). The primary goal was complete automation, requiring minimal involvement from employees beyond updating reference data.
Client
Our client is a prominent retailer within the European Union, recognized for its leadership in the food and general merchandise sectors. Operating an extensive network of retail chains, the client serves millions of customers across multiple countries, with a focus on accessibility, quality, and competitive pricing.
Their business model emphasizes streamlined operations, inventory management, and customer-centric innovations. Known for prioritizing efficiency and adopting cutting-edge technologies, this client is constantly advancing its internal systems to support rapid growth and maintain a strong market position across the EU retail landscape.
Detailed information about the client cannot be disclosed under the provisions of the NDA.
Challenge
The client required an automated solution to manage the tracking, distribution, and replacement of uniforms and PPE for a large, expanding workforce. The existing manual processes were error-prone and inefficient, causing delays and inventory shortages. With the company's growth, the volume of employee events (onboarding, transfers, terminations) surged, overwhelming their legacy system.
They needed a high-performance solution that could handle large transaction volumes, integrate with internal systems, reduce manual workload, and ensure data accuracy across multiple locations.
Objective
The project’s goal was to create a fully automated tracking system for uniforms and PPE, capable of monitoring all employee-related events (hiring, transfer, termination) and automatically assigning the appropriate uniforms and protective gear, thereby reducing manual errors and enhancing process efficiency.
Solutions Implemented:
The solution was developed entirely in Python and consists of several microservices:
Event Processing System
Built on Kafka, this service receives new records, automatically processing them to identify employee-related events.
Uniform Calculation System
Based on role, size, and other data, this module automatically identifies the appropriate uniform for each employee.
Automated Order Processing
A messaging system triggers automatic orders for any missing uniforms or PPE items.
A global UUID key was implemented to link all services, reducing database query volumes and simplifying data processing.
Results Achieved:
7%
performance increase
23%
increase in the user base
19%
growth in subscriptions
The unified UUID key reduced database queries by 25%, significantly improving overall system performance.
Data processing optimizations using asynchronous technologies (Pandas, Numpy, Asyncio) reduced processing time from 30 minutes to 2 minutes – a 93% reduction.
Leveraging Celery for parallel task management eliminated task duplication, lowering server load by 20%.
Team
The team consisted of 14 backend developers specializing in Python and microservices architecture.
10
Back-end Engineers
4
Full Stack Engineers
2
Data Engineers
1
Front-end developer
1
Technical Lead