Krzysztof Cieślak

Information & Communications Technology

.NET F# Open Source Software Web Development Functional Programming JavaScript TypeScript JavaScript Typescript Developer Experience Developer Tools

Łódź, Łódź Voivodeship, Poland

Krzysztof Cieślak

F# Developer, OSS contributor, Developer Experience Resercher

Krzysztof is a photographer, globetrotter, and public speaker. He works as a Senior Research Engineer at [GitHub Next](https://next.github.com/), where he designs and builds the next generation of developer tools such as [GitHub Copilot](https://copilot.github.com/).

After the work, Krzysztof is an open-source software maintainer passionate about functional programming (especially F#), editor tooling and developer experience - he has created and maintained several OSS projects varying from [language servers](https://github.com/fsharp/FsAutoComplete) to [web frameworks](https://github.com/SaturnFramework/Saturn) to [VSCode plugins](https://github.com/ionide/ionide-vscode-fsharp).

Additionally, he is a passionate public speaker. You can meet him at many conferences around the world, where he is always trying to meet new people and learn how to make the lives of software developers better.

Current sessions

Reinventing MVC pattern for web programming with F#

The MVC pattern has been one of the most important architectural patterns for server-side web development - it has been implemented and popularized by frameworks like Ruby On Rail or ASP.NET MVC. However, this pattern was traditionally coupled with object-oriented programming. In the talk, I will show how to reinvent MVC pattern, and structure your web application in a functional language - F#.

The talk will cover some brief introduction to F# - modern functional programming language running on .Net platform, show how to model MVC layers using functional composition, and at the end show some examples of applying MVC pattern with Saturn - opinionated, web development framework for F# which implements the server-side, functional MVC pattern


Challenges of post-OSS world.

OSS has won. After years of convincing people to use open source software, fighting with false dichotomy between OSS and industrial, commercial software, and defending against negative biases, position of OSS is no longer disputed – it's been used by the vast majority of companies around the world, it has become default choice when choosing technologies, it powers the internet, our PCs, mobile phones and most devices we use every day, it's been accepted by huge, conservative companies that were against the whole concept a few years ago.

But were we ready for that? Have we built enough foundations for this new world, or are we just building the castle on the sand and another disaster like Heartblead is going to happen? Are assumptions on which we’ve built our mental model about OSS still correct in 2018? And what's the future of the OSS ecosystem?


LSP - magic behind your IDE

Language Server Protocol (LSP) is a project that has changed how editor tooling is built over the past two years. It is a specification of the communication between a client (editor) and a server that provides language tooling capabilities such as autocomplete, tooltips, etc. It reduces the m-times-n problem to the m-plus-n problem —similar to how Virtual Machines solve the same problem for deploying code to many platforms.

In the talk, I'll give general overview of the protocol, show some of its capabilities and explain why it is so important. I'll also dive into some sample implementations, showing you how you can leverage LSP to create rich editing experience for many different editors.


Behind F# editor tooling

F# editor tooling is in a unique position among FP languages - cross-platform, feature-rich, stable, innovative and supported and actively developed by both OSS community and commercial vendors. It's also ubiquitous - powered by the compiler which is developed with tooling in mind.

By the end of the talk, you should have an idea of how to design pieces of a compiler so that accurate tooling can be built, how constraints of a language affect tooling, and some of the challenges tooling developers face.


F# Full Stack with SAFE

F# excels at building efficient, scalable and robust web solutions. Web programming is based around receiving a single HTTP request and replying with a result, which maps very well to a stateless, functional approach. Advantages to using F# for web programming include using high level, declarative, composable code, interop with rich .Net ecosystem, and using battle-tested solutions like Kestrel and ASP.NET Core. The introduction of the [SAFE stack](https://safe-stack.github.io/) presents significant productivity gains for .NET developers to build full stack web applications in F# which run on both the server and in the user’s web browser, whilst taking advantage of F#'s functional-first feature set and capabilities, including reduce bug rates and quicker time to market.

In this talk you'll learn how to write end-to-end applications that run on the server (across Mac, Windows or Linux) and browser using F# for the entire system and effectively use the SAFE stack toolchain including .Net CLI, Fable, and Saturn tooling.


Let's code together - bringing F# to JS world.

Javascript has conquered the software development world - developers can use it in the browser, on the server, to write mobile apps, on the desktop with Electron, and even to create serverless services. Whether you like the language or not, the truth is JS developers have built an incredible ecosystem with libraries and tools to do almost anything.

During the talk, I'll show how to bring the power of F# - robust, static type system with type inference, pattern matching, and immutable design, and succinct syntax - to this vast and rich JS world using Fable - F# to JS compiler.

It will be a practical talk, showing various use cases of Fable - from building React-based web applications, through building serverless, edge web services using Cloudflare Workers, creating mobile apps, to building VSCode extensions.


Past and future events

.NET Conf: Focus on F#

A Tour of F# Editor Tooling
29 Jul 2021

Lambda Days 2020

Behind F# editor tooling
13 Feb 2020 - 14 Feb 2020
Kraków, Lesser Poland, Poland

Scale By The Bay 2019

Hacking F# in JS ecosystem
13 Nov 2019 - 15 Nov 2019
San Francisco, California, United States

BRISTECH 2019

LSP: the magic behind your IDE
7 Nov 2019
Bristol, England, United Kingdom

Workshop - SAFE Stack (focused on Fable & Elmish)

21 Oct 2019 - 25 Oct 2019
Zürich, Zurich, Switzerland

F# Zurich User Group

Reinventing MVC pattern for web programming with F#
24 Oct 2019
Zürich, Zurich, Switzerland

Open F# 2019

Keynote - Ionide. The OSS Story
SAFE Stack Dojo
25 Sep 2019 - 27 Sep 2019
San Francisco, California, United States

Fable Conf 2019

Building F# Tooling
6 Sep 2019 - 7 Sep 2019
Antwerpen, Flanders, Belgium

Prage F# User Group

State of the union
9 Apr 2019
Prague, Hlavní město Praha, Czechia

F# eXchange 2019

Reinventing MVC pattern for Web Programming with F#
4 Apr 2019 - 5 Apr 2019
London, England, United Kingdom

FOSDEM 2019

Hacking F# in JS ecosystem
Reinventing MVC pattern for web programming with F#
Panel: OSS and .Net
2 Feb 2019 - 3 Feb 2019
Brussels, Brussels Capital, Belgium

Workshop - F# development with SAFE Stack

Workshop - F# development with SAFE Stack
7 Nov 2018
Vienna, Austria

FableConf 2018 + RemmidemmiConf 2018

Keynote - Future of F# web development
26 Oct 2018 - 27 Oct 2018
Berlin, Germany

Open F# 2018

Web Programming with F# and SAFE Stack (workshop)
Reinventing MVC pattern for web programming with F#
Challenges of post-OSS world.
27 Sep 2018 - 28 Sep 2018
San Francisco, California, United States

OSCon Portland 2018

Getting started with Fable - F# to JS compiler
16 Jul 2018 - 19 Jul 2018
Portland, Oregon, United States

NDC Oslo 2018

13 Jun 2018 - 15 Jun 2018

New Crafts Paris 2018

Challenges of post-OSS world
17 May 2018 - 18 May 2018
Paris, Île-de-France, France

flatMap(Oslo) 2018

Getting started with Fable - F# to JS compiler (workshop)
2 May 2018 - 3 May 2018
Oslo, Norway

NYC F# User Group

Reinventing MVC pattern for web programming with F#
25 Apr 2018
New York City, New York, United States

Talk for Jet.com

Challenges of post-OSS world.
24 Apr 2018
Hoboken, New Jersey, United States

The Hanselminutes podcast

F# and the functional SAFE Stack with Krzysztof Cieślak
23 Mar 2018

Workshop - Introduction to F#

22 Jan 2018 - 24 Jan 2018
Kaunas, Lithuania

CodeMotion Milan 2017

Hacking F# in JS ecosystem
10 Nov 2017 - 11 Nov 2017
Milan, Lombardy, Italy

Remmidemmi Conf 2017

Path to happiness with OSS
4 Nov 2017
Berlin, Germany

FableConf 2017

Building editor tooling with Fable
Write your own VS Code extension - workshop
22 Sep 2017 - 23 Sep 2017
Bordeaux, Nouvelle-Aquitaine, France

New Crafts Paris 2017

Hacking F# in JS ecosystem
17 May 2017 - 19 May 2017
Paris, Île-de-France, France

Get.Net Lodz 2017

Hacking F# in JS ecosystem
22 Apr 2017
Łódź, Łódź Voivodeship, Poland

F# eXchange 2017

What's new in F# xplat tooling in 2017?
6 Apr 2017 - 7 Apr 2017
London, England, United Kingdom

.Net Fringe 2016

Getting productive with F# Open Source tooling
10 Jul 2016 - 12 Jul 2016
Portland, Oregon, United States

F# Technology Creators Workshop

Ionide - new features
13 May 2016 - 14 May 2016
Cambridge, England, United Kingdom

F# eXchange 2016

Forge - F# CLI tooling
15 Apr 2016
London, England, United Kingdom

NDC London 2016

Ionide and state of F# open source environment
11 Jan 2016
London, England, United Kingdom