In this talk, we will walk through a concrete example of a boilerplate-heavy domain. By replacing common Scala 2 workarounds with Opaque Types, Extension Methods, Enums, and Union Types, we will demonstrate how to achieve a strictly typed, decoupled architecture without the noise.

A clean Domain Model is hard to maintain. Over time, our core entities often become overloaded, accumulating database logic, infrastructure constraints, and JVM-specific boilerplate. We want a pure, rich domain, but we often settle for leaky abstractions or an explosion of wrappers just to keep the compiler happy.
Scala 3 offers a powerful, pragmatic alternative: you no longer need complex concepts to solve easy problems. By leveraging its modern toolset, we can define behaviors, data shapes, and relationships exactly where they are needed—without polluting the core entities.
In this talk, we will walk through a concrete example of a boilerplate-heavy domain. By replacing common Scala 2 workarounds with Opaque Types, Extension Methods, Enums, and Union Types, we will demonstrate how to achieve a strictly typed, decoupled architecture without the noise.
This talk presents McCCT, a new concurrency testing tool developed at KTH by the speakers in the context of an ongoing research project.
I would like to present the use of NamedTuples to implement some cool things in SQL Libraries
When writing software, we currently seem to have to choose between an imperative style - easy to read and write, hard to reason about - and a monadic style - hard to read and write, easy to reason about.This talk is about being greedy and getting the best of both worlds, because we deserve it.
Writing client-facing APIs involves mundane tasks, whether it be REST, GraphQL, or gRPC. In this talk, I will pick two repetitive tasks during API development and demonstrate how we can utilize Scala to automate the most boring parts.
Code generation is one of the most promising applications of large language models (LLMs), offering substantial productivity boosts for developers. However, this benefit is tempered by serious concerns surrounding the correctness and security of the generated code - especially outside the happy path.
Do you like it when compiler generates the boring code for you? Fast, mundane, boring-but-error-prone code? Do you need to implement such a code generator yourself? Have you found out that Shapeless/Mirrors bend your brain a bit too much?