Building Cortex: From concept to global application
In 2013, Sergey Zabelin, Executive Director, Head of GFICC Strategic Trading Technology at J.P. Morgan Asset Management, and his colleague presented a proof of concept for a fixed income electronic trading platform. The duo proposed to build and develop the platform in-house, choosing to avoid limitations associated with buying an off-the-shelf system.
The result: the Cortex application. An industry-leading, award-winning electronic trading platform combining execution and order management capabilities for J.P. Morgan Asset Management’s foreign-exchange desk. “Fast-forward five years and our proof of concept has transformed into a product handling a trillion dollars’ worth of trades across eight global desks,” Zabelin told QA Financial.
Today, the product team is eight strong, and building Cortex in-house, from scratch, just made sense, he continued. “It was the better investment.”
Zabelin now looks after all aspects of development of the Cortex platform, and still 60% of his time is spent dealing with code. “We pride ourselves on the fact that our code is very clean and this is something that we test a lot to make sure we get right,” he said. “Because of this, any changes to the code can be released in a day or two.”
From the beginning, the team have worked in an Agile manner, practising continuous delivery. The platform is entirely customised to the requirements of the traders and has been built using micro-services architecture. Test driven development and a substantial amount of unit testing also play a major role in the way the Cortex platform is developed and maintained.
Building Cortex around existing legacy systems and keeping them running is just one of the challenges that the team has faced during development. “Often legacy systems are written by teams that are no longer at the firm, but they still need to interact with the new product. To ensure legacy processes are supported, the team has made extensive use of toggle switches – meaning that we can reverse a change if it doesn’t work and revert the system back to an earlier version.”
The complexity of the Cortex platform means there is already a high level of test automation in place. However, a key objective for the team will be to automate regression testing and end-to-end testing – testing not only the application, but also the systems linked to it, explained Zabelin. “We are also looking into making our manual testing more exploratory. And are focusing on stress and destructive testing.”
Finding the right team
Creating the right team has not been without its challenges either, explained Zabelin. “In this industry, it can be hard to find the right talent and we have a rigorous recruitment process. We have a fairly flat structure, and each member of our team is a full-stack developer, so no one solely works on one aspect of the project. It’s a very collaborative and supportive environment.”
Sitting alongside the traders is also key to ensuring the focus remains on DevOps. “The number of traders using Cortex has grown exponentially. We started off with five users, but now we have over 40 users globally. We have relocated a Product Owner to sit alongside the team in New York City to ensure the system is adequately supported and communication channels between the business and development teams stay open.”
The product team’s tight collaboration with the business has been the key to their success, added Zabelin, and the traders themselves agree. Damien Lodge, Head of FX Trading Desk, said “Cortex has allowed us to maintain our bilateral relationships with counterparties and access liquidity via risk transfer in full amount, reducing market impact normally associated with top of book sweeping strategies. In addition we are able to capture granular quote data for trading cost and liquidity analysis which supports our best execution decisions. Cortex eliminates the complications of non-transparent costs applied by third party vendors and allows us to allocate across multiple accounts at point of trade.”