HPC Software Engineer
Oak Ridge National Laboratory · Oak Ridge, TN · 1 wk ago
EngineeringFull-time
About the role
We are hiring a HPC Software Engineer to design, operate and maintain clusters, servers, and workstations supporting services where science happens at ORNL! This position resides in the Emerging Technologies & Computing group in the Research Computing Division in the Information Technology Services Directorate at Oak Ridge National Laboratory (ORNL).
Major Duties/Responsibilities
- Advocate and promote HPC and clustered computing software solutions to researchers who process large data sets, run simulations, and develop scientific code as part of their projects.
- Design, develop, optimize, and maintain scientific software, workflows, libraries, and tools for production HPC environments.
- Ensure the performance, scalability, portability, reliability, and maintainability of software running on production systems.
- Leverage automation, testing, and modern software engineering practices to minimize maintenance overhead and improve software quality and reproducibility.
- Collaborate with technical points of contact and research teams to install, port, optimize, benchmark, and tune scientific applications and toolsets.
- Support software environments for a wide range of computational workflows, including parallel and distributed applications, data-intensive pipelines, and accelerator-enabled workloads.
- Work closely with system administrators, infrastructure engineers, and researchers to align software solutions with available compute, storage, and networking resources.
- Contribute to CI/CD practices, software packaging, documentation, and sustainable development workflows for research computing environments.
- Deliver ORNL’s mission by aligning behaviors, priorities, and interactions with our core values of Impact, Integrity, Teamwork, Safety, and Service. Promote equal opportunity by fostering a respectful workplace – in how we treat one another, work together, and measure success.
Basic Qualifications
- BS degree in computer science, computer engineering, information technology, information systems, science, engineering, business, or a related discipline and a minimum of 5 years of aligned professional experience is required for consideration. An overall combination of equivalent education and experience may be considered.
- 3 or more years with managing UNIX/Linux Systems.
- 3 or more years of proven experience with configuration management and automation tools such as Git, Jenkins, Ansible, or Puppet.
- Moderate proficiency in at least one scripting language such as Bash, Python, or others.
- Experience performing advanced troubleshooting and system administration with Linux Servers.
- Experience supporting large data systems.
Preferred Qualifications
- A strong desire to innovate and identify new technologies and opportunities and be able to communicate the potential benefits of those choices to others within the team and our research partners.
- A collaborative and upbeat approach to thrive on the opportunity to build trust and credibility and ultimately become a trusted advisor to our research teams.
- Active DOE Q, active DOD Top Secret, or active DOD TS/SCI clearance is heavily preferred for consideration.
- Solid understanding of multiple operating systems and cluster technologies.
- Experience with Rocky/Centos/RHEL, Ubuntu, VMware.
- Understanding of HPC platforms to support users with SLURM job submissions and troubleshooting.
- Experience building and running containerized applications in an HPC environment.
- Experience with multiple deployment mechanisms like Diskless, Warewulf, and traditional deployment (cobbler, PXEboot, and/or Bright).
- Experience managing systems utilizing GPU (NVIDIA and AMD) clusters for AI/ML and/or image processing.
- Experience with performance and diagnostic tools for benchmarking, analysis and tuning of systems, networking, and storage.
- Experience with Grafana, CheckMK, Nagios, Zabbix, or other network and device monitoring systems.
- Experience with scientific software such as Matlab, R, Ansys, etc.
- Experience with cluster administrative tools as Spack, Ansible, Git, etc.
- Previous experience working in a government, scientific or other highly technical environment.
- Good documentation skills, including ability to prepare simple documentation web pages.
- Excellent written and oral communication skills.
- Motivated self-starter with the ability to work independently and to participate creatively in collaborative teams across the laboratory.
- Ability to function well in a fast-paced research environment, set priorities to accomplish multiple tasks within deadlines, and adapt to ever changing needs.