Research Software Engineer

Princeton University

United States

August 20, 2021


Research Software Engineer

Requisition # 2021-13114

Date Posted 5 hours ago(7/21/2021 10:32 PM)


 Applied and Computational Math


 Research and Laboratory

Job Type


Application Deadline


The Research Software Engineer will join a team of academic researchers and software engineers who develop the ASPIRE software package for three- dimensional structure determination of biological molecules from cryo-electron microscopy, a technology that won the 2017 Nobel Prize in Chemistry.

The Research Software Engineer will be involved in all software life cycle stages (development, optimization, testing, documentation, releasing) of the ASPIRE package and advancing its usability, efficiency, scalability, and functionality to address the evolving needs of structural biologists on campus and beyond. The ideal candidate will have a strong background in scientific programming, open-source software development, academic research, and an interest in computational imaging.

This is a one year term position.

  • New code development and code review.
  • Provide technical expertise and guidance for improving ASPIRE's overall performance.
  • Develop a user friendly interface such as a Jupyter notebook interface.
  • Refine ASPIRE to easily interact with other existing packages.
  • Algorithmic improvements and adding functionality to existing code, including new visualization tools.
  • Speed optimization, such as using GPU and cluster computing.
  • Scale functions to handle increasingly large data sets.
  • Establish coding standards for future development and refactor existing code to be consistent with new standards.
  • Keep documentation up to date and complete.
  • Port existing code from Matlab to Python.
  • Design, implement, and run automated tests before releases.
  • Mentor undergraduate students, graduate students, and postdocs in the research group on modern software development practices and coding standards.
  • Hold open office hours and training sessions.
  • Qualifications

    A bachelor's degree in computer science, engineering, sciences, or related computational field required or a Masters/Ph.D. in computer science, applied science, or other related field with a strong computational focus preferred. 2 years of programming experience (either scientific or commercial). Proficiency in all software life cycle stages (development, testing, documentation, releasing) Strong programming skills, particularly in the languages used in open-source and high-performance computing applications: Python, C/C++, FORTRAN, and Matlab Experience with Matlab and C/C++. Experience with GPU programming. Parallel programming experience on computational clusters. Demonstrated successes working in a collaborative environment as well as independently. Ability to learn new systems beyond area of core knowledge. Ability to communicate effectively with a diverse user base having varied levels.

    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

    Standard Weekly Hours


    Eligible for Overtime


    Benefits Eligible


    Probationary Period

    90 days

    Essential Services Personnel (see policy for detail)


    Estimated Appointment End Date


    Physical Capacity Exam Required


    Valid Driver's License Required



    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. 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

    Go to our careers site.

    Similar Jobs

    Princeton University

    United States Jun 30, 2021

    Add to favorites

    Research Software Engineer

    Research Software Engineer The Research Software Engineer (RSE) will be an integral member of a Software Engineer will work with researchers associated with Princeton Computer Science, along with collaborators at Princeton Electrical Engineering Create, debug,...


    France 5 days ago

    Add to favorites

    Engineer F/M. Performance debugging & optimization. Instrumentation.

    About the research centre or Inria department Grenoble Rhône-Alpes Research Center groups together a few less than 650 with labs, research and higher education institutions in Grenoble and Lyon, those are domain specific application/library tuning,...

    Karlstad University

    Sweden Jul 1, 2021

    Add to favorites

    Postdoctoral position in Software Engineering

    Karlstad University takes pride in combining active external cooperation with Karlstad University has around 16 000 students and a at Karlstad University at https: // www. post-doctoral research fellow with focus on non-technical debt in...

    Germany Universities

    Germany Jul 12, 2021

    Add to favorites

    Staff Scientist (m/f/d)Otto-Friedrich-Universität Bamberg • Lehrstuhl Softwaretechnik und Programmiersprachen • Bamberg

    Subjects Software Engineering and Programming Languages Description The Chair of Software Engineering and Programming Languages at the University of Bamberg, Germany, seeks to fill a position as Chair of Software Engineering and Programming Languages focuses...