Elite java developers are ten times rarer than top C++ engineers
Much fuss has been made in the past of the difference between a standard C++ developer and an elite one in the low-latency trading space. The gap is immense and as a result, the talent pool for the elite C++ engineers in hedge funds is horribly small.
When it comes to low latency Java however, the talent shortage is even more acute. True low-latency java developers are so rare that many firms have given up trying to hire them.
Before we look at why this is, we need to look at why low latency java is used in the first place. For those who don't know, C++ is the go-to language for low-latency code because it interacts directly with the processor. “C++ is close to the Hardware” says Aiden Pestell senior consultant at executive search firm Odin Partners, “ it’s the easiest to get bug free low latency code with.” Java on the other hand operates through a virtual machine called the JVM. The more memory this machine is afforded, the slower the performance becomes. This is a problem if you're a hedge fund or trading firm and you need your code to run as quickly as possible.
Avoiding GC (Garbage Collection) is pivotal to effective law-latency Java. One technique to limit it is to ‘off-heap’ memory to an area not subject to GC, freeing up space for memory in the JVM while working in tandem with the memory inside it.
However, techniques like this are very hard to do without creating memory issues. “There’s a lot of Java developers in the market but there’s not a lot of Java developers who know mechanical sympathy – meaning choosing the right data structures, memory techniques, architectural design and network decisions” says Pestell.
The difficulty finding low latency Java engineers isn't the only issue. Hosting code is expensive when it's not optimised. “C++ can be ‘lean & mean’ and stripped back to absolute bare bones, Java will always run on a JVM,” says a senior C++ developer at an American bank in London. “The less efficient the code, the more it will cost to host per unit of work”
So what’s the point of using low latency Java at all? In the right hands, it can be as fast than C++ thanks to a secret weapon…
Sequencer framework: the niche architecture that can make Java as fast as C++
Sequencer is described by Pestell as “a single threaded UDP multicast middleware messaging bus.”
For managers that prioritise throughput over latency, a single threaded framework seems counter productive, but Pestell has “seen firms who are implementing sequencer getting less than 10 microsecond on their engine with over 2 million transactions per second.”
In Hong Kong where he's based, he says there are around 200 C++ developers but there is around 20 core Sequencer low latency Java developers .
Sequencer Java developers are an elite subgroup of the mass of Java engineers. Java is in the top six most used languages of the Stack Overflow survey and is one of the four languages most respondents are learning to code. It has one of the lowest median salaries, with the average developer earning just $65k.
Crypto firms are some of the main adopters in recent times. Firms Pestell had worked with recorded “A ridiculous amount of transactions per second,” so much so that people “wouldn’t believe it when I told them.”
Not everyone can do this however as Pestell warns “It takes a long time to mature such a complex system, full of moving parts and corner cases.”
On the employee side, becoming one of these top architects can be very profitable. “Java sequencer developers are Even more niche. They can get paid more than their C++ people in a bank”
Have a confidential story, tip, or comment you’d like to share? Contact: firstname.lastname@example.org in the first instance.
Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)