Tech Stack
CloudLinuxPythonShell Scripting
About the role
- Manage library installations using modern package management systems, including Spack
- Incorporate modern software management techniques such as unit testing, continuous integration, and other Agile development techniques
- Modernize the build systems that EMC uses for their Earth system models
- Use modern code management principles to manage Git repositories
- Maintain a high standard for modernizing legacy libraries and bring them up to date with current coding standards
- Deploy and maintain libraries on multiple HPC and cloud platforms
- Develop new tools as the need arises
- Maintain documentation standards that are used in community model development
Requirements
- U.S. citizenship
- Ability to obtain a Public Trust security clearance
- Advanced knowledge and experience of modern programming languages such as Python and C/C++, as well as later Fortran releases
- Working knowledge of shell scripting
- Experience in working with HPC platforms (e.g., MPI, OpenMP)
- Experience in debugging code and developing codes with abstraction layers that can be used for multiple programs
- Working knowledge of Git branches, forks, and submodules, and GitHub features such as Actions
- Modern software engineering practices (requirements gathering, design, prototyping, version control, continuous integration, testing and documentation)
- Experience developing software in a Linux environment
- Build and testing mechanisms (e.g., CMake, ctest)
- Knowledge of package managers (e.g., Spack, EasyBuild, pip, conda)
- Good communication skills in English
- Ability to work as part of a diverse team that includes software engineers and scientists across different agencies