A field-programmable gate array (FPGA) is a chip that can be programmed to suit whatever purpose you want, as often as you want it and wherever you need it. FPGAs provide multiple advantages, including low latency, high throughput and energy efficiency.
To fully understand what FPGAs offer, imagine a performance spectrum. At one end, you have the central processing unit (CPU), which offers a generic set of instructions that can be combined to carry out an array of different tasks. This makes a CPU extremely flexible, and its behaviour can be defined through software. However, CPUs are also slow because they have to select from the available generic instructions to complete each task. In a sense, they’re a “jack of all trades, but a master of none”.
At the other end of the spectrum sit application-specific integrated circuits (ASICs). These are potentially much faster because they have been built with a single task in mind, making them a “master of one trade”. This is the kind of chip people use to mine bitcoin, for example. The downside of ASICs is that they can’t be changed, and they cost time and money to develop. FPGAs offer a perfect middle ground: they can be significantly faster than a CPU and are more flexible than ASICs.
FPGAs contain thousands, sometimes even millions, of so-called core logic blocks (CLBs). These blocks can be configured and combined to process any task that can be solved by a CPU. Compared with a CPU, FPGAs aren’t burdened by surplus hardware that would otherwise slow you down. They can therefore be used to carry out specific tasks quickly and effectively, and can even process several tasks simultaneously. These characteristics make them popular across a wide range of sectors, from aerospace to medical engineering and security systems, and of course finance.
Speed and versatility are particularly important when buying or selling stocks and other securities. In the era of electronic trading, decisions are made in the blink of an eye. As prices change and orders come and go, companies are fed new information from exchanges and other sources via high-speed networks. This information arrives at high speeds, with time measured in nanoseconds. The sheer volume and speed of data demands a high bandwidth to process it all. Specialized trading algorithms make use of the new information in order to make trades. FPGAs provide the perfect platform to develop these applications, as they allow you to bypass non-essential software as well as generic-purpose hardware.
As a market maker, IMC provides liquidity to buyers and sellers of financial instruments. This requires us to price every instrument we trade and to react to the market accordingly. Valuation is a view on what the price of an asset should be, which is handled by our traders and our automated pricing algorithms. When a counterpart wants to buy or sell an asset on a trading venue, our role is to always be there and offer, or bid, a fair price for the asset. FPGAs enable us to perform this key function in the most efficient way possible.
At IMC, we keep a close eye on emerging technologies that can potentially improve our business. We began working with FPGAs more than a decade ago and are constantly exploring ways to develop this evolving technology. We work in a competitive industry, so our engineers have to be on their toes to make sure we’re continuously improving.
Being an FPGA engineer is all about learning and identifying new solutions to challenges as they arise. A software developer can write code in a software language and know within seconds whether it works, and so deploy it quickly. However, the code will have to go through several abstraction layers and generic hardware components. Although you can deploy the code quickly, you do not get the fastest possible outcome.
As an FPGA engineer, it may take two to three hours of compilation time before you know whether your adjustment will result in the outcome you want. However, you can increase performance at the cost of more engineering time. The day-to-day challenge you face is how to make the process as efficient as possible with the given trade-offs while pushing the boundaries of the FPGA technology.
Things change extremely rapidly in the trading world, and agility is the name of the game. Unsurprisingly, FPGA engineers tend to enjoy a challenge. To work as an FGPA engineer at a company like IMC, you have to be a great problem-solver, a quick learner and highly adaptable.
IMC offers a great team dynamic. We are a smaller company than many larger technology or finance houses, and we operate very much like a family unit. This means that, as a graduate engineer, you’ll never be far from the action, and you’ll be able to make an impact from day one.
Another key difference is that you’ll get to see the final outcome of your work. If you come up with an idea, we’ll give you the chance to make it work. If it does, you’ll see the results put into practice in a matter of days, which is always a great feeling. If it doesn’t, you’ll get to find out why – so there’s an opportunity to learn and improve for next time.
Ultimately, working at IMC is about having skin in the game. You’ll be entrusted with making your own decisions. And you’ll be working side by side with super smart people who are open-minded and always interested in hearing your ideas. Market making is a technology-dependent process, and we’re all in this together.
Think you have what it takes to make a difference at a technology graduate at IMC? Check out our graduate opportunities page.