Are you interested in using Haskell in a professional setting on a real-world project?
The course proposes a practical approach to Haskell, a statically typed purely functional programming language. The course develops around the creation and evolution of a concrete project, highlighting where Haskell can help us to create a safe and maintainable application. It will contain the necessary theory and a lot of practice.
The course will introduce some more advanced concepts (e.g. type-level programming with Servant) but it would focus mostly on the day-to-day aspects of the language, which allow a programmer to become productive sooner.
Everything will be developed with the good practices of software engineering in mind.
The course will introduce some more advanced concepts (e.g. type-level programming with Servant) but it would focus mostly on the day-to-day aspects of the language, which allow a programmer to become productive sooner.
Everything will be developed with the good practices of software engineering in mind.

This course is offered virtually over 4 half-day sessions of 4 hours each.
This course runs on non-consecutive days.
The November iteration of this course will run on November 14, 17, 21 & 24.
The January/February iteration of this course will run on January 30, February 2, 6 & 9.
Learn how to:
- Work with Haskell in a concrete project
- Handle the basics of Haskell development, solving practical problems
- Create correct and precise data models using types
- Implement database interaction using high level abstractions
- Create a web API described at the type level
- Carefully test the whole application
Available dates
Dates coming soon
Can't make it on any of these dates?
Our team is happy to discuss other options with you.
Contact us at sales@skillsmatter.com and mention ref: HASKELLWORK-T-02.
Private tuition and large-group discounts are also available. Find out more here.
Our team is happy to discuss other options with you.
Contact us at sales@skillsmatter.com and mention ref:
Private tuition and large-group discounts are also available. Find out more here.
Who should take this workshop?
Attendees do not need to have experience with Haskell, but should be professional developers who are already experienced with another programming language.
It will also help if you are:
- possibly willing to use Haskell or FP concepts at work
- interested in why Haskell is a good language for the industry
- interested also in the practicalities
Prerequisites
Prior to the workshop, attendees should familiarise themselves with basic Haskell syntax.
This is not mandatory, but you will find the workshop will smoother if you have:
- a bit of software engineering experience
- knowledge of what is required for a production system
- already felt the pains of mutation and side effects management
- some experience in other languages with basic FP concepts such as immutability and higher-order functions
Workshop Outline
Chapter 1: Basic domain definition and terminal interaction
- Haskell syntax and basic terminology
- the value of types and purity
- IO and side-effects
Chapter 2: Domain refinement and exposing a web API with Servant
- defining a domain model guided by types
- defining a web API specification using types
- how to isolate the domain layer from persistence
- functors and applicatives
Chapter 3: Adding persistence with Postgresql
- describing a database schema in Haskell
- writing composable queries
- monads and monad transformers
Chapter 4: Testing and tooling
- the easiness of writing unit tests
- property based testing
- doctests
- mocks
Bonus chapter: Advanced type safety (to solve a concrete modelling problem)
- GADTs
- RankNTypes
- Existential types
Haskell at Work
Dates coming soon