Talks

Announced talks

A Gentle, Practical Introduction to Path-Dependent Types

Presentation
by
David van Geest

How can you avoid casting and Options when dealing with inconsistent HTTP APIs? Scala’s path-dependent types provide an elegant solution that is less intimidating than it sounds. Expect to see simple explanations, and the real-world, open-source code that inspired this talk.

Details

Brave New World - tales of PureScript and Haskell in production

Presentation
by
Felix Mulder

The rumours are true. Writing code in purely functional languages tends to produce code that is much easier to read, modify and reason about.

This talk examines how an experienced Scala team transitioned into writing production code using PureScript in AWS lambda, and services using Haskell.

Details

Building CLI utilities with Scala Native

Workshop
by
Jostein Gogstad and Paweł Cejrowski

Take a Scala Native journey with us and learn about systems level programming in your favorite language. We’ll write a natively compiled CLI using Scala Native, and teach participants how they can use the Scala type system to interface with system level shared libraries.

Details

Building a reactive multi-user document editor in ScalaJS

Presentation
by
Jan Ypma

Recently, reactive architectures have “graduated” from being backend-only, to also enriching frontend applications. This talk describes the creation of a multi-user structured document editor, which allows full real-time collaboration business documents, using ScalaJS, Outwatch, and Akka.

Details

Dispelling magic behind Concurrency in FP

Presentation
by
Piotr Gawryś

Have you heard about all of these breathtaking, purely functional, principled and blazingly fast libraries that handle purity and concurrency in Scala? Interested but lacking foundations and Google doesn’t help much? That’s what this talk aims to address!

Details

Functors, in theory and in practice!

Presentation
by
Martin Menestret

Functors are a functional programming central concept… But beyond a buzz word to shine in society, what are they?

I’ll do my best to give you an intuition about what they are in practice but also about what they are in theory by exploring notions of category theory and how both relate!

Details

Galaxy brain: type-dependence and state-dependence in property-based testing

Presentation
by
Erik Osheim

Property-based testing is a powerful tool to validate our code, but it is only as good as the random generators which produce its test cases. This talk will demonstrate several techniques to take random generators to the next level and expand the universe of useful types that can be generated.

Details

Genetic programming is waiting for better tools

Presentation
by
Rakhim Davletkaliyev

Genetic programming is applicable in a limited domain. Could the reason be the current state of software engineering?

Let’s imagine the future of programming languages (or forgotten past), FP, homoiconic languages and better APIs in the next 20-40 years: can they help genetic thrive?

Details

Impractical Lambda Calculus

Presentation
by
Einar W. Høst and Jonas Winje

The SKI combinator calculus can be thought of as a computer programming language, though it is not convenient for writing software. In this talk we’ll use it for live-coding.

Details

Integrating Developer Experiences - Build Server Protocol and beyond

Presentation
by
Justin Kaeser

IDEs provide support for many tasks that go into creating software. But developers want to be able to use special tools for each task. This shifts the focus from Integrated to Integrating external tools. I will talk about how the Build Server Protocol allows IntelliJ to interface with any build tool

Details

Introducing ScalablyTyped

Presentation
by
Øyvind Raddum Berg

ScalablyTyped is a new project which enables Scala.js developers to use thousands of Javascript libraries. All of this is accomplished through a happy marriage between Typescript and Scala.

Details

Live Coding a Concurrent Web Crawler

Presentation
by
John Ⓐ De Goes

Watch as John furiously scrambles to live code a massively parallel web crawler in the span of 30 minutes. Along the way, you’ll learn about how functional programmers use modern, purely functional libraries like ZIO to solve complex business challenges.

Details

Program Description Based Programming

Presentation
by
Luc Duponcheel

This is about a library, Program Description Based Programming (PDBP), written using Dotty. PDBP implements FP, the language presented by John Backus during his Turing Award winning lecture. During my 2018 Scala eXchange talk I concentrated the design of PDBP. During this talk I will concentrate on the usage of PDBP.

Details

Property-Based Testing The Ugly Parts: Case Studies from Komposition

Presentation
by
Oskar Wickström

Property-based testing has been praised in various programming communities, but it can still be hard to see how it applies to your day-to-day work. This talk will describe techniques that you can use to test the “ugly” parts of your system, with case studies from the screencast editor Komposition.

Details

Reinforcement Learning in Scala

Presentation
by
Chris Birchall

Reinforcement learning (RL) is a powerful and versatile machine learning framework, recently gaining in popularity thanks to DeepMind projects such as AlphaGo. You’ll learn what RL is, how it works and how to implement it from scratch in Scala.

Details

Seeing Arrows Below the Code

Presentation
by
Narek Asadorian

Functional programmers in Scala seem to either be fascinated by or afraid of category theory (or both). In this talk, a normal software engineer (without a math PhD) seeks to uncover and explain structures lurking beneath functional Scala code, demonstrating how they can be useful to programmers.

Details

Tagless Final: Purity And Performance In Scala

Workshop
by
Eli Jordan

Effect capture is a core tenant of pure FP. But what effect capture style should you use in Scala?

Monad Transformers work well in Haskell, but perform poorly on the JVM. Free Monads allow great abstraction, but involve complex types.

All hope is not lost! Tagless Final is here to save the day.

Details

Transducers - composable algorithmic transformations

Presentation
by
Erik Assum

A transducer is composable algorithmic transformation, but what does that even mean? In the introduction to transducers it’s described as a function with the following signature: (whatever, input -> whatever) -> (whatever, input -> whatever)

Details

Typeful, functional, streaming HTTP for Scala with http4s

Workshop
by
Magnus Härlin

When you have gotten started on your functional journey, realised that life becomes easier with immutability and pure functions and want to have a web server that lets you leverage that.

In this workshop to learn how to use the http4s that is functional, streaming HTTP server and client for Scala.

Details

Using Haskell at FINN.no

Presentation
by
Sjur Millidahl

FINN.no was built on Java, and considers itself a “Java-shop”. What did it take to put business critical applications on Haskell in a place with object oriented history and culture? In this talk I will attempt to create a reproducible formula for you to turn your current job into a Haskell one.

Details

When Everything Fits: The Beauty of Composition

Presentation
by
Markus Hauck

Composition is a very central topic in FP, but why is that? Why is everybody so excited about it and how can I use it to make my life easier?

This talk will show why composition is one of THE key aspects of abstractions from FP and why this is so extremely important (and cool) in daily programming

Details