F# eXchange 2021

Topics covered:

Wednesday, 20th October, Online Conference

19 experts will be speaking. Starts at 11:00 AM BST (10:00 AM UTC)

Learn the power and simplicity of the F# language and be part of the community at F# eXchange 2021.

With talks and sessions chosen by developers for developers, the F# eXchange is the premiere gathering for the international F# community to come together, exchange ideas and meet likeminded people.

A full-focused day packed with expert-led keynotes, breakout sessions and practical, coding-based talks you'll connect with the F# Community around the globe.

Come learn the latest techniques and newest language developments from the world’s foremost F# experts, and forge relationships that will last for years to come.

Book today for only £99

F# eXchange 2021

F# eXchange 2021 will be an online conference hosted on the Hopin platform.

By hosting F# eXchange online in 2020, we were able to truly welcome the international F# community to the conference.

Once again, we are excited to welcome the F# enthusiasts from around the globe!

There are still more speakers and keynotes to be announced, so stay tuned for more updates!

Explore F# eXchange 2021

Get involved, plan your conference, or start your learning today

F# eXchange 2020 program

View the programme

We'll be announcing new speakers every week in September, so check back often for updates!


F# eXchange 2021 Call for Papers

Want to get involved?

Sponsoring a conference is a terrific way to support and connect with our global community of software professionals.

Learn More

F# eXchange SkillsCast videos

Revisit 2020

Revisit 15+ sessions from F# eXchange 2020 in our library of SkillsCast videos.

Last year's conference featured talks from Don Syme, Rumyana Neykova, Alfonso Garcia-Caro, Riccardo Terrell, Ody Mbegbu and many more!

visit the library

Diversity Matters Scholarship

Skills Matter offers scholarships to people from underrepresented groups in tech who wouldn’t otherwise be able to attend.

If you believe you are a member of a group that is underrepresented within the tech community or at technical conferences we encourage you to apply.

Learn More

Program Committee

All of the talks at the F# eXchange are selected by our volunteer Program Committee which evaluates and selects which speakers and topics will be included in the conference program. This committee includes developers, practitioners and enthusiasts of all levels.

This year's Program Committee includes:

  • Photo of Ambika Eshwar

    Ambika Eshwar

    Undergraduate Student, F# enthusiast

  • Photo of Don Syme

    Don Syme

    Principal Researcher at Microsoft Research, Cambridge. Designer and architect of the F# programming language.

  • Photo of Kit Eason

    Kit Eason

    Software Developer, Trainer, Author of Stylish F#

  • Photo of Ody Mbegbu

    Ody Mbegbu

    Software Engineer, building data tools for scientists

  • Photo of Zaid Ajaj

    Zaid Ajaj

    Software engineer building F# open-source developer tools

Excited? Share it!


Hedy: Creating a Gradual Programming Language


Hedy is a gradual programming language to make learning programming easier. The core idea of Hedy is that it uses different language levels. In level 1, there is hardly any syntax at all, for example printing is done with:

print hello F# eXchange

In every level, new syntax and concepts are added, until kids are doing a subset of Python in level 22 with conditions, loops, variables and lists. The leveled approach means that learners do not have to learn all syntax rules at once. Hedy is aimed at children that want to get started with textual programming languages, but for whom starting with Python might still be too complex.

Hedy is open source, runs in the browser, is free to use, and available in fifteen different languages (Including English, Spanish, Chinese and Hindi). Hedy was launched in early 2020 and since then almost 1.5 million Hedy programs have been created by children worldwide. Try Hedy at www.hedycode.com.

In this talk, Felienne will dive into the pedagogy behind Hedy, but also expand on the technical aspects of Hedy. For example, a set of increasingly complex grammars, rather than one grammar, poses new challenges for language design.

Felienne Hermans

Associate professor in software engineering
Delft University of Technology

Using F# to Structure an Island of Simplicity


The F# language encourages you to precisely model your domain, create succinct DSLs and write code functionally using immutable data structures. When used to build large-scale real-world systems, this produces simple code that is easy to reason about, while being joyous and productive to create.

