The Scala Consultancy

Know Your Scala


Books, videos, training, and mentoring... everything you need to excel.

Browse our catalogue

Succeed With Scala


Professional services tailored to your business, whatever stage you're at.

Work with us

Latest from the Blog

Scala and 22

Back in 2014, when Scala 2.11 was released, an important limitation was removed: “Case classes with > 22 parameters are now allowed”. This may lead you to think there are no 22 limits in Scala, but that’s not the case. The limit lives on in functions and tuples. This post explores the limit, looks at an example from Slick, and notes two ideas for what you can do about it.

Continue reading…

Giving a First Talk

Underscore is supporting new speakers at Scala eXchange. Last year, Danielle Ashley gave her first Scala eXchange talk, and in this guest post, she writes about her experiences.

Continue reading…

How You Can Help Bring New Speakers and New Ideas to Scala eXchange 2016

The Scala eXchange 2016 conference is taking place in December, in London. The call for papers is open. We know you’re going to hear from some great established speakers, but we also want to make sure new voices are heard. New speakers increase the diversity of experiences, ideas, approaches, and interests. We can all benefit from that.

In this post, we’ll tell you how we’re helping new speakers. We need your help too.

Continue reading…

Opaque and Transparent Interpreters

The interpreter is the über pattern of functional programming. Most large programs written in a functional style can be viewed as using this pattern. Amongst many reasons, interpreters allow us to handle effects and still keep desirable properties such as substitution.

Given the importance of interpreters it is not surprising there are many implementation strategies. In this blog post I want to discuss one of the main axes along which implementation strategies vary, which is how far we take reification of actions within the interpreter.

Continue reading…

Probabilistic Programming in Scala

At the Typelevel Summit in Philadelphia I gave a talk about probabilistic programming, which I have recently been exploring. Probabilistic programming combines two great research areas that go great together—functional programming and machine learning (specifically, Bayesian inference). In this blog post I’ll attempt to explain the basic ideas behind probabilistic programming. I’m assuming you, dear reader, skew more towards programming than statistics, but are not afraid of numbers. Hence I’ll concentrate more on the programming than the machine learning side of things here.

Continue reading…

Our Customers

Some of our happy customers: