Agenda

Get ready for a day full of captivating talks and practical workshops on functional programming, as well as lots of food, networking opportunities, and time with the speakers! Expect more of a focus on front-ends this year—check out what the talks are about

Workshops

  • 8.30 - 9.00

    Registration for workshops
  • 9.00 - 12.00

    Workshops Buy tickets

    Registration will open on the 4th of September at 12 p.m.

    Roman Provazník
    Introduction to F#

    Difficulty:

    More info/15 Attendees

    Tomáš Horáček
    Hands on the Elm Architecture

    Difficulty:

    More info/15 Attendees

    Aleš Roubíček
    Fullstack Clojure web application

    Difficulty:

    More info/15 Attendees

    Andrea Leopardi
    Connected web with Elixir and Phoenix

    Difficulty:

    More info/15 Attendees

    Luke Czyszczonik & Jakub Kłobus
    (with the help of Matt Zatorski)
    Introduction to ReasonML

    Difficulty:

    More info/20 Attendees

  • 12.00 - 13.00

    Transfer time to the conference

Conference

  • 13.15 - 14.00

    Registration Buy tickets
  • 14.00 - 14.10

    Opening
  • 14.10 - 14.40

    KEYNOTE

    Philip WadlerMore info
    Categories for the Working Hacker

    The talk will explain why category theory is of interest for developers, taking examples from Java and Haskell, and referencing the new blockchain scripting languages Simplicity, Michelson, and Plutus. The principle of Propositions as Types describes a correspondence between, on the one hand, propositions and proofs in logic, and, on the other, types and programs in computing. And, on the third hand, we have category theory! Assuming only high school maths, the talk will explain how categories model three basic data types: products (logical and), sums (logical or), and functions (logical implication). And it explains why you already learned the most important stuff in high school.

    Philip Wadler

  • 14.40 - 15.10

    Alfonso Garcia-CaroMore info
    Fable got a major new release and you won’t believe what happened next

    Fable 2 is coming and I want to talk to you about it—what benefits it brings to Fable projects, the performance improvements, and how it can be used to better interact with JS tooling and libraries. I will also share with you the process of rewriting the code for this major new version, how it is to work with so many wonderful OSS contributors, and the lessons learned that hopefully can be applied to other projects as well. And we’ll end by listing some productivity tricks to put your Fable projects into production in shorter time with fewer bugs.

    Alfonso Garcia-Caro

  • 15.10 - 15.40

    Coffee break
  • 15.40 - 16.10

    Ju LiuMore info
    How to use Elm to generate a Mondrian painting

    In this talk we will use the amazing powers of Elm to live code a Mondrian art generator. We will quickly introduce how the Elm architecture works, then define a simple data structure and see how we can fill it up randomly by combining random generators. After that, we will approach the problem from another point of view and build a recursive data type with its recursive random generator. We will then see how these different approaches lead to completely different types of paintings.

    Ju Liu

  • 16.10 - 16.40

    Markéta AdamováMore info
    Bunnicula - async data processing in Clojure with RabbitMQ

    There are many ways you can implement asynchronous data processing in Clojure — from pure Clojure solutions to using dedicated software. Our services rely heavily on RabbitMQ, both for processing data coming from 3rd party services, and for inter-service communication. In this talk I would like to present why we decided to go with RabbitMQ and why we ended up building our own framework, Bunnicula.

    We also decided to open source Bunnicula together with few other libraries, so I will share a few tips on how you can use those in your project.

    Markéta Adamová

  • 16.40 - 17.10

    Wojciech GawrońskiMore info
    Functional Programming in Serverless World

    Serverless is more than just hype nowadays. It is getting more and more attention in today's world—mainly because of ease of use, the promise of infinite scale and reducing operational complexity to a minimum. And those are only a few of selling points of this particular "technology".

    Unfortunately, we have limited choice when it comes to the languages and runtimes available in those environments. The situation seems to improve on a monthly basis, but there are pitfalls involved. Service providers support only a fraction of platforms (and to be perfectly honest, only the most popular). And by default, there are no functional languages available out of the box—assuming that we will not perform any additional work, or that we will not cheat.

    I have checked out what the landscape looks like for you. If you are interested in how much yak shaving, frustration, and unnecessary work is required to bring our favorite functional flavors to the Serverless world, then this talk is for you! And I can promise that by the end, I will not leave you without a reproducible and reliable solution.

    Wojciech Gawroński

  • 17.10 - 17.40

    Coffee break
  • 17.40 - 18.10

    Saša JurićMore info
    Simplifying systems with Elixir

    Elixir is often touted as a language which offers great support for massive concurrency. First-hand reports often cite the ease of handling millions of connected users, sub-millisecond response times, and superb fault-tolerance. These are all great benefits, but we’re left wondering whether Elixir is useful only for large scale systems, or can it bring some benefits in simpler cases too.

    This talk aims to demonstrate that Elixir is also a great choice for building smaller systems. Using some real-life examples from my own experience, I’ll explain how using Elixir can help simplify the system architecture, and lead to a more homogeneous solution.

    The talk targets backend developers who are new to Elixir. After the talk, you will have a clearer idea about what makes Elixir special, and why you should consider using it to build your backend systems, regardless of the business domain, complexity, or scale.

    Saša Jurić

  • 18.10 - 18.40

    Mateusz ZatorskiMore info
    Building mobile apps in ReasonML

    I will first give a brief introduction to ReasonML, later show how to start building apps in ReasonML and React Native, and finally explain how to add ReasonML to the existing React Native codebase. All with use of awesome React Native bindings, bs-react-native.

    Mateusz Zatorski

Party

  • 18.40 - 18.50

    Closing
  • 18.50 - 21.00

    After Party & Networking