During my time in the FX Orders team at BNP Paribas CIB in London (2010–2016), I was deeply involved in the server-side development of Monza, the bank’s in-house FX order management platform. Built using C++, C#, and Oracle PL/SQL, Monza consisted of real-time microservices, operating under strict performance constraints and backed by a distributed caching architecture.
I led the development of several key features, including the integration of direct market order flow with the Algo X trading system over the FIX protocol (via OniX API), and the automation of FX Fixing orders using OneTick to retrieve benchmark rates from external sources at scheduled publication times.
I also engineered a recursive availability framework that ensured all Monza services only transitioned to ‘available’ status when their full dependency graph—both direct and indirect—was satisfied. This ensured predictable startup sequences and robust runtime behavior across the platform.
Another major contribution was taking over and restructuring a shared internal C# library. Originally intended for multithreaded use but lacking real-world validation, the library suffered from severe concurrency issues. I addressed these, significantly reducing latency and making the component production-ready for the team’s high-throughput workflows.
Additionally, I developed a Python-based code generation suite that translated high-level XML definitions of business entities into full backend modules: C++ server-side logic, client-side APIs (in both C++ and C#), database schemas, migration scripts, and Oracle stored procedures for all CRUD operations. This system streamlined development, minimized human error, and drastically accelerated delivery of new features within the legacy cache-based framework.
Throughout this assignment, I also deepened my experience with LINQ, the FIX protocol, advanced SQL, and XML processing—bringing a more functional and declarative mindset into my backend work.