Funding Circle Signify Technology SoftwareMill Underscore


09:00 Registration
09:50 Opening speech
10:00 Keynote: Generating and Verifying C from Scala with LMS-verify - Nada Amin
10:45 Break
11:00 Recursion schemes by example - Krzysztof Ciesielski
11:30 Hunting for Anglerfish in Datalakes - Dominic Egger
12:00 Break
12:15 Declarative GTK Programming in Haskell - Oskar Wickström
12:45 FP and Event Based Systems - Hamish Dickson
13:15 Lunch (buffet)
14:15 There is a Bluebird in my talk that wants to get out - Lucas Fernandes da Costa
14:45 Code in Code in Idris - Tom Harding
15:15 Break
15:30 Asynchronous Programming: Scala.concurrent and Monix - Yifan Xing
16:00 Break
16:15 Types vs Tests - Julien Truffaut
17:15 Break
17:30 Pub quiz!
18:00 Finish



Generating and Verifying C from Scala with LMS-verify

Nada Amin (@nadamin, CV)

I will show how to use Scala as a glorified macro system to compose fragments of first-order C code augmented with specifications that can be independently verified with tools such as Frama-C. I will start by demoing a generative image processing DSL due to Oleg Kiselyov. Then, I will show several examples of verified optimizations and code generation, including string matching and HTTP parsing. The take away is “abstraction without regret” thanks to deep linguistic reuse.

About the speaker

Nada is a lecturer in Programming Languages at the University of Cambridge.

She earned her PhD at EPFL, where she worked on the DOT calculus that forms the type-theoretic foundation of Scala 3.

She also worked as a post-doctoral researcher at TU Darmstadt.

^ Back to schedule

Recursion schemes by example

Krzysztof Ciesielski (@kpciesielski)

Recursive data structures like trees, JSON objects and language expressions are common elements of many codebases. We will explore Matryoshka for Scala - a powerful tool for processing and transforming recursive data without the pain associated with typical aproach.

About the speaker

Krzysztof is a software engineer from Poland, fascinated with the Scala ecosystem, functional programming and principled design. He works at SoftwareMill, building distributed systems in a distributed team. Additionally Krzysztof engages in Open Source projects, with notable contributions to Reactive Kafka, scala-clippy and other libraries.

^ Back to schedule

Hunting for Anglerfish in Datalakes

Dominic Egger (@grafblutwurst)

Shiny technologies in big-data quite often turn out to hide some nasty teeth whenever you dive deeper into your datalake. This is about taking on one such anglerfish, namely Avro’s generic representation, with the help of Recursion Schemes.

About the speaker

I play video-, board- and pen&paper games, read a lot of SciFi, cook and code. The latter I get payed for by Scigility. We mostly do big data platforms, from platform engineering, to development as well as legal aspects, for companies that don’t know how to do so yet.

^ Back to schedule

Declarative GTK Programming in Haskell

Oskar Wickström (@owickstrom)

Functional programming has made a substantial impact on user interface programming for the web, with virtual DOM technologies and unidirectional data flow. Can the same be done in Haskell without compiling to Javascript and Electron? In this talk you will learn about declarative programming of GTK interfaces with Haskell.

About the speaker

After some years of musical education, Oskar Wickström began his journey into the world of software. He’s currently doing remote work in Haskell, and in his spare time he creates screencasts at haskell-at-work.com. Among the technical topics that interest Oskar are functional programming, systems design, web technology, and programming languages. His more aesthetic side, which mostly involves music, draws him towards graphics and UI design every now and then.

^ Back to schedule

FP and Event Based Systems

Hamish Dickson (@_mishy)

One of the more challenging things about designing event based systems is how you deal with data conflicts. Here we talk about how CRDTs can be modelled as semilattices and how you can derive them for case classes using Shapeless in Scala.

About the speaker

I am an engineer at DriveTribe and am interested in FP, dependently typed languages and machine learning. My background is in theoretical physics.

^ Back to schedule

There is a Bluebird in my talk that wants to get out

Lucas Fernandes da Costa (@lfernandescosta)

There is a bluebird in my talk that wants to get out, but state machines are too tough for him. This is not your usual functional programming talk. In it, I’ll explain lambda calculus itself and show how exciting it can be to derive combinators from the most elegant ideas in computability theory.

About the speaker

Well, I think the most important thing I can say about myself is that I love learning and I really love creating things.

And, as I can’t stay away from writing the best code I’m able to, you can find me writing software at Converge.io and (almost) every day on GitHub, contributing to open-source projects and also helping to translate and produce content for other developers.

I’ve been one of Chai.js core maintainers since 2015. Chai is one of the most downloaded NodeJS modules and the most famous assertion-focused library around, with outstanding 5.8 million monthly downloads and lots of dependents. I am also a core maintainer of Sinon.js, which is another very popular project among JavaScript developers and uses lots of meta-programming magic to accomplish its tasks.

^ Back to schedule

Code in Code in Idris

Tom Harding (@am_i_tom)

Idris is getting lots of attention, and for good reason: in dependently-typed languages, we can calculate types from runtime values! We’ll look at a correct-by-construction simply-typed lambda calculus, and how dependent magic blurs the boundaries between type and term, as well as function and data.

About the speaker

Writes Haskell and PureScript for Habito. Likes long walks on the beach, strong types, and hummus.

^ Back to schedule

Asynchronous Programming: Scala.concurrent and Monix

Yifan Xing (@yifan_xing_e)

Introduce the Futures & Promises library in Scala.concurrent and Monix. Dives deep into the API implementations. Demonstrates nontrivial Future and Monix examples. Compares and contrasts the obvious and subtle differences between Future and Monix. Discuss best practices in debugging asynchronous systems.

About the speaker

Yifan is an open-source contributor, speaker, and ScalaBridge Boston organizer. She built a back-end message queue system for the Scala open source project Shared Health Research Information Network (SHRINE) at Harvard Medical School. The system uses concepts of parallel processing/multi-threading, non-blocking asynchronous, distributed systems, etc. Yifan is also involved in bringing diversity into the tech field. She is currently organizing ScalaBridge – Boston, and the first workshop is planned for summer 2018!

Yifan has given a similar talk at Sphere.it in Krakow, Poland. Slides can be found here

^ Back to schedule

Types vs Tests

Julien Truffaut (@julientruffaut)

Tab vs spaces, vim vs emacs, types vs tests, our community is full of these conflicts. In this talk I would like to discuss the latter: what is the impact of types in our programs? Can types help write more efficient tests? if so, how?

About the speaker

Julien is the author of Monocle, a lens/optics library in scala and a contributor to various functional libraries such as scalaz, cats or argonaut.

^ Back to schedule


Paweł Szulc (@rabbitonweb)

Our industry is only 70 years old and we’ve already managed to repeat history few times. Curry and Howard think they’ve found a workaround, but Russell and Whitehead said they tried that already and Gödel spoiled all the fun. Dr. Knuth however bet $3,372,548 on that idea, so who knows?

About the speaker

Pawel Szulc is primarily a programmer. Always was and always will be. Experienced professionally in JVM ecosystem, currently having tons of fun with Scala and Haskell. Humble apprentice of Functional Programming. Runs a blog rabbitonweb.com.

^ Back to schedule


After the conference finishes, you are welcome to stay and socialise in the venue. The pub is open until 1am!

You may also wish to relocate to the main bar downstairs.