No need for overlays. Instead create own packages and call them via callPackage. That will keep them simpler and allows dependency injection. I can follow existing patterns from nixpkgs, etc.
Installation / compilation works, but execution is broken. See comment within the default.nix file.