Krzysztof Cieślak

Krzysztof Cieślak

F# Developer, OSS contributor, Developer Experience Resercher

Łódź, Poland

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.

Area of Expertise

  • Information & Communications Technology


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

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.

Bringing the Power of AI into your Editor with GitHub Copilot

GitHub Copilot is an AI pair programmer tool that puts the collective knowledge of millions of developers right at your fingertips, directly in your IDE.

During the talk, Krzysztof, a core team member behind GitHub Copilot, will demo how Copilot works and discuss the design principles used while creating the project.

He will also dive into some of the project's technical details - how Copilot communicates with its AI, what "queries" it uses, how it processes responses, and how it integrates with various IDE to create characteristic Copilot's UX.

meet.js Summit 2022

Bringing the Power of AI into your Editor with GitHub Copilot

September 2022 Poznań, Poland

JSNation 2022

Bringing the Power of AI into your Editor with GitHub Copilot

June 2022 Amsterdam, Netherlands

.NET Conf: Focus on F#

A Tour of F# Editor Tooling

July 2021

Lambda Days 2020

Behind F# editor tooling

February 2020 Kraków, Poland

Scale By The Bay 2019

Hacking F# in JS ecosystem

November 2019 San Francisco, California, United States


LSP: the magic behind your IDE

November 2019 Bristol, United Kingdom

F# Zurich User Group

Reinventing MVC pattern for web programming with F#

October 2019 Zürich, Switzerland

Workshop - SAFE Stack (focused on Fable & Elmish)

October 2019 Zürich, Switzerland

Open F# 2019

Keynote - Ionide. The OSS Story
SAFE Stack Dojo

September 2019 San Francisco, California, United States

Fable Conf 2019

Building F# Tooling

September 2019 Antwerpen, Belgium

Prage F# User Group

State of the union

April 2019 Prague, Czechia

F# eXchange 2019

Reinventing MVC pattern for Web Programming with F#

April 2019 London, United Kingdom


Hacking F# in JS ecosystem
Reinventing MVC pattern for web programming with F#
Panel: OSS and .Net

February 2019 Brussels, Belgium

Workshop - F# development with SAFE Stack

Workshop - F# development with SAFE Stack

November 2018 Vienna, Austria

FableConf 2018 + RemmidemmiConf 2018

Keynote - Future of F# web development

October 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.

September 2018 San Francisco, California, United States

OSCon Portland 2018

Getting started with Fable - F# to JS compiler

July 2018 Portland, Oregon, United States

NDC Oslo 2018

June 2018

New Crafts Paris 2018

Challenges of post-OSS world

May 2018 Paris, France

flatMap(Oslo) 2018

Getting started with Fable - F# to JS compiler (workshop)

May 2018 Oslo, Norway

NYC F# User Group

Reinventing MVC pattern for web programming with F#

April 2018 New York City, New York, United States

Talk for Jet.com

Challenges of post-OSS world.

April 2018 Hoboken, New Jersey, United States

The Hanselminutes podcast

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

March 2018

Workshop - Introduction to F#

January 2018 Kaunas, Lithuania

CodeMotion Milan 2017

Hacking F# in JS ecosystem

November 2017 Milan, Italy

Remmidemmi Conf 2017

Path to happiness with OSS

November 2017 Berlin, Germany

FableConf 2017

Building editor tooling with Fable
Write your own VS Code extension - workshop

September 2017 Bordeaux, France

New Crafts Paris 2017

Hacking F# in JS ecosystem

May 2017 Paris, France

Get.Net Lodz 2017

Hacking F# in JS ecosystem

April 2017 Łódź, Poland

F# eXchange 2017

What's new in F# xplat tooling in 2017?

April 2017 London, United Kingdom

.Net Fringe 2016

Getting productive with F# Open Source tooling

July 2016 Portland, Oregon, United States

F# Technology Creators Workshop

Ionide - new features

May 2016 Cambridge, United Kingdom

F# eXchange 2016

Forge - F# CLI tooling

April 2016 London, United Kingdom

NDC London 2016

Ionide and state of F# open source environment

January 2016 London, United Kingdom

Krzysztof Cieślak

F# Developer, OSS contributor, Developer Experience Resercher

Łódź, Poland