Research Software Engineer
Requisition # 2017-8007
Department Research Computing
Category Information Technology
Date Posted 3 weeks ago
Full-Time / Part-Time Full-Time
The Research Software Engineer will work with multiple computational research groups associated with the Center for Statistics and Machine Learning (CSML) to provide long-term software engineering and design to current and future CSML-developed software packages.
The Research Software Engineer will be responsible for establishing professional software development techniques to help advance cutting-edge machine learning and statistical code bases.
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 using modern software development strategies.
- Perform software engineering and development activities including requirements analysis, design, implementation, testing, deployment, and maintenance.
- Develop and maintain reproducible build systems.
- 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
- Create an atmosphere and environment in which best engineering practices are valued and shared.
- Minimum of 3 years of experience in a professional software engineering role.
- Advanced knowledge of systems design and construction
- Strong programming skills particularly in languages such as Python and C/C++.
- Demonstrated success:
- Consistently using conventional and readable coding style.
- Performing test-driven development.
- Creating comprehensive and well-written documentation.
- Participating in regular code reviews as both a reviewer and reviewee.
- Developing and maintaining reproducible build systems.
- Using version control systems.
- Ability to set and handle multiple priorities and efficiently manage multiple projects.
5+ years of experience as a professional software engineer.
Bachelor's degree, or equivalent experience in a related field.
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.