This job has Expired

princeton_univ.jpg

Research Software Engineer II (Environmental Engineering)

Princeton University

Job Description


Do you want to help solve the world's water resources  problems? Do you have a background in research and love to write code? Are you looking to apply your scientific programming expertise to a novel set of research problems? If so, Princeton University's Research Computing department is recruiting a Research Software Engineer to join the fast-growing Research Software Engineering (RSE) Group. 

 

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 the Maxwell lab  housed in the Civil and Environmental Engineering department (CEE) and the High Meadows Environmental Institute (HMEI). Part of this group's work is to develop novel numerical approaches to solving water resource problems. You'll have the opportunity to work as part of a team with other RSEs; faculty, student, postdoctoral researchers, and technical staff associated with CEE, HMEI, the Office of Information Technology (OIT); as well as collaborators from other institutions to enable and accelerate research software development.

 

If you have a strong background in scientific programming, academic research, and an interest in hydrology, 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. 



  • Working independently or as a self-directed team member, apply research software engineering experience to develop robust software solutions to challenging, and rapidly evolving research problems.  
  • Establish a set of applicable best practices (e.g., version control, continuous integration/continuous delivery, software design, programming model, etc.), and a documentation level appropriate for each project to enable long-term maintainability and sustainability of the software. 
  • Port, debug, tune and potentially parallelize existing research code to meet criteria set by the research needs. 
  • Transfer knowledge, expertise, and methodologies by providing technical assistance and mentorship to graduate students and postdoctoral researchers. 
  • Support the user communities of the software tools developed in the lab (e.g. ParFlow HydroGEN HydroFrame sandtank , and sandtank-ml ) and organize collaborations between those communities to bridge gaps and decrease redundancy.
  • Communicate software engineering concepts to domain experts with varying degrees of software engineering knowledge. 
  • Independently or in collaboration with a team, develop scope and project management plans, communicate those plans with the research team and meet milestone delivery timelines.  
  • Work with members of the Research Computing team to develop and maintain research workflows on HPC clusters and help researchers use these workflows.  
  • Through independent research (reading publications, etc.) and/or studying existing code bases, develop an understanding of hydrology sufficient to converse with world-class researchers. Initiate and/or maintain open collaboration with researchers. Regularly meet with, listen to, and ask questions of researchers to ensure that engineered solutions fit the research needs. Understand and address software engineering questions that arise in research planning. 
  • Apply appropriate domain-specific algorithms and programming techniques to advance software engineering in hydrology. 
  • Maintain and expand knowledge of current and future software development tools and techniques, programming languages, and computing hardware. 


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.) 
  • Strong programming skills, particularly in languages used in our hydrology applications (e.g., Python and C++). 
  • Demonstrated success in: 
    • Consistently using conventional and readable coding style. 
    • Creating comprehensive and well-written documentation. 
    • Developing and maintaining reproducible build systems. 
    • Using version control systems. 
  • Ability to learn new concepts and technologies beyond the area of core knowledge. 
  • Ability to communicate effectively with a diverse user base with varied technical proficiencies. 
  • Experience with Linux, the command line, and HPC clusters environment (e.g., workflow manager, parallel file system). 
  • Demonstrated successes working in a collaborative software development environment ("team science", often geographically distributed) as well as independently. 
  • Education: A Bachelor's degree in computer science, engineering, sciences, or a related computational field is required.

Preferred Qualifications

  • Experience with parallel programming architectures, both distributed and threaded/shared memory. 
  • Background in or understanding of hydrology concepts. 
  • Experience working in an academic research environment. 
  • A Master's/Ph.D. in computer science, applied science, 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



36.25

No

Yes

180 days

No

No

No

Mid-Senior Level

#LI-JJ1

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. Princeton University requires all employees to be vaccinated against COVID-19 and submit proof of vaccination status. Employees who cannot receive the vaccine because of a disability/medical contraindication or sincerely-held religious belief may request an accommodation (e.g., an exemption) to this requirement.
If you have questions or comments regarding the iCIMS Privacy Policy or iCIMS FAQs , please contact accounts@icims.com .
Go to our careers site.

*Please mention you saw this ad on AcademicJobs.*

Apply Now

Be Seen By Recruiters at the
Best Institutions

Create Your FREE Profile Now!