Job ID: 2024-20006 Type: Full-Time # of Openings: 1 Category: Information Technology
Overview
Princeton University seeks candidates for a new position within the fast-growing Research Software Engineering (RSE) Group. The successful candidate will have a strong background in software development, high-performance computing (HPC), and numerical modeling in Geophysics.
The RSE Group collectively provides computational research expertise to multiple divisions within the University. As a central team of software experts, we are focused on improving the quality, performance, and sustainability of Princeton's computational research software. Our group is dedicated to creating collaborative and inclusive environments that value the best software engineering practices and to sharing and applying cross-disciplinary computational techniques in new and emerging areas.
In this position, you will be an integral part of the Theoretical & Computational Seismology group. As part of a team of RSEs, you will collaborate with several researchers and develop the SPECFEM++ framework, which involves modern C++ features and the Kokkos portability performance library. This group of researchers heavily uses computing resources at Princeton University and national supercomputing facilities, providing the opportunity to utilize the nation's state-of-the-art systems. As part of your role, you will focus on importing features from the original SPECFEM Fortran codebase and implementing new features directly into SPECFEM++, all with a focus on the code's performance, scalability, and maintainability. You will also help researchers to contribute new models to the codebase.
If you have a strong background in HPC and Geosciences, you have the proper skill set to impact a high-profile research project immediately. This role functions within a dynamic, supportive team environment that permits diverse backgrounds to thrive.
Responsibilities
Application of Domain Expertise:
Through directed independent studies, including reading publications and studying existing code bases, understand relevant topical areas and corresponding numerical methods in Geophysics, which will be needed for software development projects.
Collaborate with scientific researchers to understand their needs and challenges and develop software solutions to support their work.
Foster open collaboration via regular meetings and effective communication to ensure software development meets the research objectives.
RSE:
Work independently or as a self-directed team member to design, develop, and maintain software tools and applications for scientific research projects.
Write efficient, robust, and maintainable code that is well-documented and tested.
Optimize code performance for large-scale, parallel simulations and modeling.
Write technical reports and documentation to communicate software development processes and usage.
Manage software projects by developing project scopes and planning delivery timelines. Communicate project plans and progress updates with the scientific research team.
Communicate software engineering concepts to project teams with varying levels of software engineering knowledge.
Professional Development:
Keep up-to-date with new software technologies and tools that could improve research outcomes.
Qualifications
Essential Qualifications:
A minimum of 4 years as a Research Software Engineer or equivalent experience (e.g., graduate school, industry experience, open-source software development, etc.)
Extensive experience with the Finite Element Method (FEM).
Strong programming skills, particularly in C++ and Python.
Strong experience in High-Performance Computing (HPC). Particularly:
Demonstrated successes working independently and in a collaborative software development environment ("team science," often geographically distributed).
A scientific and mathematical background appropriate for understanding the algorithms used in Geosciences and communicating effectively with researchers.
Education: A Bachelor's degree in computer science, engineering, physical science, or a related computational field is required.
Princeton University is an Equal Opportunity/Affirmative Action Employer and all qualified applicants will receive consideration for employment without regard to age, race, color, religion, sex, sexual orientation, gender identity or expression, national origin, disability status, protected veteran status, or any other characteristic protected by law. KNOW YOUR RIGHTS