Blog.

What pure functional programming is all about: Part 1

This is a technical post series about pure functional programming. The intended audience is general programmers who are familiar with closures and some functional ...
READ MORE

Hiring: Project Manager, Telecommute

  • Michael Snoyman
  • 13.04.2017
This position has already been filled.
READ MORE

Your CI build process should be in your code repository

  • Emanuel Borsboom
  • 07.04.2017
It's always been clear to developers that a project's source code and how to build that source code are inextricably linked. After all, we've been including Makefiles ...
READ MORE

Hiring: Devops Engineers (San Diego, Portland, Telecommute)

  • Michael Snoyman
  • 28.03.2017
While this position has already been filled, we continue to seek devops applicants from around the world. Please do send us your CV if you are interested in working with ...
READ MORE

Partial patterns in do blocks: let vs return

  • Michael Snoyman
  • 11.03.2017
This blog post is about a pattern (pun not intended) I've used in my code for a while, and haven't seen discussed explicitly. A prime example is when doing simplistic ...
READ MORE

Continuous Integration: an overview

  • Emanuel Borsboom
  • 04.03.2017
While exact definitions of Continuous Integration vary, the idea is that your software project is automatically built and tested very regularly, often many times per ...
READ MORE

The typed-process library

  • Michael Snoyman
  • 25.02.2017
In October of last year, I published a new library - typed-process. It builds on top of the veritable process package, and provides an alternative API (which I'll ...
READ MORE

Immutability, Docker, and Haskell's ST type

  • Michael Snoyman
  • 13.02.2017
In managing projects at FP Complete, I get to see both the software development and devops sides of our engineering practice. Over the years, I've been struck by the ...
READ MORE

MonadMask vs MonadBracket

  • Michael Snoyman
  • 06.02.2017
The exceptions package provides three typeclasses for generalizing exception handling to monads beyond IO:
READ MORE

QuickCheck and Magic of Testing

  • Alexey Kuleshevich
  • 24.01.2017
Haskell is an amazing language. With its extremely powerful type system and a pure functional paradigm it prevents programmers from introducing many kinds of bugs, that ...
READ MORE