Research Software Engineer II

Updated: over 1 year ago
Location: Princeton, NEW JERSEY
Deadline: The position may have been removed or expired!

Do you want to help enable and advance groundbreaking High Energy Physics (HEP) research through software development? 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 focus 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 member of multiple projects associated with the Institute for Research and Innovation in Software for High Energy Physics (IRIS-HEP) , a software institute funded by the National Science Foundation. It aims to develop the state-of-the-art software cyberinfrastructure required for the challenges of data-intensive scientific research at the High Luminosity Large Hadron Collider (HL-LHC) at CERN, and other planned HEP experiments of the 2020s. You will collaborate with HEP researchers to provide computational expertise in algorithm development and software design to create high-quality and sustainable research code. 

 

If you have a strong background in scientific programming, academic research, and an interest in High Energy Physics you have the right skill set to make an immediate impact on multiple high-profile research projects. 

 

You’ll have the opportunity to regularly work closely with colleagues associated with IRIS-HEP, the Office of Information Technology (OIT), as well as with faculty, student/postdoctoral researchers, and technical staff in Princeton’s Physics Department to enable and accelerate research software development. 



  • Lead the design and construction of increasingly complex research software systems needed to acquire, process, and analyze data from HEP experiments. 
  • Establish a set of applicable best practices uniquely appropriate for each project (e.g version control, continuous integration, continuous delivery, software design, programming model, etc.), and enable long-term maintainability and sustainability by documenting the projects in a descriptive and appropriately detailed manner. 
  • Respond to evolving research needs and apply research software engineering experience to develop robust software solutions to solve challenging research problems. 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. 
  • Independently or in collaboration with a team, develop scope and project management plans, meet milestone delivery timelines, and communicate with the research team. Communicate software engineering concepts with project teams consisting of domain experts with varying degrees of software engineering knowledge.
  • Apply appropriate domain-specific algorithms, techniques, and code to advance software engineering in HEP. 
  • Initiate and/or maintain open collaboration with the rest of the IRIS-HEP team and other HEP researchers as needed.  Regularly meet with, listen to, and ask questions of the relevant collaborators for active projects. Understand and address software engineering questions that arise in research planning. 
  • Through independent research, (reading publications, etc.) and/or studying existing code bases understand the necessary elements of High Energy Physics to converse with HEP researchers
  • Maintain and expand knowledge of current and future software development tools and techniques, programming languages, and computing hardware.


Essential Qualififcations

  • 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 High Energy Physics applications (e.g., Python and C++) 
  • Demonstrated success: 
    • Consistently using conventional and readable coding style. 
    • Creating comprehensive and well-written documentation. 
    • Developing and maintaining reproducible build systems. 
    • Using version control systems. 
  • Demonstrated successes working in a collaborative software development environment ("team science", often geographically distributed) as well as independently. 
  • 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 working in an academic research environment. 
  • Education:  A bachelor's degree in computer science, engineering, physics, or a related computational field is required. Master’s/Ph.D. in physics, computer science, or other applied domain sciences with a strong computational focus is strongly preferred. 

Preferred Qualifications

  • Experience developing scientific software with significant emphasis on performance 
  • GPU programming experience (e.g., CUDA, OpenCL) and/or experience with FPGAs 
  • Parallel programming expertise (e.g., OpenMP, Kokkos, etc.) 
  • Experience developing research software outside of core domain knowledge 
  • Academic research experience. 
  • Background in high energy/nuclear/astroparticle physics, computer science, engineering, or related fields.  

 

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. EEO IS THE LAW



36.25

No

Yes

No

No

No

Mid-Senior Level

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 [email protected] .
Go to our careers site.

Similar Positions