Software development in trading and market making

How is software used in trading?

Software is the often-overlooked secret sauce that allows the world’s financial markets to run smoothly. In today’s era of electronic trading, the systems used in the financial markets are highly automated. At IMC, this means we’re dedicated to developing our own trading software to help people buy and sell tradeable assets.

Good trading software is all about latency and throughput. For latency, think speed. When something interesting happens in the market, you need to be able to react quickly. The best software can help decision-makers process information and execute actions at split-second speeds. Throughput is the amount of information that can be processed at any given time. Today’s software solutions need to digest significant volumes of data so market participants can harness the growing amount of information out there – and make effective, well-informed decisions.

What role does software engineering play at IMC?

At IMC, we know that having the best software is what drives our business. As a market maker, our role is to always be there when a counterpart wants to buy or sell an asset on a trading venue, and to offer, or bid, a fair price for the asset. By performing this role, we provide essential liquidity that facilitates investments.

These continuous interactions between different counterparties help keep the financial ecosystem ticking over. Given the central role we play in financial markets and the wider economy, the technology that supports our operations must be as efficient and reliable as possible. Our systems connect to the world’s biggest exchanges. Speed and capacity are essential, and there’s no room for error.

Software development – or engineering, as we call it at IMC – is about innovating and working to expand the horizons of what we can achieve through technology. At its core, trading software development is all about finding solutions. We are constantly asking what can be improved within the trading ecosystem – every last component is scrutinised. We work hard to cultivate a culture where innovation can thrive; an open environment where people can come up with fresh ideas. Our office is a laboratory where the latest technologies are explored and where progress is measured in picoseconds.

What does the software development process at IMC look like?

At IMC, we develop all of our own applications in house. Our trading platform generally has two layers. First, we have a strategy layer consisting of several different modules in which IMC traders and quants carry out valuations. The second layer is the execution layer, in which we take the pricing from our strategy layer to consolidate it with the market feed to facilitate trades. This layer has to be able to consolidate the streams quickly and requires high bandwidth to process high volumes of information.

What does a graduate software developer do?

As a software engineer at IMC, you will have a direct hand in the success of our business. Your role, on the one hand, will be to facilitate the work of the traders and others who support the markets. At the same time, you will spend much of your time working on new ideas and applications that can help our business, and the markets, to run more efficiently.

There are different time horizons for different projects. On an average day, you will be tasked with solving problems and help keep things running smoothly. Over a longer time horizon, you can use your problem-solving skills to work on your own projects that better automate the processes that make trading more efficient.

What can you expect in your role as a graduate engineer?

As a team, we try to be as close to production as possible to ensure our engineers are familiar with how everything works. Our graduate engineers and developers regularly get the chance to be exposed to the front line of the business. By being close to the trading action, our engineers gain hands-on experience and see how the technology works in practice. While this is going on, they can still work on their own long-term projects that help IMC further grow as a company.

This means that, as a graduate developer, you will see the impact of your work at first hand from day one and you can bring this experience into your longer-term projects. 

What skills does a software engineer require?

One of the things separating a good engineer from a great one is curiosity. For example, you might be good at writing code or working with a particular programming language, but it’s important you continue to improve yourself in other areas. That drive to learn new things can be just as important as whatever skillsets and specialities you already have. If you’re constantly driven to better yourself and master new skills, you may be a good fit for IMC.

Agility and the ability to adapt and think creatively are also highly important. In financial markets, things change rapidly. Regulations change, competitors change. Even the market dynamics change. Our software needs to be able to evolve and adapt, as do the people who create it. As an engineer, you need to be able to think on your feet and to rip up the playbook and start again if something isn’t working as well as it could be. With this comes a willingness to take on new challenges and to step up and take responsibility as an integral member of your team.

The combination of ownership, agility and curiosity is what we look for in potential new engineering graduates. By joining IMC and starting your career as a software engineer, you will enjoy exciting new challenges and have the opportunity to grow in an evolving and fast-changing area of the financial markets.

Think you have what it takes to be an IMC graduate? Visit our graduate opportunities page and start your journey