Provide computing support for researchers. Using expertise in computational science and numerical methods, the Research Software Engineer will analyze user requirements and provide technical assistance in optimizing research computational programs for use with HPC resources.
Provide technical assistance porting and running a wide variety of computational sciences software.
Instruct users, including non-experts, on efficient uses of computing resources and subroutine libraries.
Identify appropriate resources needed for projects and request them through management.
Identify, evaluate, and recommend new technologies to benefit CAS goals. Envision and articulate technology trends and their impact on the department and college's environment to management and IT. Assess departmental computing needs and make recommendations.
Lead special projects, assign tasks, and monitor these tasks through completion.
Consult with faculty and staff on computing related matters. Serve as a technical resource to assist in equipment and software specifications and assist in the preparation of budgets for proposals. Assist in the procurement of computers and related equipment and supplies from grants including bid solicitation and vendor negotiations. Consult on development of competitive proposals to secure external funding for projects.
Keep abreast of emerging technology by reading periodicals, monitoring pertinent newsgroups and websites, and interfacing with peers. Promote and integrate new information technologies into research-related activities.
Performs other job-related duties as assigned.
PhD degree in a related field, or equivalent combination of education and/or experience. Graduate degree in Science/Engineering discipline preferred.
HPC related research experience in any field of natural science.
Experience with Unix/Linux, Windows and Mac operating systems.
Knowledge of MPI, OpenMP, POSIX Thread, and general parallel computing concepts, networks, networking protocols and data communications.
Ability to adapt quickly to technology changes in equipment, software, or operating systems.
Ability to work well with faculty, students and administrative staff in a diverse community and communicate technical issues to non-technical people, through effective interpersonal, communication, and customer service skills.
Experience conducting small group and one-on-one training sessions.
Ability to work independently as well as in a team-based environment.
Project management skills including: ability to prioritize, plan and organize work, analyze and solve problems, and make administrative/procedural decisions and judgments.
Experience with computer programming and code management.
Direct experience with version control software (Git, svn) preferred.
Experience with fundamental computing languages such as Fortran, C, and commonly used languages such as Python.
Experience with scientific computing is preferred, whether using commercial packages (Gaussian, VASP, Orca, NAMD, VMD) or custom scientific simulation programs.