Another round for Rafael – Type-safe builder pattern in Scala revisited

Abstract: It is almost 10 years since a blog writer named Rafael Ferreira wrote a post entitled “Type-safe Builder Pattern in Scala”. In this post Rafael shows how to use certain features of the Scala type system to implement the well-known “Builder Pattern” but with static compile-time safety checks. Since the original post, others have been inspired through the years to take the same example and show alternative approaches for the type-safe build pattern in Scala.

This talk continues in the same vein and aims to show the sheer variety of approaches that Scala enables, while offering perhaps a different perspective on some interesting Scala techniques for type-safety. (Some keywords: Implicit parameters, type constraints, Phantom types, Abstract type members, the Aux pattern)

Category Theory: in theory and practice

Abstract: Writing an abstract is hard, kind of like composing your thoughts for a concise but yet meaningful stand-up update keeping in relevant information without the low-level details. Maybe that statement is a little bit “meta”, but it’s not just in practice that we look for abstraction, even the mathematics behind what we do is about that.

In this talk, I’ll quickly introduce some basic concepts from Category Theory and then compare some of those theoretical concepts to the ones we know from practice in Cats and Scalaz.

Building for Longevity with Scala

With engineers moving from project to project and company to company, how do we ensure the systems we are building can survive constant organisational & personnel change? Why do some systems outlive others? And if we are honest with ourselves, are we guilty of thinking much too short-term about our software systems?

Drawing from real world examples, I will discuss the Scala projects that succeeded long-term (5+ years) and those that quickly became obsolete. I will further characterise some of the unique obsolescence pitfalls that Scala and its ecosystem bring and how to avoid them.

We’ll touch on the lesser known aspects of the API and the importance of choosing the right execution context.

Click here to watch this talk with slides