On the Greeniosk project, I worked on a kiosk management system for payment processing tied to cannabis sales in Nevada. The project needed to integrate with a JCM iVizion bill acceptor using the JCM ID008 protocol over USB.
I designed the architecture after gathering requirements from stakeholders and investors, then worked with JCM on the hardware integration. My original controller approach used Node, but the USB controller requirements depended on DLLs that made the Node strategy impractical at the time.
Instead of forcing the original plan, I changed course and brought in a C# developer to handle the controller constraints. The Node APIs and Angular frontend were successfully implemented, while the hardware controller strategy adapted to the technical reality.
This project had a mixed result, but it is an important story because not every useful lesson comes from a perfect win. Sometimes the value is in recognizing when the first plan is wrong and changing direction before the project burns too much time.