Discover your dream Career
For Recruiters
How to become the kind of coder banks and funds really want to hire.

The best Java developers started in C++ or assembly

If you want to write the kind of code that’s used in the kinds of trading algorithms that are integral to market-making in today’s financial system, it’s quite possible that you’re going about it all wrong. Especially if you’re starting out by learning how to code in Java.

Peter Lawrey, CEO of Chronicle Software, which provides low latency trading systems to banks and hedge funds, says Java expertise can be a hindrance rather than a help if you want to write low latency code.

“You can have 10 years of Java coding experience and not really understand what you’re doing,” says Lawrey. “There are Java developers who’ve been coding for 10-15 years and who have no idea how big an integer is, who don’t really understand how data is laid out, or how to turn an object into raw data so that it can be turned back into an object. People have only ever used libraries.”

Programmers who spend their entire careers in Java often develop a false sense of their own ability, suggests Lawrey. – They know how to do everything in Java, but this is simply because there aren’t many things to know in Java. “There’s a philosophical difference between the two languages,” says Lawrey. “C++ is kitchen sink approach – it has loads and loads of features and options for doing the same thing and if you know what you’re doing, you pick the right one. Java only has one or two, or maybe three ways of doing the same thing. It’s feature poor, but because it’s feature poor then developers feel they have mastered all the features of Java fairly quickly. With C++ it can be really difficult to feel you have mastered all the alternatives.”

At Chronicle, Lawrey codes ‘low latency Java’ which he describes as Java with only fast and efficient constructs and all the “garbage” stripped out. Instead of learning to code in Java, Lawrey says he spent his first two years learning how to code in an assembly language which translated directly into the machine code that creates the binary instructions moving values in and out of the registers in a CPU.

“It’s learning the hard way,” says Lawrey. Even if you start learning how to code in C++, he says you’ll be forced to learn how everything works down to a very low level of detail. - But if you start in Java, you’ll usually simply learn a few abstractions that will deliver quick results.

This is fine if you want to use Java to code websites, but if you want to code low latency Java for trading algorithms, Lawrey says it helps to know C++ inside out first.

This begs the question of why you’d bother switching to Java in the first place. Lawrey says the best low latency Java programmers are those who are glad they’re not still coding in C++. “They need to have a background where they’ve been forced to understand everything, but to be thankful that Java is there instead.”

Have a confidential story, tip, or comment you’d like to share? Contact: in the first instance. Whatsapp/Signal/Telegram also available.

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.)

Photo by Laura Ockel on Unsplash

AUTHORSarah Butcher Global Editor
  • An
    Antony Savvidi
    17 December 2020

    I coudn't agree more. It's the same with C# as well, it's only after I dug into C++ and Rust that leveraged my C# game.

  • Fr
    Fred Brewer
    17 December 2020

    Sarah, if you haven't already, check out the MMIX language from Donald Knuth's "Fundamental Algorithms" textbook; a 'mythical' assembly language that has the same goal as you in terms of learning low-level, efficiency oriented details of how things get done.

Apply for jobs

Find thousands of jobs in financial services and technology by signing up to eFinancialCareers today.

Boost your career

Find thousands of job opportunities by signing up to eFinancialCareers today.
Latest Jobs
Selby Jennings
China Quant Researcher
Selby Jennings
Dingxi, China
Unicorn Advisor (HK) Limited
私募股权基金投资助理 - 北京
Unicorn Advisor (HK) Limited
Beijing, China
Unicorn Advisor (HK) Limited
fixed income investment manager, Guangzhou based
Unicorn Advisor (HK) Limited
Guangzhou, China
Susquehanna Pacific Pty Ltd
Commodities Analyst
Susquehanna Pacific Pty Ltd
Shanghai, China