In a company reliant on a legacy monolithic platform, adapting to user needs was challenging and risky. As Product Design Manager at Small World Financial Services, I led a shift to a microservices architecture, allowing us to enhance user experience and add new features without disrupting the core system.
Product Design Manager
Small World Financial Services
At Small World Financial Services, we were working with an outdated monolithic platform where all system components were tightly interconnected. This setup created multiple issues: every time we tried to add or improve a functionality, unexpected failures occurred in other areas of the system.
Additionally, there had been high turnover among developers, meaning much of the original system knowledge had been lost. This made it even harder to troubleshoot problems or introduce changes. Switching the platform entirely was not a viable option due to time and budget constraints, but improving the experience for both users and agents was essential.
To solve these challenges, we decided to adopt a microservices architecture. This allowed us to divide the system into smaller, independent components that could be developed and modified without affecting the rest of the platform.
Advantages:
In a monolithic system, all functionalities are interconnected, making modifications complicated. Microservices, on the other hand, break these functionalities into smaller, independent pieces, allowing changes to be made in one part of the system without affecting the rest.
One of the biggest challenges we faced was when we wanted to redesign a key page to improve the user experience. Modifying the monolithic system’s code was too risky, as it could cause issues in other areas. Instead, we created a new external page with a better UX/UI, which was connected to the monolithic system via microservices. This allowed users to interact with the improved interface, while the backend processes remained unaffected.
Microservices also allowed us to add new functionalities without altering the core system. For instance, when we wanted to implement a notification service, we created an independent microservice that connected to the existing system to retrieve the necessary data, but operated separately. This allowed us to introduce new features without risking the system’s stability.
In my role, I led the redesign of user experience flows, ensuring that the technical improvements in architecture translated into a better experience for both customers and agents.
This project allowed me to lead a complex initiative where balancing technical and design needs was key. I ensured that the architectural decisions made also had a positive impact on the user experience. While transitioning to a microservices architecture was crucial, my focus was always on ensuring that both internal and external users experienced tangible improvements in their day-to-day tasks.