Extensible DSLs with Tagless Final

Working with domain experts can be frustrating for all parties involved - it’s very hard for them to get the subtle nuances of their craft across, and aggravating for developers to constantly tweak and refine code to reflect ever evolving specifications.

There is, fortunately, a solution: Domain Specific Languages, small, highly specialised languages that allow experts to write exactly what they mean, without needing to involve developers for each new tweak.

These DSLs can be a lot of fun to use and write, but are also easy to get wrong. The purpose of this talk is to walk through a slightly simplified version of a language currently used in production to process millions of documents, show the most common problems that need to be solved, and offer reasonable, easy to understand solutions.

At the end of the talk, attendants will have a solid understanding of how to design their own DSLs, and of the strengths of weaknesses of their standard encoding.


Nicolas is the CTO of Besedo, where we use Scala to moderate large volumes of user generated content and do weird things to machine learning models.

After too many years as a Java programmer and a thankfully brief stint in marketing, Nicolas discovered Functional Programming through Scala and fell in love. Since then, he’s made it his mission to learn and explain the scary bits, by focusing on practical applications.

Nicolas is also the author and sole maintainer of a few useful OSS libraries, such as kantan.csv.

Tickets are available here.

Join us on our YouTube stream for the talk and afterwords on our Discord server.