Since migrating them to NixOS, some of the builds in my continuous integration system became rather slow, in a large part because of the lack of caching. I’ve been meaning to improve the situation, but… caching, I found, is hard. I have implemented various kinds of caching over the years, from manually tarring things up and shoving them in an S3 bucket, to using plugins developed for the CI system I was using at the time, but none of them really accomplished what I wanted.