I'm barrucadu, also known in meatspace as Michael Walker.

I'm a Software Engineer working at GoCardless.

In my spare time, I like programming and tinkering with DevOps for fun. My go-to languages are Haskell, Python, Ruby, and Rust. I run NixOS on all my machines. I like Configuration as Code and Infrastructure as Code.

I have a blog, updated weekly with what's been going on in my life.

I also play, and think a lot about, roleplaying games. My current games of choice are Call of Cthulhu (7th edition), Traveller (Mongoose 2nd edition), and Old School Essentials. I run a TTRPG blog, updated infrequently.

You can find me elsewhere on the internet:

If you want to send me encrypted mail, here's my GPG key.


I'm a software engineer on GoCardless's Payment Flows team. We own the core models and logic that handle payments, in the heart of the business.

Before GoCardless, I worked for the Government Digital Service on GOV.UK.

I like working on tricky technical challenges, and gravitate to infrastructure or backend.

See my CV for a bullet-point highlight reel.


I did a Ph.D at the University of York on the topic of testing concurrent Haskell programs. I ultimately decided that academia wasn't for me, but I'm glad I stuck it out to the end.

Here's a PDF of my thesis.

I published a couple of papers too:

If you want to cite any of my publications, click the headings below to show the BibTeX:

Show BibTeX to cite my thesis.
  author = "Walker, Michael",
  title  = "Revealing Behaviours of Concurrent Functional Programs by Systematic Testing",
  year   = 2018,
Show BibTeX to cite my paper "Déjà Fu: A Concurrency Testing Library for Haskell".
  author    = "Walker, Michael and Runciman, Colin",
  title     = {{D{'e}j\`{a} Fu}: {A} Concurrency Testing Library for {Haskell}},
  booktitle = "Proceedings of the 8th ACM SIGPLAN Symposium on Haskell",
  series    = "Haskell 2015",
  year      = "2015",
  isbn      = "978-1-4503-3808-0",
  location  = "Vancouver, BC, Canada",
  pages     = "141--152",
  numpages  = "12",
  url       = "http://doi.acm.org/10.1145/2804302.2804306",
  doi       = "10.1145/2804302.2804306",
  acmid     = "2804306",
  publisher = "ACM",
  address   = "New York, NY, USA",
Show BibTeX to cite my paper "Cheap Remarks About Concurrent Programs".
  author    = "Walker, Michael and Runciman, Colin",
  title     = "Cheap Remarks About Concurrent Programs",
  booktitle = "Functional and Logic Programming",
  year      = 2018,
  editor    = "Gallagher, John P. and Sulzmann, Martin",
  series    = "FLOPS 2018",
  pages     = "264-279",
  publisher = "Springer International Publishing",
  isbn      = "978-3-319-90686-7",
  location  = "Nagoya, Japan",
  url       = "https://doi.org/10.1007/978-3-319-90686-7_17",
  doi       = "10.1007/978-3-319-90686-7_17",

Open source

My main open source project is Déjà Fu, a library for testing concurrent Haskell programs, which came out of my Ph.D research. You can write deterministic unit tests to catch race conditions and other such bugs. It comes with HUnit and Tasty bindings, so you can easily integrate it with your existing testsuite.

In the past I've also served as project leader for Arch Hurd, a GNU/Hurd distribution based on Arch Linux; and worked as one of the first few developers for Uzbl, a Webkit-based web browser.

I also have some Haskell IRC libraries: irc-ctcp, irc-conduit, and irc-client. But these are essentially abandonware right now. If you want to maintain them, get in touch!