Practical Functional Programming with Typescript

About This Event

Welcome to Practical Functional Programming with Typescript!

In this 3-day interactive workshop (8h/day), we’ll cover a wide range of topics, mixing theory and practice. You’ll learn the basics of FP (Pure Functions, ADTs, e-DSLs) and how to use functional effect-systems to build modular, performant applications that are easy to write and maintain. We expect attendees to do practical exercises and solve problems in real-time. Typically, every 10 minutes of theory lessons follow a 15-20 minutes exercise session. One of our core principles is no surprises. We teach everything from the basic principles, without presumptions, and without leaving the magic unfolded. In this workshop, Typescript developers will learn how to solve complex problems in asynchronous and concurrent programming using the effect-ts library.

Upon completion of the course, you'll be able to:

  • Use the effect-ts library (and similar libraries such as fp-ts, qio, waveguide);
  • Build modern, high-performance, asynchronous and concurrent, resource-efficient, and stack-safe applications, both in the back-end (well-optimized for serverless) and front-end; Implement best practices regarding error management and dependency management.

Who is it for

This course is for Typescript developers who are eager to learn how to build modern, robust, and testable applications that are performant both in the back-end and front-end.

Prerequisites

Good working knowledge of Typescript, including tagged unions, conditional types, and infer.

Topics

Day 1:

  • Pure Functions
  • ADTs, GADTs, and e-DSLs
  • Variance in TypeScript: Covariance and Contravariance
  • Build a tiny, minimal version of Effect (synchronous and stack-safe)

Day 2:

  • Introduction of Effect-TS
  • The Effect Data-Type and its utilities
  • Writing modular applications with Effect
  • Testing modular applications

Day 3:

  • Lightweight introduction to Fibers and concurrency
  • Managing Resources with the Managed Data-Type
  • Using Layers to structure dependency construction
  • A quick overview of the tools in the box (queues, ref, schedule, stream, etc.)
  • Build a minimal HTTP server that executes queries against PostgreSQL

Organization

The workshop will be remote via Zoom.

Community

Don't forget to join our Discord community: https://discord.com/invite/drVHpNgqDu

Schedule

  • 10:00 - 12:00 : 1st session
  • 12:00 - 13:00 : lunch break
  • 13:00 - 14:45 : 2nd session
  • 14:45 - 15:00 : coffee break
  • 15:00 - 16:45 : 3rd session
  • 16:45 - 17:00 : coffee break
  • 17:00 - 18:00 : 4th session