Blog.

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

Speeding up a distributed computation in Haskell

  • Francesco Mazzoli
  • 18.01.2017
While helping a client ship a medical device we were tasked to make its response time bearable. This was no easy feat, given that each request to this device requires ...
READ MORE

Containerizing a legacy application: an overview

  • Emanuel Borsboom
  • 12.01.2017
An overview of what containerization is, the reasons to consider running a legacy application in Docker containers, the process to get it there, the issues you may run ...
READ MORE

Green Threads are like Garbage Collection

  • Michael Snoyman
  • 07.01.2017
Many common programming languages today eschew manual memory management in preference to garbage collection. While the former certainly has its place in certain use ...
READ MORE