Partial::Conf is a new functional programming conference in Sofia, Bulgaria, held for the very first time last week. We were there, both to attend and to give a workshop. Since the conference is small and new, it might not yet be on your radar, though it definitely should be!

Written by Kjetil Valle, Joel Chelliah

The Conference

Partial is a single track, two-day conference. The program consisted of 40 minutes talks throughout the first day, and the first half of the second. The last afternoon was dedicated to workshops, with ours being one of the choices.

There were also plenty of chances to mingle and talk to people. In addition to breaks between the talks, and the long lunch breaks, it was also an option to attend a guided tour of Sofia (for those not interested in the workshops). And finally, there was the conference party at a local nightclub on the second night.

We met a lot of interesting and friendly people. Not only among the attendees and speakers, but the organizers were also exceptionally welcoming and accommodating. Arriving on the night before a conference is not often one of the highlights. At Partial it was, though. We were picked up at the airport by a representative from the organizers, whom, after letting us drop our luggage off at the AirBnB, drove us to the speakers’ dinner. There we got to taste some great examples of the local cuisine, as well as a fair share of their fruit brandy Rakia.

The Talks

The talks at Partial generally held a high level of quality. The topics were for the most part very accessible to newcomers to FP. There were more in the ways of inspiration and introduction than the really heavy technical deep dives, though without being too basic. This might not be the perfect conference for geeking out over type systems or category theory, but if you’re interested in building real software with a functional mindset, then it should be right down your alley.

The presentations

There are a few talks we would like to highlight. (Videos of the presentations aren’t out quite yet, but we’ll update the blog post with links when they arrive.)

Bozhidar Batzov: Clojure: The Bad Parts

The first highlight was actually also the first talk of the conference. Batzov is the maintainer for CIDER, an Emacs extension for Clojure-development. He is an experienced Clojure developer, and clearly loves the language.

In this talk, however, he focused on the parts of the language that he doesn’t like. He had complaints both technical in nature, and about how the community and language are being run. A really good talk, stripped of any of the “hallelujah factors” that many talks about programming languages tend to have.

Anjana Vakil: Immutable Data Structures for Functional JS

Persistent data structures are one of the pillars of functional languages. Without them we would not have the performance to do most any useful computations.

In what might very well have been the best presented talk of the conference, Anjana Vakil introduced the concept, motivated why these data structures are important, and described in broad strokes how they work. It’s not the deepest technical description, so if you already know the concepts, this talk probably isn’t for you. But if you want a light, fun and accessible introduction, look no further!

Anjana Vakil talks about immutable data structures

Saša Jurić: Basic Guarantees of Erlang VM (BEAM)

The virtual machine running Erlang and Elixir, known as BEAM, isn’t quite like anything else out there. As Saša Jurić points out in his talk, it was created with the intention of solving a very specific problem, which it does beautifully. And this is what makes it so great.

He talked about how BEAM works, and which guarantees it gives you. He also did some impressive demos of what the VM is capable of, such as live debugging of processes, drilling down to figure out which user inputs caused the problem, and even terminating runaway resources — all without affecting the performance of the rest of the system. BEAM really is something quite different.

Saša Jurić talks about BEAM

Our Workshop

After lunch on the second day it was finally our turn. We were giving a workshop guiding the attendees to create a simple programming language from scratch. The materials are all available online at, by the way, if you would like to try for yourself.

We found our way to the venue (which was a different one from where the presentations had taken place) during lunch time and got everything set up. Despite having to compete with another workshop as well as the hugely popular guided tour of Sofia, we had a pretty good crowd showing up.

Kjetil introduces the workshop

At first, after giving the introductory presentation, we felt like we were off to a pretty bad start. We hardly got any questions, as people were just sitting quietly looking at the tasks by themselves. Not at all like the previous few times we’ve held the workshop! We’re not sure if it was a cultural thing, as most of the attendees were local (guess the international guests would, understandably, rather attend the guided tour!), or if it was just this particular group.

However, despite not wanting to ask us anything, we got most of the attendees talking after a while. And it turned out they were making pretty good progress! People seemed to have fun, and we got some heartwarming feedback from several people as they were leaving.

Workshop attendees working

Final Impressions

We had a really good time at Partial. It is a small but fun conference, with quality talks, and really nice people. One we will probably attend again.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.