As a dev, the nix-shell environments are very useful as I don't have to fully install every package to use it. My system configuration is also represented in a single, declarative file which is a dream. I can copy the config to a new system, run nixos-rebuild and my entire system configuration is on the new system.