
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 […]

How to Know if Hiring a DevOps Consultant is Right for Your Business DevOps is a set of tools and methods to get your applications from Dev through Deployment to Operations. It automates a reliable path from my app runs on one machine to my app is online for all users and data, secure, scalable, […]

Data analytics systems are the cutting edge of modern corporate computing. While many people may feel they are behind the “state of the art” they read about, the truth is these are projects we’re implementing currently for prominent companies in life sciences, finance, healthcare, Internet services, and aerospace, They have a lot in common with […]

If you ask ten engineers how they measure the success of their DevOps strategy you are likely to get ten different answers. Success is measured differently by different people, so it’s not unusual to observe these different perspectives. What is the DevOps value proposition? This blog will explore a number of things to consider when […]

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 […]

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 […]

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 […]

What is software release management? At its most general, “releasing software” is the process by which software is delivered from the engineers creating it to its users. This can take such forms as: A boxed product shipped on some kind of physical media A downloadable executable on a website A mobile application from the official […]

See https://haskellstack.org for installation and upgrade instructions. Note: we are releasing a bit earlier than planned due to #3624. As such, not all the binaries have been built yet, but the commonly used 64-bit binaries of Linux static, macOS, and Windows are available. In addition, the Windows installer and binary has not been codesigned (we […]

When I ran Microsoft’s engineering tools group in the late 1990’s, remote engineering was uncommon and challenging. We had spent millions to relocate engineers to a central headquarters, and when that wasn’t enough to meet all our needs, we had to invent a lot of our own tools to keep offshore projects on track. Since […]