Research Software Engineer
Requisition # 2017-7877
Department Research Computing
Category Information Technology
Date Posted 8/11/2017
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
- 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
- Bacheloer'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
Standard Weekly Hours
Eligible for Overtime
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.
Go to our careers site.