Experience in developing and utilizing modeling and simulation software in diverse multi-platform settings.
Familiarity with High Performance Computing (HPC) environments and related technologies.
Ability to support HPC user workflows for modeling and simulation, including GUI development.
Proficient in programming languages such as Fortran, C, and/or C++.
Skilled in BASH and Korn shell scripting for automation tasks.
Strong knowledge of Linux, with hands-on troubleshooting skills in a lab setup.
Experience in the software development lifecycle, from requirement gathering to scalable application testing.
Responsibilities
Develop and enhance modeling and simulation software tailored for multi-platform environments.
Provide user support for HPC workflows, ensuring efficient simulation processes.
Write and maintain clean, efficient code in Fortran, C, and/or C++ for various applications.
Automate tasks using BASH and Korn shell scripting to streamline operations.
Conduct unit testing and implement configuration management practices for robust software delivery.
Mentor junior team members through code reviews and knowledge sharing sessions.
Create and deliver training materials and workshops for both HPC users and internal staff.
Benefits
Opportunities for professional development and continuous learning.
Collaborative work environment fostering innovation and teamwork.
Engagement in cutting-edge projects in the field of high-performance computing.
Potential for tailored training and mentorship to enhance skills.
Flexible work arrangements to support work-life balance.
Full Job Description
Required Skills/Experience:
Modeling and simulation software development and use in heterogeneous, multi-platform environments
High Performance Computing (HPC) environment knowledge and related technologies
HPC user workflow support for modeling and simulation problems and GUIs
Proficiency in Fortran, C, and/or C++
Proficiency in BASH and Korn shell scripting
Linux operating system proficiency, including end-user system troubleshooting in a lab environment
Software development lifecycle practices including requirements, use cases, design, coding, documentation, and testing of scalable distributed applications in Linux
Unit testing and configuration management
Analysis, debugging, and maintenance of existing codebases
Code review facilitation and mentoring of junior engineers or scientists
Design and delivery of training workshops, tutorials, or onboarding materials for HPC users and internal staff