Nian Aldeguer

Full-Stack Software Engineer & Solutions Architect

Modernizing a 20-Year-Old Plant System

👤 Client: Manufacturing company • 🎭 Role: Solution Architect & Full-Stack Engineer • ⏳ Duration: 10 months (2024-2025)

🧑‍💻 Tech: Python, Odoo Enterprise Resource Planning (ERP), Odoo Owl, WebSerial API, Internet of Things (IoT) Integration

⚡ Challenge

When I first visited the client's manufacturing plant, I walked into a situation where their 20-year-old system was going to fail. Nobody knew when it would fail, but it was only a matter of time.

They wanted a full replacement and had already picked Odoo as their new Enterprise Resource Planning (ERP) system.

The real headache was that their manufacturing process didn’t follow any standard playbook. No lot tracking. Asynchronous workflows. A mashup of hand-weighing and bulk operations spread across six stations. Odoo’s manufacturing module expects neat, predictable processes. This client had none of that and they refused to change their inventory practices, which Odoo heavily relies on.

🧩 Solution Architecture

I designed a distributed Internet of Things (IoT) platform that acted like a translator between old machines and modern software. Six Raspberry Pi controllers connected to legacy industrial scales through the WebSerial API, then streamed live weight data into a customized Odoo ERP system.

The design worked around Odoo’s strict inventory tracking rules while still keeping the data accurate. I also built a shop floor interface that looked and felt like what workers were already used to, instead of forcing them into a standard Odoo workflow.

🛠️ Technical Approach

The toughest technical problem was integrating four different industrial scale models. Some were so old that even the manufacturers had lost the documentation.

I spent hours reading manuals plus reverse-engineering ASCII commands. For one ancient scale, I literally had to trial-and-error the communication protocol until I figured it out.

I built a device management system that stored each scale's specific commands in a PostgreSQL database. The system automatically connected when workers opened the shop floor interface.

The scales streamed data in real-time with automatic TARE commands plus unit standardization.

For the interface, I all but rebuilt Odoo's Shop Floor system. I designed huge progress bars plus numbers that workers could see clearly while wearing safety equipment.

Everything worked with keyboard-only navigation since they wore gloves. I implemented color-coded weight tolerances: blue meant underweight, green meant within tolerance, red meant overweight.

I also created popup systems for coordinating between different worker roles and manufacturing operations.

🎯 Impact

The client significantly reduced manual weighing errors just by automating the data capture. Workers picked up the new system quicker than expected, and the live data gave them instant feedback on progress.

On the engineering side, I pushed testing culture hard. I raised code coverage from 0% to 93% and helped set up Continuous Integration and Continuous Deployment (CI/CD) pipelines. By the end, the system was stable, reliable, and fully functional.

💡 Conclusion

This project reminded me that code is only half the battle. The bigger challenge is often decoding the business process. At one point, my coworker and I spent three hours just trying to interpret a single work order photo, full of shorthand and local references.

Working with Odoo’s Owl framework was tough given the thin documentation, but the project reinforced something I believe: the best solutions work with human habits, not against them. Sometimes it is better to preserve familiar workflows than to force “best practices” that no one wants.