the other interesting thing about the Serge Aleynikov story
There’s a whole bunch of interesting things about this story of how a programmer has allegedly stolen some of the code at the place he’d worked. One is the remarkable reverb it’s created amongst bloggers. The house pictured left is evidently the diabolical mastermind’s home according to the NJ Real Estate Report. Another is the fact that a programmer stealing some code is news. Funny what becomes news (apparently a fêted pedophile died) and what doesn’t (we are creating millions of refugees in Pakistan).
One angle that I haven’t seen highlighted in all of the commentary is Mr Aleynikov’s choice of weapon. Seems that he was an erlang guy with an interest in ocaml. Choosing functional programming for algo trading systems is an interesting but not unique choice.
A few months back I’d seen Jane St‘s Yaron Minsky give an interesting talk on OCAML in which he describes the virtues of ocaml as applied to the algo trading domain. You should watch it as he’s entertaining and clearly a “true believer.” The key argument he makes is that algo trading requires correctness, agility and performance and that ocaml provides a great set of tools for addressing these needs. Correctness and agility are supported by the rich type system while performance is just a happy feature of the language.
He describes Jane St’s need for correctness as obsessive – the company’s founders read/review all of the code that goes into production. Thus, concision and the absence of OO languages’ dynamic dispatching mechanisms are viewed as advantageous.
Mr Minsky admits that there are significant limitations involved in choosing ocaml, including a dearth of external libraries (they write their guis using curses(!)) and a lack of native threading. The language’s unpopularity turns out to be something of a double-edged sword as it results in the lack of usable libraries but also in a close-knit community of likely above-average developers.
Anyway, it’s an interesting decision for Jane St Capital to have made and it’s compounded by Mr Aleynikov’s use of Erlang/OTP at Goldman. His linkedin profile describes his recent work as:
• Lead development of a distributed real-time co-located high-frequency trading (HFT) platform. The main objective was to engineer a very low latency (microseconds) event-driven market data processing, strategy, and order submission engine. The system was obtaining multicast market data from Nasdaq, Arca/NYSE, CME and running trading algorithms with low latency requirements responsive to changes in market conditions.
• Implemented a real-time monitoring solution for the distributed trading system using a combination of technologies (SNMP, Erlang/OTP, boost, ACE, TibcoRV, real-time distributed replicated database, etc) to monitor load and health of trading processes in the mother-ship and co-located sites so that trading decisions can be prioritized based on congestion and queuing delays.
• Responsible for development of real-time market feed handlers, order processing engines and trading tools at a Quantitative Equity Trading revenue-making HFT desk.
which makes it sound like they were using Erlang alongside a lot of C++. I’d also speculate that their use of Erlang was more about concurrency than functional programming.
One of the nice observations made by Mr Minsky is that there’s a magnificent freedom about prop trading: you don’t have clients to please and can thus make genuinely original technology decisions. It looks to me like the curious case of Serge Aleynikov highlights some of that originality in play in serious algo trading prop shops.