I like to combine Nix with direnv (and direnv-mode for Emacs - there are also similar plugins for most other editors).
Then you can `cd` into your directory and your environment appears.
The downsides are that there is a steep and long learning curve, and that your colleagues will not understand what you've done.
I also use NixOps to actually deploy my code at the moment, but I will probably be switching to Terraform shortly as I need some tools like AWS autoscaling groups, which NixOps doesn't support.
These are probably helpful:
https://nixos.wiki/wiki/Development_environment_with_nix-she...
https://github.com/direnv/direnv/wiki/Nix