Scala

Functional programming on the JVM for the work that is really about data: stream processing, pipelines, and types that say what the business means.

What it is

Scala runs on the same JVM as Java and adds the two things Java was slowest to grow: first-class functional programming, and a type system strong enough to make some wrong states impossible to write. It is what much of the data world is written in, and it is at its best where correctness matters more than the size of the hiring pool.

What we do with it

  • Data and stream processing. Spark jobs, streaming pipelines, and the batch work around them - including the tests and reruns that make a pipeline trustworthy rather than merely fast.
  • Services where the domain is the hard part. Types that say what the business actually means, so the compiler catches the case somebody forgot rather than a customer finding it.
  • Scala 2 to Scala 3. An incremental migration, the library decisions it forces, and a build laid out so that both can live side by side while it happens.
  • Interop with a Java estate. Scala services that share protocols, secrets, pipelines and on-call with the Java ones you already run, rather than being a world of their own.
  • When the answer is not Scala. If the team that inherits the work writes Java, that belongs in the decision, and we will say so before it is built rather than after.

How it starts

Bring us the data, the shapes it comes in, and what has to happen to it. If Scala is the right tool we will say what we would build with it; if a Java service and a scheduled query would do, we will say that instead.

  1. 01 Events

    Data arriving as a stream rather than as last night's export.

  2. 02 Types

    A model that says what the business means, so the compiler can disagree.

  3. 03 Pipeline

    Spark or Akka, run where the data already is rather than moved to be processed.

  4. 04 Answer

    Something a person can look at, tested like the code it came from.

The names and marks above belong to their owners: Oracle, Java and MySQL to Oracle, Azure and SQL Server to the Microsoft group of companies, AWS and DynamoDB to Amazon, and the rest to the companies that publish them. Each is shown only to name a technology the studio works with, and no partnership, sponsorship or endorsement is implied.

A little ambition goes a long way

Got a wild idea?
Let’s make it real.

Start a conversation