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 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: firstname.lastname@example.org 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.)