Quartz is Bank of America Merrill Lynch's integrated trading, position management, pricing and risk management platform. It's still in development, but already allows Bank of America Merrill Lynch employees to access and manipulate a vast amount of financial data relating to the company's operations.
Learning the language
Matthew Dudgeon is now in his second year of working as a developer on Quartz. The Quartz platform utilises a quasi-open source approach, which is unusual in finance but has helped Matthew to increase his knowledge rapidly.
"Developers working in every line of business share the same data, the same programming language, and the same source codebase," says Matthew.
"Everyone can look at and make use of anyone else's code and if something's broken, there's nothing stopping you from going in and fixing or adapting it - in fact, it's encouraged. Going through other's code and seeing a wide range of different approaches is a great way to learn."
It's the fact that Quartz uses Python, a remarkably flexible programming language, that enables it to work so well for such a large development community.
"Python offers aspects of many other languages," says Matthew, "but few other alternatives offer so many features at the same time. It shares features with object-orientated languages, scripting languages, functional languages - it's really the pick of them all, without any significant drawbacks."
Matthew hadn't studied Python extensively at university, but has received training and support in this area at Bank of America Merrill Lynch: "We have tremendous learning resources," he says. "There are online tutorials and challenges that you can go through yourself, and live lectures about specific aspects every few months.
"These help you to not only learn Python but also to understand and use many other aspects of the technology surrounding and built on top of Quartz. And the best way of all to figure anything out is to just get stuck into working on it, which I've certainly been able to do."
Having got to grips with Python, Matthew is now a big fan of this extremely powerful language: "I think it'd be hard for me to go back to using anything else now."
Considering the extremely large amount of data it encapsulates and the number of users it provides services for, Quartz operates at a particularly fast pace.
"Quartz sits on top of a lightning-fast object database," Matthew explains. "Unlike conventional databases that ultimately fail to scale, Quartz remains incredibly fast."
Matthew goes on to explain that this database is the primary building block of the platform, enabling data to be retrieved and manipulated fast enough to meet the demands of the business.
In terms of technical sophistication, "it's definitely one of the most advanced databases you could possibly find, and given its tightly coupled relationship with our infrastructure it's made available very neatly to our server farms," he says.
Matthew also flags up the way in which Quartz developers are able to program using dependency graphs which, says Matthew, "enables you do some unusual things."
"For example, you can cache results - if certain bits of data change or move, you can limit what you have to recalculate, which is good for efficiency and hence overall performance." Graph programming also provides an interesting approach to developing user interfaces.
Matthew's main Quartz-related role at Bank of America Merrill Lynch is developing its FX (foreign exchange) product pricing tool, which helps his colleagues on the trading floor to determine appropriate values for foreign exchange transactions and products.
Another connected part of his job is the generation and publication of more general FX pricing curves, which are used for valuing FX products and calculating FX risk.
"Most of the time my job consists of writing code and checking other people's," says Matthew "- in the Quartz development process everything needs to be reviewed, so that takes up an important chunk of my time. The other part of my job is providing direct support to the FX business, picking up any issues with pricing or market data publication."
There looks to be no shortage of work on Quartz for Matthew and other developers in the future. "Quartz and the applications that sit on top of it are all a work in progress," he says "- we're working on moving as much of the company's key systems to it, but we haven't got there yet."
"There are often problems to solve and by spending time on them together, we always come up with effective solutions. In financial technology and technology in general we're huge innovators, and here at Bank of America Merrill Lynch graduates can contribute to these advancements."