Discover your dream Career
For Recruiters

"Scala will get you the best technology jobs in banks"

If you want your pick of the best technology jobs in finance, you need to go beyond Python and to become proficient in Scala. 

Scala is the most widely used functional language in banks, and most banks have multiple job openings for Scala programmers. Morgan Stanley, Deutsche Bank, JP Morgan and HSBC are among the big hirers right now.

Scala was created by Martin Odersky from EPFL in Switzerland. It was released in 2004 and has always had the reputation of being an academic and difficult language to pick-up. However, I've sampled many languages in banking technology and Scala is my favourite by far. It’s certainly more involved to learn than something like Python or Go, but it’s also far more rewarding.

Scala is particularly appropriate for banks' engineering needs. Functional programming is a paradigm where we construct programs using only pure functions – with no side-effects. A function always returns a result and data is immutable meaning it does not change once created. This concept is particularly helpful when working with concurrency – doing multiple things at once – which happens all the time in finance.

Scala for is front office programming jobs

Scala programmers get some of the best engineering jobs in finance. Scala can create domain specific languages to parse both structured and unstructured data. For example, it's able to take a complex JSON message from a third party and extract meaning from it. This is bread and butter work for a front office technologist (working on the trading floor) and can be quite painful in some languages. However, in Scala we can encode lots of information in types and let the compiler do the work. It is also a language supported by Apache Spark – so in terms of ingesting data, parsing it and then creating data pipelines it’s top drawer.

You'll need Scala and you'll need Java 

Engineering roles at Investment Banks often require both Java and Scala. The two languages are complementary.

Java, Scala and Kotlin all run on the Java Virtual Machine (JVM). This means that they all get compiled down into the same thing. As a result, in Scala we can use any Java library we like, and most parts of Scala can be interacted with in a Java application. JVM based teams can seamlessly plug Scala components into their stack, without having to rewrite anything. This is a much easier sell to senior management than introducing an entirely new ecosystem like Python or NodeJS.

Many in the functional Scala community would like to do away with the object-oriented aspects of the language, but I think this would be a mistake. - The beauty of Scala is that it is truly multi-paradigm. It allows a programmer to write object-oriented code with some functional aspects, or functional code with some object-oriented aspects. For programmers new to functional programming this means that the learning curve is kinder than switching straight to something like Haskell or Clojure.

Investing time in learning Scala will make you a better programmer, period. Frankly, if I were a trader, I would be very happy to have my systems built in Scala. Scala developers tend to be some of the best around.

Oscar Varone is the pseudonym of a former VP-level technologist in an investment bank, who now works in a fintech.

Have a confidential story, tip, or comment you’d like to share? Contact: sbutcher@efinancialcareers.com 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 Christina Morillo from Pexels

author-card-avatar
AUTHOROscar Varone Insider Comment
  • Gj
    Gjiugfcbhhh
    9 September 2021

    This article is quite poor: some wiki-like information, JSON handling "problems", bias towards functional programming.

    I agree that learning new different language will make you better programmer, but it can be any other.

    Also using Scala will reduce the potential pool of candidates you can hire as the systems get older and become legacy systems, less talented people will want to work with them, and you will have problems. Better to use something more popular and common like Java or Kotlin.

  • Fg
    Fghhtfccvb
    9 September 2021

    Frankly, if I were a trader, I would be very happy to have my systems built in Scala.

    They do not care what tech you use, it must work fast and correctly.

  • Da
    Dave
    6 September 2021

    Learning scala will make you a better developer, but it won't get you a better job because a). Banks don't respect developers, and b). hiring managers don't understand what makes a good developer. It's also won't help you get a job in a tech company because they look for core algorithmic skills and an understanding of cs fundamentals. But you will be a better developer, get your work done faster and free up time to work on your promotion or just have an easy life.

Sign up to Morning Coffee!

Coffee mug

The essential daily roundup of news and analysis read by everyone from senior bankers and traders to new recruits.

Sign up to Morning Coffee!

Coffee mug

The essential daily roundup of news and analysis read by everyone from senior bankers and traders to new recruits.