Within the confines of an F# system, one that is fully within our control, these patterns are naturally predominant. However, the real-world is messy, and any useful system needs to go beyond its boundaries and interact with outside systems such as web servers, database servers, distributed application orchestration frameworks and message brokers. Such interactions, while empowered by the powerful .NET ecosystem, can be jarring to an F# developer, as they do not speak the same patterns that we become accustomed to.

We will explore some approaches in abstracting away these "impure" systems, in such a way so it feels natural to interact with them using F#. These are presented using a few real-world examples:

  1. F# and Databases: persisting and evolving rich domain models using relational databases, without converting to laborious SQL
  2. F# and Actors: creating distributed applications of massive scale and zero single points of failures using an actor framework such as Orleans
  3. F# on the web: creating seamless client/server web and mobile applications without thinking of APIs

The take-away from this session would be to encourage thinking in terms of creating F#-friendly DSLs on top of impure systems, such that application developers can focus more on actually representing business logic and workflows, as opposed to obsessing over mundane details such as persistence, scaling and APIs.

Tejas Viswanath

Tejas is co-founder & CTO of Chaldal.com, the world's first 1-hour grocery delivery service and pioneers of the now-ubiquitous concept of urban micro-warehousing. Backed by The World Bank and Y Combinator, Chaldal's mission is to deploy technology that helps develop the developing world. They work with various government development agencies and the UN World Food Programme, and use F# to build systems that connect farmers, redefine supply chains and support refugee camps.

Lightning Talk: F# as DSL for Complex Domains

Software development is an asymptotic process. What developers often overlook is that the life expectation of lines of code exceeds the average duration of a developer's stay in the project or team. More often that not it's other programmers who will have to maintain our code, so we should strive to get a clear and consistent representation of our domain in code early, even though it will be continuously revised and improved.

This talk is about how we describe in F# the domain of media content distribution and why we believe F# is an excellent language for efficient collaboration in dynamic teams.

Vagif Abilov

Vagif Abilov is a Russian/Norwegian software developer working at Miles. He has more than 30 years of programming experience, currently writing code in F# and C#. Vagif is a frequent speaker at software conferences where he also plays in a speakers band "Dylan and Linebreakers".

Adopting F# on a Consultancy Project: From Zero to MVP to V0 Launch

If not everywhere, certainly in Brazil, it is hard to employ functional programming languages on a enterprise use case. Customers often prefer solutions they already know — especially on consultancy jobs.

This is the story of what happened when a customer gave us full autonomy on tech choices — giving us the chance to build an application from the ground up, with whatever tools we found best — and for us, that meant full stack F#.

We've been enthusiastic about the idea for years, and we all had toy projects w/ F#, but putting up a production server required us to solve many problems. Data sensitivity, concurrency control, massive machine learning jobs — we've done it before, but this time we did it with F#.

This talk compares the developer experience with and without strongly typed functional programming. This is a talk of the courage it takes to make the choices we made, and the pay off.

Juarez Aires Sampaio Filho

Juarez is a Senior Software Engineer with 4 years professional experience at a Brazilian based software house working extensively with world-class fin techs. He has recently joined Datarisk, a Brazilian startup that brings data intelligence to local business. His mission at Datarisk is to develop a high productivity culture within the Technology Unit. My personal end game is to run a software house and software school that connects international software businesses to extremely abundant, but under-utilized high quality talent in the Brazilian youth.

Working with GraphQL Services from F# Applications

In this talk, we will talk about GraphQL, what it is and why it is a great alternative to the traditional REST approach. Then I will present a tool called Snowflaqe which allows F# applications to communicate with any GraphQL web service.

Snowflaqe implements a type-safe functional approach to data access with GraphQL. It does so by taking GraphQL queries, type checking them and generating idiomatic F# code which sends the queries and handles the data transport.

I will demonstrate multiple practical real-world applications starting with generating Excel reports from GraphQL data, to building our own Excel functions in F# which generate reactive Excel tables from the GraphQL data (featuring ExcelDNA)

The "Why" of this talk:

