Research Software Engineer

Princeton, NJ
Aug 12, 2017
Institution Type
Four-Year Institution

Requisition # 2017-7877
Department Research Computing
Category Information Technology
Date Posted 1 month ago
Full-Time / Part-Time Full-Time
Application Deadline


The Research Software Engineer works with multiple research groups associated with the Center for Statistics and Machine Learning (CSML) to provide long-term software engineering to current and future CSML projects. The Research Software Engineer works with researchers to provide computational expertise in algorithm development and selection, data management, code development, and code optimization in an effort to create efficient and scalable research code.

The ideal candidate has a strong background in statistics and machine learning, data science, scientific programming, and academic research.

This Research Software Engineer is one of a team of Research Software Engineers, which collectively provide computational research expertise to multiple divisions within the University.

The position requires one to work closely with colleagues in the Office of Information Technology (OIT) as well as with faculty, undergraduate and graduate students, postdoctoral researchers, and technical staff associated with CSML.


  • Lead and co-lead the design and construction of increasingly complex research software systems
  • Understand and address software engineering questions that arise in research planning
  • Provide technical expertise and guidance for improving the performance and quality of existing CSML code bases
  • Maintain and develop knowledge of current and future software development tools, techniques, and programming languages
  • Transfer knowledge, expertise, and best practices to graduate students and postdoctoral researchers
  • Develop and teach CSML tutorials, mini-courses, workshops, and/or colloquia


  • Minimum of 3 years of programming experience
  • Strong programming skills with languages such as Python, R, Java, Scala, SQL, and C/C++
  • Demonsrated experience using mutliple programming paradigms such as functional and object-oriented
  • Demonstrate experience using diestributed computing frameworks like Spark
  • Experience with deep learning frameworks such as TensorFlow, Theano, and Keras
  • Experience writing software to run on HPC clusters
  • Demonstrated experience solving complex data management problems with efficient solutions
  • Demonstrated experience using Jupyter notebooks
  • Ability to communicate technical topics effectively with a diverse user base having varied levels of technical proficiences
  • Ability to set and handle mutliple priorities and efficiently manage multiple projects

Preferred Qualifications
  • 5 + years statistical and machine learning programming experience
  • Experience using GPUs to accelaterate maching learning algorithms
  • Academic research experience related to statistics or maching learning

  • Bachelor's degree in a related field. A Ph.D in a related field 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. EEO IS THE LAW

Salary Grade

AIT, 030

Standard Weekly Hours


Eligible for Overtime


Benefits Eligible


Essential Services Personnel (see policy for detail)


Physical Capacity Exam Required


Connect With Us! Join our Talent Network to receive updates about working at Princeton.

Princeton University requires all candidates to complete a background check successfully prior to the start of employment. The type and extent of background checks may vary depending on job requirements and/or functions.

If you have questions or comments regarding the iCIMS Privacy Policy or iCIMS FAQs, please contact

Go to our careers site.


Similar jobs

Similar jobs