HPC Scientific Software Engineer (IT@JH Research Computing)

Inside Higher Ed
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
$ 150K

Job location

Remote

Tech stack

Artificial Intelligence
Application Lifecycle Management
Systems Engineering
Bash
Bioinformatics
C++
Cloud Computing
CMake
Compilers
Program Optimization
Nvidia CUDA
Computer Engineering
System Configuration
Software Debugging
Distributed Systems
DotNetNuke
Perl
Job Scheduling
Python
Linux System Administration
Lua
Matlab
Package Management Systems
Performance Tuning
Software Tools
Ansible
Scientific Computating
Shell Script
Software Deployment
Scripting (Bash/Python/Go/Ruby)
Parallel Computation
Reliability of Systems
Containerization
Deployment Automation
Slurm
TensorRT

Job description

IT@JH Research Computing is seeking a HPC Scientific Software Engineer who will support faculty, researchers, and students engaged in high-performance and AI-driven research across Johns Hopkins University. The position is responsible for deploying, optimizing, and maintaining scientific software and computational workflows on advanced HPC Systems and related infrastructure. Working primarily within Linux-based environments, the engineer manages and troubleshoots complex software stacks, containerized applications, and GPU-accelerated workloads using tools such as SLURM, Easy build, Spack, etc. The role combines ticket-based user support with long-term project work, collaborating closely with interdisciplinary research groups to enhance system performance, streamline data-intensive workflows, and integrate cutting-edge technologies. The position operates with significant independence while coordinating regularly with systems engineers and research computing leadership to ensure reliable, high-efficiency computing resources that advance the university's scientific mission., * Develop and refine deployment strategies for scientific software on HPC and AI systems.

  • Design computational workflows, selecting optimal software configurations, and utilizing tools like Ansible for automation.
  • Assist teams in implementing, tuning, and optimizing AI models and gateway applications (e.g., XDMoD, Coldfront, Open OnDemand, CryoSPARC Live, SBGrid, AI Agents).

_Performance Optimization

_

  • Analyze and optimize the performance of AI models and HPC applications, focusing on GPU-enabled computing.
  • Implement parallel processing, distributed computing, and resource management techniques for efficient job execution.

_Integration and Optimization

_

  • Develop, debug, and maintain software tools, libraries, and frameworks supporting HPC and AI workloads.
  • Collaborate with the system team and software vendors (e.g., NVIDIA, Intel, Matlab) to optimize systems for maximum performance.
  • Utilize CUDA, DNN, TensorRT, and Intel Compilers to enhance system performance.

_HPC Scientific Software Support

_

  • Manage and support scientific software deployment across HPC, cloud-based, and colocation facilities.
  • Oversee installation, configuration, and maintenance of HPC packages with tools like CMake, Make, EasyBuild, Spack, and Lua module files.

_Collaboration and Mentorship

_

  • Work closely with cross-functional teams, including researchers, data scientists, and software developers, to address complex HPC/AI challenges.
  • Mentor junior engineers and foster a culture of continuous learning.

_Technical Support and Training Workshops and Troubleshooting

_

  • Resolve complex technical issues and perform root cause analysis for HPC/AI software challenges.
  • Implement effective solutions to prevent recurrence and improve system reliability
  • Provide training workshops for researchers and students, focusing on troubleshooting, optimizing workflows, and effectively using HPC systems.

_Learning and Development

_

  • Stay current with advances in HPC and AI technologies and methodologies.
  • Incorporate new research findings into existing systems to improve performance and capabilities.

_Container Orchestration

_

  • Develop and manage container orchestration strategies to ensure scalability, reliability, and security of applications.
  • Oversee the container lifecycle from creation and deployment to scaling and removal.

_Documentation and Compliance

_

  • Create comprehensive documentation for system designs, performance metrics, and project status.
  • Ensure compliance with security and regulatory standards for all HPC and AI systems.

Requirements

  • Master's Degree in a quantitative discipline.
  • Five (5) years of experience in HPC user support, software deployment,and performance optimization within an academic or research environment.
  • Experience in scientific computing environments and applications.
  • Hands-on experience with SLURM, for job scheduling.
  • Proficiency in Python, Perl, C/C++, and Shell scripting for automation and system management.
  • Advanced knowledge of Linux systems and proficiency in scripting languages such as Python, Perl, and Shell.
  • Familiarity with scientific application management tools such as Containerization, LUA modules, CMake, Spack, and EasyBuild.
  • Training Workshops, Performance Optimization and Troubleshooting.
  • Additional education may substitute for required experience, and additional related experience may substitute for required education beyond a high school diploma/graduation equivalent, to the extent permitted by the JHU equivalency formula., * PhD in a quantitative discipline, such as Computer Science Engineering, Physics, Bioinformatics, or related fields, with advanced training in scientific computing.

Apply for this position