Research Software Engineer II (Astrophysics)

Requisition # 2023-17686
Date Posted 1 month ago(8/29/2023 5:15 PM)
Department
Research Computing
Category
Information Technology
Job Type
Full-Time

Overview

Princeton University is seeking 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 and high-performance computing (HPC), as well as interest in numerical modeling in Astrophysics. 

 

In the RSE Group, we collectively provide 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 committed to building collaborative and inclusive environments in which the best software engineering practices are valued, and to sharing and applying cross-disciplinary computational techniques in new and emerging areas. 

 

In this position, you will be an integral part of research groups in the Astrophysical Sciences department that focus on Computational Astrophysics. You will collaborate with several research groups who use similar computational techniques to model the evolution of astrophysical systems. Some examples of the scientific codes used in those research groups are Fornax, Pegasus++, Athena++, Tristan-MP, and RAMSES. These groups are intensive users of computing resources both at Princeton University as well as at national supercomputing facilities (DOE, NSF, NASA). Through this work, you will have the opportunity to run on the nation's state-of-the-art systems. One of your main tasks will be to port CPU codes to GPU codes suitable for the new GPU and hybrid architectures being implemented by federal agencies for their top-level supercomputers. As part of your role, you will work on different projects sequentially with various research groups. These projects will focus on enhancing the performance and scalability of existing codes, creating new GPU-specific features, and teaching the department members the most effective techniques for profiling and optimization. 

 

If you have a strong background in HPC as well as in Astrophysics or plasma physics, you have the right skill set to immediately impact multiple high-profile research projects. This role functions within a dynamic, supportive team environment that permits diverse backgrounds to thrive, including those wanting to make a career change and those with non-traditional career tracks, educational paths, or life experiences. If this environment sounds like a strong match or even an exciting challenge, we encourage you to apply and use your cover letter to explain why you would be a good fit for the role. 

Responsibilities

  • Through directed independent studies, including reading publications and studying existing code bases, gain an understanding of relevant topical areas and corresponding numerical methods in Astrophysics, as needed for software development projects. 
  • Collaborate with scientific researchers to understand their needs and develop software solutions to support their work. 
  • Foster open collaboration via regular meetings and effective communication, to ensure software development aligns with the research objectives. 
  • Working independently, or as a self-directed team member, 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 data processing and analysis. 
  • Write technical reports and documentation to communicate research findings and software development processes. 
  • Manage software projects by developing project scopes and planning delivery timelines. Communicate project plans and progress updates with the scientific research team to ensure that software development aligns with research objectives. 
  • Communicate software engineering concepts to project teams with varying levels of software engineering knowledge. 
  • Develop software for post-processing and analyzing data from massively parallel simulations for scientific studies.
  • 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 numerical methods for solving partial differential equations on structured meshes. 
  • Strong programming skills, particularly in C/C++ and Python. 
  • Strong experience in High-Performance Computing (HPC). 
    • Particularly: Parallel computing (MPI, OpenMP, hybrid CPU/GPU code). 
    • GPU programming. 
  • Experience with code performance tuning using performance analysis tools (e.g. profilers.) 
  • Demonstrated success in:  
    • Consistently using conventional and readable coding style.  
    • Creating comprehensive and well-written documentation.  
    • Developing and maintaining reproducible build systems. 
    • Using modern software development workflows based on Git and Continuous Integration/Continuous Development methods. 
  • Ability and interest in learning new concepts and technologies beyond current areas of core knowledge. 
  • Ability to communicate effectively with a diverse user base with varied technical proficiencies. 
  • Experience working in an academic research environment. 
  • Experience with HPC cluster environments (e.g., workflow manager, parallel file system). 
  • Demonstrated successes working in a collaborative software development environment ("team science," often geographically distributed) and independently. 
  • Scientific and mathematical background appropriate to understand the algorithms used in the Astrophysical Sciences department and communicate effectively with researchers. 
  • Education: A Bachelor's degree in computer science, engineering, physical science, or a related computational field is required.

Preferred Qualifications

  • Knowledge of computational fluid dynamics and/or plasma kinetics. 
  • Experience with the Kokkos library. 
  • Background in Astrophysics and/or Plasma Physics research. 
  • A Master's/Ph.D. in Astrophysics, Plasma Physics, or another related field with a strong computational focus or equivalent experience in a research setting is preferred. 

 

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

Standard Weekly Hours

36.25

Eligible for Overtime

No

Benefits Eligible

Yes

Probationary Period

180 days

Essential Services Personnel (see policy for detail)

No

Physical Capacity Exam Required

No

Valid Driver’s License Required

No

Experience Level

Mid-Senior Level

#LI-JJ1

Options

Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
Share on your newsfeed

Connect With Us!

Join our Talent Network to receive updates about working at Princeton.

Princeton University job offers are contingent upon the candidate’s successful completion of a background check, reference checks, and pre-employment screening, as applicable.


If you have questions or comments regarding the iCIMS Privacy Policy or iCIMS FAQs, please contact accounts@icims.com.


Go to our careers site.