Research Software Engineer
Requisition # 2021-13114
Date Posted 5 hours ago(7/21/2021 10:32 PM)
Applied and Computational Math
Research and Laboratory
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
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
Hold open office hours and training sessions.
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,
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
Ability to learn new systems beyond area of core knowledge.
Ability to communicate effectively with a diverse user base having varied
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
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.
iCIMS FAQs, please contact email@example.com.
Go to our careers site.