BARX is a world-leading, cutting-edge multi-asset trading system that's powerful enough to process hundreds of transactions per second.
Originally designed for FX (foreign exchange) trading, it has since been developed to allow users to trade in commodities, derivatives and several other types of asset. Deployed by hundreds of traders across the world simultaneously, it's constantly being maintained by its dedicated team of world-class developers.
Nick Wells is a system architect, with overall responsibility for BARX's design and technical direction.
Nick has been at Barclays for eleven years - he started his career as a mathematics graduate and worked as a developer at two other leading investment banks. Nick then worked as a developer in the BARX team for two years before being promoted into his current role.
A developing system
BARX is a great example of a technological product at the heart of an investment bank's client offering and commercial strategy. The launch of BARX over a decade ago was a key moment for Barclays as it made the bank a market leader in the then-new arena of electronic FX trading.
BARX was the first platform to offer precision pricing in 2005, which was followed by the first two-way streaming prices for FX options in 2006. 2013 saw the launch of BARX Gator, a cutting-edge FX trading tool providing more efficient execution for clients.
To ensure BARX remains at the forefront of the industry's electronic trading platforms, the technology team has worked hard to continuously innovate and develop the system.
One of the most important areas that they're tackling on an ongoing basis is managing the system's databases. These hold and manage massive amounts of data and need to be well-structured and easy for the system to access while, of course, remaining totally secure.
Another important area for developers is the GUI (graphical user interface) used by some BARX users, generally organisations that trade at a relatively low volume, such as corporates wanting to occasionally use derivatives to guarantee prices or obtain better interest rates.
But these users still have particular requirements, wanting an easy to use and resilient product that's packed with functionality and continuously improved.
BARX users who trade at high volume, usually using algorithms rather than human input and typically investment banks, asset management firms or funds, demand additional functionality. These clients access BARX via FIX, a publicly-available communications protocol for exchanging pricing information that links traders and trading systems like BARX with most of the financial markets across the world.
FIX, however, provides them with access to multiple other sources for prices and trading options alongside BARX. "This is a very competitive area," says Nick, "so we need to be faster than our peers."
"It's all about multi-threading and low latency programming to achieve increased efficiency, which gives clients using BARX a better service," says Nick. There's no one single approach to the issue; rather it's a question of "a sequence of hundreds of improvements in lots of places."
Efficient code writing is important: "We try to make sure that we hold locks in the code for as short a period of time as possible," says Nick, "and that we have minimal context switches as the price goes from one part of the code to the next."
Another of the major challenges developers working on BARX face is volume, as BARX experiences severe spikes in usage at peak times.
"We recently put a team onto developing the way we deal with these," says Nick. "They spent six months on the problem, first coming up with an idea, and then working out how to practically implement it."
When asked for an outline of their solution, he replies: "In simple terms, it involves distributing the processing work among a number of servers - they don't make single machines big enough to cope with the volumes of information our systems deal with."
Joining the team
For Nick, "programming talent is key" to working on BARX. Java and C++ are the core languages, though the team uses others too, including Perl and Python, and a good SQL knowledge is essential for database-related work. Nick adds that it's also important to be practical and hardworking, and to enjoy solving tricky technical problems to tight deadlines.
A deep knowledge of finance is not essential for graduate joiners, but acquiring a good understanding of the assets traded on BARX and the complex financial mathematics behind some of them, such as derivatives, will certainly help you progress.
Graduates could get involved in any of BARX's key areas of work but whatever they are working on, says Nick, they're given interesting and challenging tasks to make full use of their abilities.
BARX is a complex system that needs to stay at the top of its field, which means it's constantly posing new tests for its developers. But this is exactly why so many of them, like Nick, have chosen to build their careers in financial technology by working here long-term.