f(by) 2019 — the 5th edition of the conference on functional programming in Minsk, Belarus.

Organized by SPACE Production
in cooperation with local FuncBY community.
Pre-conference evening event with talks on Scala only
Track 1 — Practical talks: success stories of FP languages usage

Track 2 — Theoretical talks: programming language theory, mathematics, new things in FP languages
January 26, 10:00

Main Conference Day
Speakers and Talks

@venkat_s, USA

Founder of Agile Developer, Inc., Creator of agilelearner.com, Professor of CS at University of Houston
@kritzcreek, Germany

Software developer @SlamData

@reborg, UK

Software Engineer @Droit Fintech

@VBragilevsky, Russia

Lecturer @ #sfedu (Haskell, Idris, theory of computations), Author of "Haskell in Depth"
@singh_harmeet13, India

Module Lead Software Consultant @Knoldus

@mkrentovskiy, Russia

System Engineer @ReLabs
@clayrat, Lithuania/Belarus

Senior Developer @Adform
Vagif Abilov works in a Norwegian company Miles developing services on .NET platform. Vagif has more than 30 years of programming experience in different languages, recent projects have been developed in F#.

In addition to his main work Vagif participates in several open source projects and presents at conferences where he often includes in his talks not very serious songs.
It's been about three years we began our big rewrite: tired of mutable data structures and thread synchronisation, we decided to use F# and actor model (Akka.NET) for the next generation of our system. Gigabytes of data are going through our applications every hour with high demand for performance, scalability and failure recovery.

The fact that our project has for a long time been in production can identify it as success, but is choice of F# an essential part of this success? Could we achieve similar development speed and operational stability if we settled for OOP (and C# on .NET platform)?

We believe that F# provides a set of defaults that can give significant advantages for development with short deadlines and continuous deployment, and we are going to share our experience and lessons learned in this talk.
Christoph is a core contributor to the PureScript compiler and authored most of its IDE tooling.

He has been using Haskell/PureScript for most of my developer life and have been lucky enough to use PureScript at work for the last 2 years.

Christoph is interested in compilers, type systems, and making things as simple as possible.
Static typing is experiencing a renaissance. Modern languages use type inference that lets you just write your expressions and have the compiler infer their types.

But how does this work? I'll show you the fundamentals and theory by implementing a fully functional type checker/type inferencer.

This talk will attempt to disenchant type systems/checker as something magic and show how they are normal (fun) programs.

To do so it will present the Hindley-Milner-Damas type system which forms the basis for languages like OCaml, Haskell, PureScript, or Elm (and lots more).

We'll implement Algorithm W, a type inference algorithm, for it in about a 100 lines of Haskell. Participants will leave with an understanding of typing judgements and terminology like substitution, instantiation, and unification.
Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com and an instructional professor at the University of Houston.

He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.

Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com.
Why are there so many languages multi-paradigm? When and how should we choose between paradigms? And, what should we be careful about if and when we decide to mix paradigms.

Language Paradigms are intriguing, some languages are pure and enforce a particular paradigm, and yet some languages are hybrid. A single paradigm language is consistent, easier to use, and often favoured by the proponents of the promoted paradigm.

Hybrid languages often appear confusing, seem harder to use, and yet there are so many of them. From the programming point of view should we stick to one paradigm or should we dabble into the mixed paradigm arena? It turns out, that is not an easy question.
Renzo is a software engineer. He used a variety of languages throughout his career and got interested in Clojure sometimes in 2010.

He's author of "Clojure, The Essential Reference" by Manning, the "Clojure Pills" screencasts and organizer of the Papers We Love London Meetup. He currently works for Droit Fintech in London.
Clojure just celebrated its 11th birthday and it went a long way from being yet another Lisp into a complete and flourishing programming ecosystem. Today we have amazing tools built on top of Clojure's solid foundations: ClojureScript, Core.Async, Core.Spec, Transducers, Core.Logic, Tools.Analyzer and much more.

In this talk I want to explore what Clojure has to offer and illustrate how much power you can achieve once you embrace the power of Lisp.
Vitaly Bragilevsky serves as both the Haskell 2020 Language Committee and the GHC Steering Committee member. He works as a Senior Lecturer at the Southern Federal University in Rostov-on-Don, Russia where he teaches undergraduate students functional programming and theory of computations.

