This project is a basic skeleton of a web service for interacting with concrete mix designs. It serves as the basis for a technical interview, but is not, in itself, an exercise.
A development flake is provided, so you can either use direnv to enter that environment automatically or drop into a development shell with nix develop. Similarly, you can use nix build and nix run, or, in the development shell, run with cabal.
The most of the domain code is in the Converge.MixDesign module hierarchy, which is linked into Converge.HTTP.Server. You will find an empty repository implementation in Converge.Operation for Converge.MixDesign.ConcreteMixDesignRepository, and, if you'd like to, feel free to implement it and put it somewhere sensible, but this isn't required for the interview.
The interview will consist of a 1.5h pair-programming session in which you will make changes to this codebase based on problems we will give you. We'll be exploring this with you, so it should be very much a dialogue, but you'll be doing most of the programming 😉. Please make sure you have at least sorted your development environment beforehand, and are able to share your screen on Zoom. We'd suggest closing other windows not relating to this challenge as we would like to see the whole screen -- sometimes you might need to look something up, and we'd like to have context of that thing too!