Goldman Sachs VP's guide to coding electronic trading systems
If you're interested in working as a developer in an investment bank and coding electronic trading systems, then Goldman Sachs vice president Kelsey Lafer's presentation yesterday at this week's Grace Hopper Conference offered some pointers on what the job actually entails.
Lafer's worked for Goldman for seven years and is currently a vice president (VP) developing trading software for the firm's fixed income currencies and commodities (FICC) systematic market making business in New York City. Her entire career has been coding trading systems, and she is a specialist in speed.
"One of the main lessons I’ve learned, is that a lot of things don’t need to be that fast, but sometimes they really do need to be fast and really performant," said Lafer. In electronic trading parlance, speed is known as "latency," and latency is defined as, "the amount of time it takes for information to be transferred from one place to another."
In high speed/low latency trading systems, information has to be transferred almost unfeasibly quickly. "In electronic trading, we're trying to get as close as possible to the speed of light," said Lafer. "When we're talking about low latency, we're often talking in the sub-second scale." It takes light about one nanosecond to travel a foot, and electronic trading latency is defined in terms of micro seconds and nanoseconds. A micro-second is one millionth of a second; a nanosecond is one billionth of a second.
The performance of an electronic trading system is typically measured in terms of percentiles. For example, banks will look at how well a system performs at the 95th percentile - well outside the bounds of normality. Lafer said this is because, "electronic trading systems have to be performant all the time, not just on average."
Fundamentally, electronic trading systems are about exchanging financial products through automated systems. "Historically, this [trading] was a very manual process," noted Lafer. Today, it means that a broker dealer receives an order from a client, splits it into smaller orders using an algorithm, and sends the order to an exchange where the trade actually happens. Speed is essential: broker dealers can make money by securing a favorable price at the exchange ahead of their competitors. "You have a market of people trying to get that price faster than the other person," said Lafer.
If you want to work in low latency trading development, there are two coding languages you'll need to know: Java and C++ . You might also want to familiarize yourself with tools like: the Java MicroBenchmark Harness, which is used to benchmark chunks of code with sub-second specifications, along with Java Mission Control, Java Flight Recorder, and JavaVisual VM, which help you view runtime latency metrics.
Even if you don't want to code low latency trading systems, it can make sense to understand how to code as close as possible to the speed of light. The techniques used at Goldman Sachs and other banks are also used in industries like gaming, where there's an expectation of responsiveness in real time.