The Senior Software Engineer will provide virtual scientific computing support to sustain and modernize an existing computational framework supporting a scientific computing environment in Carlsbad, New Mexico.
The role requires a Subject Matter Expert (SME) with expertise in computer science methods, computational modeling, scientific software development, and technical documentation. The individual will support the sustainment, modernization, performance optimization, High-Performance Computing (HPC) readiness, and transition of evolving three-dimensional modeling capabilities.
Responsibilities will include software development, analysis, refactoring, verification and validation, documentation, performance improvement, platform portability, workflow reproducibility, and migration readiness for Linux-based computing environments. All work must comply with Nuclear Quality Assurance (NQA-1) requirements.
Minimum Qualifications
Candidates must meet one of the following education and experience requirements:
- Master's degree in Computer Science, Engineering, or a related discipline, such as Environmental Science, Mathematics, or Physics.
- Bachelor's degree in a related discipline with at least 10 years of relevant experience.
Additional Experience Requirements:
- Minimum of 5 years of experience in computational modeling, software development, and software documentation.
- Experience supporting legacy software and systems.
- Experience working in regulated, safety-critical, high-consequence, or mission-critical computational environments.
Key Responsibilities
- Provide scientific computing and software engineering support for an existing computational framework.
- Sustain, modernize, and optimize legacy scientific software and computational systems.
- Support the transition and development of evolving three-dimensional modeling capabilities.
- Perform software development, technical analysis, code refactoring, verification, and validation.
- Improve software performance, maintainability, stability, and portability across computing platforms.
- Prepare and maintain technical and software documentation.
- Support High-Performance Computing (HPC) readiness and migration to Linux-based computing environments.
- Improve workflow reproducibility and support repeatable software builds.
- Identify technical debt, fragile code areas, and software maintainability risks.
- Conduct performance benchmarking, profiling, and scalability assessments.
- Ensure all work complies with applicable Nuclear Quality Assurance (NQA-1) requirements.
Required Technical Qualifications
1. Programming and Software Development
- Experience programming in mixed-language scientific software environments, including:
- Fortran
- Python
- C and/or C++
- Experience developing, maintaining, and supporting scientific software and legacy systems.
- Experience with software documentation and quality practices.
- Experience working in GNU/Linux or equivalent Linux-based development environments.
- Familiarity with associated build, compilation, and debugging toolchains.
- Experience with Bash or equivalent Unix/Linux shell scripting.
3. High-Performance Computing (HPC)
- Experience working with HPC systems.
- Experience using HPC job schedulers, such as Slurm or equivalent workload management systems.
- Experience supporting HPC readiness, performance optimization, and computational workloads.
4. Computational Modeling
- Demonstrated ability to adapt to and work effectively with a broad range of conceptual, process, and numerical models.
- Experience supporting computational modeling and scientific software in regulated, safety-critical, high-consequence, or equivalent mission-critical environments.
Additional Technical Experience Requirements
Candidates must demonstrate experience in the following areas:
1. Computational Modeling and Scientific Software Support
- Experience in computational modeling, software development, and software documentation.
- Experience sustaining legacy scientific software in regulated, high-consequence, or equivalent mission‑critical environments.
2. Code Standards and Data Handling
- Experience applying software code standards or equivalent software quality practices.
- Experience conducting software testing.
- Experience working with scientific or technical data formats, storage structures, and data-processing workflows.
3. Debugging and Performance Analysis
- Proficiency with debugging, profiling, and performance‑analysis tools and methods used in scientific computing, technical computing, or HPC environments.
- Experience improving the portability, efficiency, maintainability, stability, or other quality attributes of legacy scientific software.
- Ability to create or update source code documentation using Doxygen or equivalent automated documentation approaches.
- Experience documenting both existing and newly developed code to improve clarity, traceability, and maintainability.
6. Technical Debt Identification
- Experience identifying and documenting technical debt, fragile or high‑risk code areas, and software maintainability concerns.
7. Version Control and Reproducible Builds
- Knowledge of version‑control concepts and workflows, such as Git or equivalent systems.
- Experience implementing practices that support reproducible or repeatable software builds.
8. Performance Benchmarking
- Experience conducting performance benchmarking, scalability assessments, load‑characterization studies, or equivalent performance evaluations for scientific or computational software.