Having worked with GraphQL for the past couple of years, I believe GraphQL to be a very powerful technology. However, in the F# community it is rarely talked about and it is heavily underused. Many moderns platforms today expose their data using GraphQL and so I built Snowflaqe to make it easier for F# developers to consumer and integrate with these platforms.

Zaid Ajaj

Zaid is a software engineer building F# open-source developer tools.

How to Run the SAFE Stack on Kubernetes with a PostgreSQL Backend

My team works on several F# web services deployed on kubernetes with a PostgreSQL backend. In this talk I'll be sharing some of the methods we use to keep database operations automatic and smooth.

This talk is an interactive talk, including F# builds, docker builds and kubernetes deployments.

Code from the talk is built on the SAFE stack bookstore example, and is publicly available on a github fork.

The talk covers: * Connecting to a PostgreSQL database from the SAFE stack * Running database migrations on kubernetes automatically during rolling upgrades * Writing an F# console app used by a kubernetes cron jobs to clean up old database data

As well as (less F# related): * Building docker images (with F# code in them) * Running applications on kubernetes * Running a PostgreSQL database on kubernetes

Chris Arnott

I have been programming for 10 years and writing F# for the past 3. Working on a wide range of projects from high load voicemail systems to highly performant financial research libraries, I have seen a variety of different programming challenges.

Fable Python |> F# ♥️ Python

Despite being 10 times slower than most compiled languages, Python is still one of the top 3 popular languages in the world. Python is easy to use, and the low friction makes Python a popular choice for new developers. Python is also the de-facto language for data science with the SciPy stack consisting of libraries such as Pandas, NumPy, SciPy, Matplotlib, and Jupyter.

F# and Python look similar in many ways. Both languages use indentation instead of braces and semicolons. However, type annotations in Python sometimes make the language ugly and unreadable, and static type checkers like Mypy and Pyright break your codebase with every new release. F# with its superior type system and type inference, combined with pipelining, pattern matching, computational expressions, makes F# a better Python.

Interop with Python could open up yet a new world of new possibilities for F# developers. This talk will dive into the details of how Fable compiles F# to Python, and also how we can interop with the existing Python ecosystem. We will go through the current status, and what remains to be done.

Dag Brattli

Dag Brattli is the creator of several Python libraries such as the Reactive Extensions for Python (RxPY) and Expression, but also F# libraries such AsyncRx, Oryx and Fable.Reaction. He is now on a quest to bridge the worlds of F# and Python. Microsoft Alumni and currently works at the DataViz team at Cognite.

Lightning Talk: Building Cross-device Experiences with Uno Platform and Elmish

Uno is the only cross-platform framework that allows you to build pixel-perfect UIs and connect app implementations in a truly cross-device experience.

But what about F#? Uno is UWP and UWP does not support F#...

Until now.

WinUI 3 works with F# on .NET 5. And current UWP implementation can reference an F# library.

So how can I create an Uno app with F#? It's easy and my company prepared an enterprise-grade dotnet new template to get started.

This talk covers:

  1. Brief Uno Platform introduction: what is, which platforms supports, design in Blend, limitations
  2. What is Elmish.Uno: port of Elmish.WPF, enhancements, NuGet package, template
  3. How to get started with Elmish.Uno: template name, samples
  4. What's included in the template: template structure, built-in Elmish programs, propagating messages straight to the root program
  5. How to structure your Elmish.Uno: one root program per app, multiple root programs, XAML visual states and model states, subscribe to UI event in Elmish program

Andrii Chebukin

CTO and co-founder of The Secret Circle Solutions Creator of FSharp.Azure.Cosmos Maintainer of Elmish.Uno and FSharp.Collections.Immutable Contributor to FSharp.Data.GraphQL, SwaggerProvider, FSharp.SystemTextJson Mentor of a contributor who built an MSBuild task for Snowflaqe IT Step Computer Academy lecturer (primary disciplines: Windows development with WinUI, Introduction to Azure) Author of "Windows development in Blend" internal video course

Formula 1 and Serie A fan, amateur carting racer, wakeboarder, and windsurfer

Why Every Day as a Developer Would Be Easier with F#

Those who develop with .NET probably do so with C#. But F#, in particular, has great potential to make daily work easier. Everything that C# can do can also be done with F#, and often in a more lightweight and less error-prone way. If you want to see where the differences are and why F# is a good programming language for normal software development, come to this session! And don't worry, the talk is free of functional programming jargon – I promise!

Urs Enzler

I'm a software architect and software developer with a focus on the .Net platform and Azure. I like to build products with a short and frequent feedback loop to its users and customers - some would call this agile or continuous delivery. Besides working on the time tracking product TimeRocket, I'm a consultant on software architecture and technical aspects of working as a team using continuous delivery like evolvable design, test-driven-development and alike. And I'm the co-host of the .Net User Group Zentralschweiz. You can find my blog here.

Rocking it with sitelets: building a CMS with WebSharper

Sitelets can model anything that has to do with the server side: from microservices and backends of client-server applications to statically generated websites. Using just a few sitelet combinators and some clever custom web controls, you can also build a full content management system (CMS) for your sitelet pages in just a couple hundred lines of F# code.

In this talk, I will go over some of the sitelet fundamentals, build the necessary web controls and their datastore, utilize external HTML templates instead of in-code HTML construction, and abstract the entire CMS capability as a single generic sitelet combinator. At the end, you can add a complete CMS subsystem to any sitelet you choose with not much more than a single function call. Not only that, but you can also embed the resulting CMS-enhanced pages in your Giraffe or Saturn applications, and enjoy the best of breed of F# web stacks.

Adam Granicz

Adam Granicz is a 11x F#/.NET MVP and the coauthor of five F# books, key F# community member and evangelist, a regular speaker at developer conferences and workshops, and the CEO of IntelliFactory, the F# company specializing in trainings, consulting, and developing functional, reactive web and cloud applications.

Lightning Talk: My 100 Days of F# - in 10 Minutes

2021 has been a year of many programming languages for me. I initially wanted to explore one language a month to experience how they make me think. That came to a halt after I spent a weekend with F#.

By the time October arrives, I will have surpassed 100 days with F#. Though it is not a language I use at work, there wasn't a day I missed doing any F#. This talk will be a tour of the whys, hows and whats of my experience. Why did I decide to commit to F#? How did I learn? What did (or will) I make?

I would in particular focus on how F# influenced the way I think about solving problems and which of its features were challenging. I never worked with .NET nor did I have experience in a functional language that is statically typed — I hope this motivates folks in that same boat. There'll be code snippets, illustrations and screenshots. All in 10 minutes.

Mafinar Khan

Mafinar is a polyglot programmer, mentor, and speaker. He has over a decade of experience in Python, and then some Elixir. Mafinar loves taking a data driven, verb dominated approach to solving problems. F# is his gateway to typed functional programming and also the current passion. His interests include domain driven design and graph theory. When not thinking about technology, Mafinar enjoys cooking spicy foods and introducing his son to 80s cartoons that he grew up watching.

PHP to F#, three years later

Even though the F# community does an outstanding job at pointing out how awesome the language is, I have the feeling that many people in the broader "programming community" still don't know or consider F#. Customers don't know F#. At least not the ones I have spoken to the past three years. Time after time. I've had to explain what F# is, why we're using it, and why it's the best choice for their project. I figured that F# can use some extra experience reports and success stories.

Almost all of my coworkers learned F# from scratch. I learned F# from scratch. At some point, we hired someone who had never programmed before and taught him F#. All while delivering projects to customers. It was a lot of fun and we've had a lot of success. Needless to say, we also made a lot of mistakes. These mistakes make up interesting stories, experiences, and lessons learned.

Aaron Muylaert

I have supported teams developing and maintaining a wide variety of software solutions at https://www.tactics.be for the past ten years. Currently empowering front-line workers using F# at https://www.maecos.com.

Understanding Microservices: A Guide for the Monolithic Developer

Microservice Architecture and the reasons why you should move to it, and the reasons you shouldn't, have been well discussed. If you have already decided to move over to microservices from monolithic development, then you may be finding the whole process a bit daunting. What aspects should you, a developer be concerned with? What does all the terminology mean? How do the services talk to each other? In this session, I will show you how to get started with microservices architecture, answering these questions and many more. We'll look at The Tanzu Tacos project, built with ASP.NET 5, and explore how the whole process fits together from a development point of view. Hopefully, you'll leave the session with the confidence to start your own microservices application development straight away!

Layla Porter

Layla is a Developer Advocate at VMware serving the .NET community. She is a Live Coder on Twitch, a Microsoft MVP, A GitHub Star, a director on the board of the .NET Foundation, and co-organiser of MK .NET user group. Layla loves sharing knowledge whilst having fun. No question is stupid and beginners are always welcome.

Lightning Talk: In defense of Exceptions: Throw (away) your Result

As functional .NET developers, we must avoid using exceptions at all costs and apply Result type everywhere instead, right? What if I told you there could be a better way of error handling without all the tiresome up-n-down mappings while keeping the benefits of both worlds?

Get ready for heretic talk attempting to destroy some of F# error handling dogmas, presenting different approaches used on previous projects with all the benefits and pitfalls, and maybe... offering a multiparadigm approach for a multiparadigm language.

Roman Provazník

Roman Provazník is an F# Lead Developer & Architect of CN Group CZ, OSS author, melomaniac, speaker, and a terrible drummer. With 20+ years of experience with software development, he tried many languages from Pascal, Prolog to Java and C#, but successfully forgot most of them. As a big fan of functional-first .NET language F#, he founded the Czech F# community which he loves to maintain and grow. He also somehow sneaked into F# Software Foundation Board of Trustees for one year.

F# Gives You Superpowers

I will use Rollup Risk to demonstrate how productive it is possible to be in F#, building real world apps, as a tiny team or even a team of one.

The application was built by one person (me!) in around 5 months, is running with real customers, and continues to evolve (in fact a major new feature is about to land).

We'll go through the big picture architecture, application and cloud, and take a look at some of the code, tools, and patterns used along the way with some of the key decisions (good and bad) made along the way.

James Randall

Cyclist. Problem solver. Functional fan. Blogger and speaker. Recovering CTO. Happiest on two wheels. Microsoft MVP (Azure). @dotnetfdn member.

It's a stress-free life being an F# dev

We started as a team of three in August 2019 building a greenfield product for a new start-up, supplying GPS data 24/7/365 for a new cloud-hosted efficient, fast, and accurate ETA calculator for trucks delivering goods across Europe. We wanted to use a functional programming language and after careful consideration, we chose F# and .NET Core. Today, we have grown to a team of eight, are offered as a product in our own right, and are processing nearly 8 million GPS signals per day.

In this session, you will discover why we adopted F#'s functional-first philosophy and the positive impact that decision has had on product development and the lives of our team. We will look at the language features that enable us to confidently connect to over 250 different sources of data with relative ease and minimise production issues. If you want to see why F# is such a great choice for building scalable Web APIs and services, then this is a session that you need to see!

Ian Russell

Software developer for over 25 years. C# since 2003. Re-discovered my passion when I found functional programming and F#. I work remotely for Softwarepark, a specialist software and data science supplier based in Vienna, Austria. I specialise in presenting F# to newcomers to the language at user groups and through my employer's blog.

Lightning Talk: A Finance Student Learns to Code F#

The project started with my professor and I trying to build a database from web-scraping a website, mootleyfool.com. In this website, one can find all sorts of company specific related news, including various quarterly earnings calls transcripts. Our objective was then to scrape as many transcripts as we could from the website and form our database.

We were able to achieve this with ease using F# and I would love to share this experience. I used to web scrape using other languages like python but using F# for this task was surprisingly simple and effective. In the end, we were able to scrape close to 20,000 earning transcripts or approximately 1gb worth of text data. It is worth mentioning that F# asynchronous methods drastically improved the speed of which the transcripts were parsed.

Now that we had our dataset, we proceeded to explore it using standard NLP classification algorithms like naïve bayes. To guide us in this journey, we used Mathias Brandewinder’s F# textbook: Machine Learning projects for .NET developers.


Antonio Salomao

Finance student and F# enthusiast

Lightning Talk: Fantomas V: The One that Will Format the F# Compiler.

In this talk, I'd like to share the vision of where Fantomas is going. The project had a rough start and has slowly become more stable over the years to the point where it can be used in every developer's daily workflow. Well, not entirely... one small team of indomitable devs still holds out against the formatter. Not because of willingness, no because of a terribly complex codebase. Yes, I'm talking about the F# compiler itself. I'd like to highlight what challenges lie ahead in formatting the compiler.

At the beginning of the talk, I illustrate how you can set up Fantomas in a project and I explain why you would do it in the first place. This first part is pretty universal for the entire F# community. However, when trying it out for the compiler, some roadblocks pop up. These will be addressed in the next major version and I want people to get excited about this.

The talk would be a great opportunity for the maintainers to share some perspective with end-users.

Florian Verdonck

Florian is an eccentric developer with ambitions and a progressive mindset. With a strong affinity for functional programming and modern web development, he participates in countless open-source endeavours.

He is a jack of all trades with a keen focus on F# and tooling. In recent years he started taming the dragon of public speaking. After some internal and remote conferences, Florian wishes to excel at the art of eloquence and bring you another smash hit lightning talk at this year's F# eXchange.

Deep Learning with F#: An Experience Report

This talk details the experience of using F# for DL and data science (DS) on a daily basis in two large corporations and compares F# with Python for DL/DS

With respect to DS/DL, there are two issues of concern with Python: (A) models are becoming tightly integrated with the front-end language (e.g. Python and PyTorch). This makes its harder to consume some recent models from other languages / ecosystems. And (B) today's data pipelines, can become large and complex resulting in large code bases surrounding the actual DL model(s). Python's lack of static typing and slowness is a major impediment.

F# is expressive, statically type-checked and much faster than basic Python at data handling. Combine that with tooling that supports interactive programming well an F# is ideally suited DS/DL for the .Net ecosystem.

Faisal Waris

ML/AI researcher and data scientist for over 5 years of experience in data science and deep learning. PhD in Computer Science from Wayne State University.

Lightning Talk:Reactive forms and validation with WebSharper

WebSharper.Forms is a powerful form abstraction library to build concise web forms that integrate directly into WebSharper applications. In this session, I will demonstrate how these reactive forms can be combined, what advantages they bring, and how they can be embedded into HTML and client-server applications. I will also show how to enlist external form validation libraries using WebSharper Interface Generator (WIG), an F# eDSL that generates type-safe bindings to JavaScript code, with validation rules coming from both the client and backend side.

Get Involved

The F# eXchange Call for Papers has now closed.

Thank you for your interest We would like to thank everyone who submitted a proposal.

Proposals are now being evaluated by our Program Committee. If you've submitted a talk you should be hearing from our Programming Team very shortly. Thank you for your submissions.

If you've missed the deadline, why not consider submitting to one of our other Call for Papers below.

Check Out Our Other CFPs

Become a sponsor of F# eXchange

Whether you're looking to attract talent to your team or accelerate adoption of your tools and products, sponsoring F# eXchange is a terrific way to support and connect with our global community of developers working with functional languages like F#.

We offer a variety of opportunities for continuous visibility and continuous engagement. Community is at the heart of all we do at Skills Matter, and we believe it is mutually beneficial to foster genuine connections between our members and truly innovative businesses.

Rather than a typical ad hoc event sponsorship, we’ll work with you to create bespoke engagement opportunities that benefit both your business and the Skills Matter community. Whether you’re looking to develop one-to-one relationships with our members, or to showcase your product and spread brand awareness, we’d love to find a way to create meaningful interactions between you and our community.

To discuss sponsorship opportunities please contact the team:


Hold tight, skillscasts coming soon!


Other Years

Thank you to our sponsors and partners