Idaho National Laboratory’s High Performance Computing (HPC) resources, provided through the Nuclear Science User Facilities (NSUF), deliver over 630,000 CPU cores to a user base of over 1,700 researchers spanning national laboratories, industry, and academia. These systems support multiscale, multiphysics simulations for nuclear energy research alongside a range of other mission areas. The HPC software team underpins this capability by curating and maintaining a centralized software environment and enabling user-driven software deployment. This presentation describes a practical approach to building, organizing, and sustaining software environments for HPC systems using Lmod, Spack, and Apptainer. We outline how our HPC software team leverages Spack to manage complex dependency graphs and enable optimized builds, while integrating with Lmod to provide a flexible and discoverable module system for users. We discuss our strategy for centrally installed versus user-space software, native versus containerized installations, and user empowerment strategies such as Spack upstreams and Python virtual environments. We discuss some of the challenges we have faced and best practices we have cultivated to efficiently support an extensive set of software and users on our HPC systems.