FP Complete

How to Handle Asynchronous Exceptions in Haskell

We launched our monthly webinar series on Wednesday, April 11th with our first webinar on How to Handle Asynchronous exceptions in Haskell. This webinar was the first in what will be a monthly series covering topics in Haskell Programming, DevOps, Cloud Computing, Cryptocurrencies, FinTech, Medical Device Software, DataOps, and all the other great things we do. […]

10 Common Mistakes to Avoid in FinTech Software Development

Financial Technology, or FinTech, is a relatively new aspect of the financial industry, which focuses on applying technology to improve financial activities. This has the potential to open the doors to new kinds of applications and services for customers, as well as more competitive financial technology. However, like all new technologies, there are mistakes lurking. […]

Best Practices for Developing Medical Device Software

At FP Complete we have experience writing Medical Device software that has to go through rigorous compliance steps and eventually be approved by a government regulatory body such as the US Food and Drug Administration (FDA). In this post we’d like to share some of the best practices and pitfalls we have learned when working […]

Cache CI builds to an S3 Bucket

Just by reading the blogpost title you are likely to guess the problem at hand, but to be fair I will recap it anyways. What’s the problem? It is increasingly common for software projects to have Continuous Integration (CI) setup, regardless of their size or complexity. In the matter of fact, it is so common […]

Hash Based Package Downloads – part 2 of 2

In our previous post, we define a common problem around reproducible build plans. The solution we desired was some form of cryptographic hash based configuration and download system for packages, package metadata, and snapshot definitions. This blog post will describe a potential concrete implementation. Federated download service Who hosts these files? Well, anyone. The level […]

FP Complete and Cardano Blockchain Audit Partnership

Cardano enlists FP Complete for independent 3rd Party Audit of Cardano Blockchain FP Complete Development specialists will provide comprehensive review of Cardano’s code and technical documentation Zug, Switzerland,24 January 2018—Cardano Foundation, the objective organisation supporting leading blockchain Cardano, has appointed FP Complete, an IT engineering specialist, to provide an independent audit of the engineering work […]

Hash Based Package Downloads – part 1 of 2

This is part 1 of a 2 part series. This post will define the problem we’re trying to solve, and part 2 will go into some details on a potential storage mechanism to make this a reality. Suppose you’re working on a highly regulated piece of software. For example, something on a defense contract, or […]

Weakly Typed Haskell

I was recently doing a minor cleanup of a Haskell codebase. I started off with some code that looked like this: runConduitRes $ sourceFile fp .| someConsumer This code uses Conduit to stream the contents of a file into a consumer function, and ResourceT to ensure that the code is exception safe (the file is […]

Parsing command line arguments

There are many ways to make programs that use settings to customise their behavior. In this post, we provide an overview of these methods and some best practices. Different approaches to passing settings Settings as global state versus passing settings as an argument The first distinction to make is between passing settings as an argument […]

Building Haskell Apps with Docker

In this blog post we will show an example of how we can use Docker to build Haskell applications which we then ship inside Docker images. We will observe two cases. First, we will explore the case of developing on the same Linux distro that we are using for deployment (eg. FROM ubuntu:16.04), and then […]