He is the author of 'Haskell in Depth' (Manning Publications, available via Manning's early access program).
Haskell can be seen from many points of view: you can build web services with it or study category theory. My favourite one is Haskel as a practical application of a type theory, which is a lovely piece of theoretical computer science by itself. Why not see how they work together?

Type theory is used in GHC to compile Haskell code. I'll first present lambda calculus and several type systems over it and then continue on with the demonstration how high-level code in Haskell is translated into the Core, intermediate language inside GHC, which is, in fact, a modest extension of Girard's System F. The talk is going to be split in half: 50% of type theory and 50% of Haskell and GHC internals.

I don't expect any prior knowledge of type theory, basic acquaintance with Haskell will be useful to understand what is going on in the second part of the talk. The main idea of the talk is to justify the fact that theory can be quite fruitful and exciting.
Andrew is a software developer from London with a strong background in mathematics and computer science. After receiving his PhD degree, he went into industry and ended up working on the compiler of the domain-specific language for finance and trading, implemented in Haskell.

Andrew's main open source contribution is arithmoi – a modern library for number-theoretic computations.

We will discuss approaches to design hybrid data structures, mixing carefully chosen amounts of strictness and laziness for the desired result. Our main examples are infinite semilazy lists with constant-time access (thus combining properties of usual lists and vectors) and infinite lazy sets.

The applications vary from caching to number theory and from business calendars to recursive functions.
António is a functional programmer mostly interested in OCaml and ReasonML.

He works as a Software Engineer at Ladder, a company that is reshaping the life insurance industry in California.
Reason is a new, friendly syntax and toolchain for OCaml that can compile to JavaScript, OCaml bytecode or really fast native assembly code. If you've seen or used Reason before, chances are it was in a project that compiled to JavaScript, which is what the Reason community has focused the most up until now.

Recently, however, the native workflow has been greatly improved and is almost, if not entirely, ready for public consumption. And you're probably curious about how to set up a project that compiles to native assembly instructions.

In this talk, I'll give you glimpse of the native landscape in Reason, and will go through all the necessary setup entailed in creating a project that compiles to native code, including managing dependencies and making the build system work to your advantage.
A young Scala hAkker who spends his days writing code, running and lifting in the late evenings. In his free time, if he has any, Jakub explores his other interests, which include coffee, playing bass and watching outstanding TV series.

He works at Ocado Technology, where he develops the software for the world's most advanced warehouses, powered by functional programming and distributed systems.
It's no secret that using full-blown frameworks that provide every functionality you could ask for tends to be troublesome - some of them impose a certain structure on your applications, hide implementation details of the parts of your program generated on the fly (making them harder to debug), and require testing your programs in a specific way.

Thankfully, there are alternatives, such as not depending on frameworks to do all the work - instead, you delegate parts of the functionality to libraries. In this talk, I'm going to talk about two of them - http4s (a HTTP server/client library) and doobie (a functional JDBC wrapper), how they interact together thanks to a common core (cats-effect, fs2), and how they allow you to write resource-safe applications that you can fully control, and whose parts you can easily test independently or as a whole.
System engineer and software developer. Working with Erlang on web backends and hardware projects.
The talk covers our experience of using Erlang in IoT projects as control plane and as hight level language for hardware interaction.
Harmeet loves to program, especially with JVM based languages like Java and Scala. He always tries to follow good design practices and patterns and take care of code quality.

Harmeet is an enthusiast for cutting-edge technologies. He started his career with JavaEE web applications development. With the time and experience, he is moving towards Reactive Applications, Functional Paradigm, Distributed Applications development. He is happy to share knowledge with others through discussions, presentations, workshops and more.

Harmeet started his journey as a Speaker from ScalaUpNorth 2018, Canada and TechTriveni 2018, India.
Have you ever confused with Monads? Or you ever faced the complexity of Monads and Compositions? This talk is your pilot in the journey for simplifying monads, create custom monads, monads composition, and transformation of monads using Scala.

Keeping the functional paradigm intact while using complicated monad structure in your code could be quite a tedious task. Especially, when your business logic needs to be structured in a flow, suddenly you realize that your code is moving away from the functional paradigm. Well, definitely Monads composition is the savior in this kind of situations, however, composing them practically is again a cumbersome task.

We will be jumping into some coding examples in this talk, which would hopefully make you sit back and relax when you face this kind of situation again. We will create custom monads, right usage of monadic operator and resolution of monad composition problems and monads transformation with some real-life scenarios and examples.
Type System plays an important role in building type-safe applications which reduce immense runtime exceptions and developer mistakes.

This sophisticated system is leverage by Scala's most famous functional libraries like Scala-Cats and ScalaZ. This feature-rich system allows pure Functional programming on JVM. It is a beast due to its complex syntax as it prevents developers to explore its beautiful aspects like partial types in Scala.

In this talk, we'd be taming the beast and use its beauty to solve real-life issues faced during coding. Our examples will be based on Generics, Constraints, Types Lambda, and Kind Projector plugin.
Andrea is currently working for Funding Circle as full stack Clojure developer hopping between Kafka topics and nice UIs with Clojurescript.

Before seeing the FP light at the end of the tunnel he worked mostly on various Python APIs and even adventured in the devops world.
Playing some kind of games with your colleagues is a great way to bond and distract your mind. Playing is more fun when it's competitive though, which is why we need a tool to keep track our leagues. So I decided to build such a tool going Clojure full stack (API, frontend and even CSS).

In this talk I will first give an introduction to the Elo algorithm and then dive into the world of reagent/re-frame and functional reactive programming, using this project as an example for live demos and code samples.
I work for for the internal development in JetBrains, and do front-end for more than 10 years, and usually don't care about the language or framework I have to use, but always prefer functional approach before the declarative one :). From the start of my career I was interested in graphics and unusual approaches to the user interfaces (but keeping them useful, still).

Most of my hobby projects and/or talks are about either functional programming or graphics, and some of them even mix this topics in unusual (I hope, at least) ways.
Working at JetBrains since 2002, I've designed thousands and thousands of splash screens, banners, and all sorts of graphical artifacts. Naturally, I burned out and switched to... coaching. Except I had no human team, so I had to train computer programs to draw for me.

Why functional approach? As a designer working at a software company, I'm good with both 'functional' and 'aesthetics'. The approach is functional and so beautiful, so I'm in.
Previous time, we generated the graphics for JetBrains in static with P5.js and nodes. It wasn't only for fun, for sure, but also was used in splash screens of the IDEs you love and company promotion too. Now we've gone functional and dove into three dimensions and developed the new GUI. No quantum computations or strings discoveries were used yet, though.

We'll tell the boring details how precisely and why exactly it was done—why Elm, why WebGL, why functional, why even bother.
Aecor is a Scala library for building eventsourced applications in purely functional way. In this talk we'll briefly go over essential building blocks of Aecor and how to compose them to build a working app.

We'll also compare Aecor with other event sourcing solutions of Scala world.
Vladimir is a passionate Scala functional programmer and systems architect. He loves solving complex domain problems using typed functional programming. He also enjoys long distance running and playing music.
Alex was born in Belarus, but he currently lives and works in Vilnius, Lithuania. He is a Scala data engineer by day, and an aspiring logician by night.

His interests include functional programming (obviously), experimental type systems such as linear, dependent and homotopy ones, and software verification techniques.
Have you ever wondered if the foundations of FP could be redesigned from the ground up? In this talk we'll use a logical framework called "sequent calculus" to define an alternative system to the lambda calculus and see the benefits this will bring us, demystifying continuations in the process.

Sequent calculus is a logical formalism invented in 1930s with the aim of analyzing the construction of mathematical proofs. It turns out that applying it to programming gives us a certain "assembly language for FP" that reveals various symmetries of computation: producing/consuming, values/contexts, strictness/laziness and so forth. This computational version of sequent calculus is known under several names in academia, one of them being "system L". In the talk a functional dependently typed language Idris will be used to implement a toy version of system L and prove some of its properties.

Mikhail is a software engineer with more that 10 years of experience. His main focus has always been web-programming in .NET and JavaScript.

A couple of years ago, when he moved from Russia to the Czech Republic, he fell in love with functional programming. F# became his "number one" language. In 2018 he started to actively participate in F# community, talking about F#, Fable and to put his effort to F# OSS projects. Mikhail has created Fable bindings for MaterialUI React library.
F# is a powerful and expressive multi-paradigm language with high performance and focus on functional programming. It leverages all capabilities of .NET framework and introduces lightweight functional syntax. With latest effort of F# community SAFE stack appeared.

SAFE stands for: * Saturn (Suave, Giraffe) as back-end web framework * Azure (AWS, GCE) for cloud-based systems (it also works equally well on premises) * Fable - F# to JavaScript compiler * Elmish - Fable implementation of Elm (MVU) architecture.
This combination of technologies allows full-stack development with only one language - F#.

Since SAFE is pretty flexible and not strict at all, it can be applied fully or partially. This presentation covers the most common use cases and best practices of SAFE development.

January 25, 18:00

Scala Night
Speakers and Talks


Scala Night
(25 January)
f(by) conference
(26 January)
Registration, welcome coffee, networking
Coffee, networking
Theory #Haskell
Practice #Fsharp
Theory #Haskell #PureScript

Erlang & IoT
Practice #Erlang
Theory #Clojure
Theory #Idris
Theory, Practice #OCaml
Afterparty & Networking
249 BYN
199 BYN
(Scala Night + Main Conference Day)
Day Only
249 BYN
199 BYN
(Scala Night + Main Conference Day)
Day Only

Become a partner

Your Partner Account Manager is Misha Malikin:
+375 29 678-56-34



Media Partners

Welcome to Belarus!

Wall Street Journal named Belarus' Hi-tech Park 'The Silicon Valley' of Eastern Europe.

Belarus has a strong IT cluster of international companies. It is worth to mention EPAM, World of Tanks, Fitbit, PandaDoc, MSQRD, Juno, etc.

30 days visa-free

Minsk is a beautiful city with post war architecture & lots of parks. Even the most experienced travellers are impressed by its spacious avenues & cleanliness. Explore the city with these handy guides:
Minsk City Guide
Go to Belarus!

Hotel Discount

If you need a hotel, after purchasing a conference ticket, contact the organizers and get a discount on Willing hotel.
If you fly to Minsk airport from any country except Russia & your stay will last up to 30 days (including arrival & departure dates), the visa will be stamped to you free of charge at Minsk airport!

This concerns 74 countries' citizens.

If your country is in the list, you don't need an invitation to enter the country. You'll only need a valid passport (it must be valid 6 months after your trip to Belarus), a return ticket and medical insurance that must be purchased at Minsk airport upon arrival (before passport control), it costs a couple of euros, the insurances from your countries might be not valid for our passport control.

If your country is not in this list, we can prepare an invitation for you.

Delicious national cuisine

A unique feature of Belarusian national cuisine is a huge variety of cold soups & potato dishes. To try draniki with sour cream is a must!

Large Developers' Community

Minsk has a really strong developers community. FuncBY, as well as many other communities, has their regular meetups every month.


Look at 267 more on our Facebook page


Watch 13 more on our YouTube channel
"What Makes Haskell Unique" by Michael Snoyman (Vice President of Engineering @FP Complete, Israel)
Haskell has purity, immutability, referential transparency, and so on. But how does that affect the programs we write?

We'll discuss some subtle and not-so-subtle outcomes — both positive and negative — that come from the architectural choices at the root of Haskell.


SPACE Production is a professional team of conference & meetup organisers in Minsk, Belarus
FuncBY is a belarusian community of developers using functional programming languages in their work and hobby projects
Be the first to know the news!
Sigining up the newsletter indicates you agree with our Privacy Policy.
If you decide that you no longer want to receive a newsletter, you can unsubscribe by clicking the "Unsubscribe" link, located at the bottom of each newsletter.
f(by) 2019 Code of Conduct
All attendees, speakers, sponsors and volunteers at our conference are required to agree with the following code of conduct. Organisers will enforce this code throughout the event. We are expecting cooperation from all participants to help ensuring a safe environment for everybody.

f(by) Conference is a community conference intended for networking and collaboration in the IT community. Our goal is to create the best event. We want every participant to be able to focus their full attention on talks and networking. This is impossible to do if you are being harassed, stalked, or discriminated against.

We value the participation of each member of the community and want all attendees to have an enjoyable and fulfilling experience. Accordingly, all attendees are expected to show respect and courtesy to other attendees throughout the conference and at all conference events, whether officially sponsored by f(by) Conference or not.

To make clear what is expected, all delegates/attendees, speakers, exhibitors, organizers and volunteers at any f(by) Conference event are required to conform to the following Code of Conduct. Organizers will enforce this code throughout the event.

f(by) Conference is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of conference participants in any form.

All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate for any conference venue, including talks.

Be kind to others. Do not insult or put down other attendees. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for f(by) Conference.

Harassment includes offensive communication related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.

Exhibitors in the expo hall, sponsor or vendor booths, or similar activities are also subject to the anti-harassment policy. In particular, exhibitors should not use sexualized images, activities, or other material. Booth staff (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.

Be careful in the words that you choose. Remember that sexist, racist, and other exclusionary jokes can be offensive to those around you. Excessive swearing and offensive jokes are not appropriate for f(by) Conference.

Expected Behavior
  • Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
  • Exercise consideration and respect in your speech and actions.
  • Attempt collaboration before conflict.
  • Refrain from demeaning, discriminatory, or harassing behavior and speech.
  • Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.

Unacceptable Behavior
Unacceptable behaviors include: intimidating, harassing, abusive, discriminatory, derogatory or demeaning speech or actions by any participant in our community online, at all related events and in one-on-one communications carried out in the context of community business. Community event venues may be shared with members of the public; please be respectful to all patrons of these locations.

Harassment includes: harmful or prejudicial verbal or written comments related to gender, sexual orientation, race, religion, disability; inappropriate use of nudity and/or sexual images (including presentation slides); inappropriate depictions of violence (including presentation slides); deliberate intimidation, stalking or following; harassing photography or recording; sustained disruption of talks or other events; inappropriate physical contact, and unwelcome sexual attention. Attending the event under the influence of alcohol or other narcotic substances is unacceptable.

Consequences of Unacceptable Behavior
Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated. Anyone asked to stop unacceptable behavior is expected to comply immediately.

If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).

Thank you for helping make this a welcoming, friendly event for all!

Need Help?
Please text the organizer: daria@eventspace.by
Corporate tickets booking
Ticket type & price (inclusive of all taxes)
Submitting the form indicates you agree with our Privacy Policy