Research Software Engineer II
Princeton University · Princeton, NJ · 1 wk ago
Engineering$125k–$140k/yrFull-time
Responsibilities
- Initiate and maintain open collaboration with researchers across Princeton University.
- Regularly meet with, listen to, and ask questions of researchers to ensure the engineered solutions fit the research need.
- Apply AI and machine learning algorithms to software engineering projects in the researcher’s specific domain.
- Research Software Engineering: Work independently with minimal guidance to understand and translate research priorities into flexible software solutions.
- Collaborate with a team to develop comprehensive open source software solutions and models based on researcher-provided requirements and desired outcomes.
- Conduct independent or team research to identify and solve problems, and provide detailed documentation for the research team.
- Contribute to software solutions by establishing project-specific best practices, including version control, continuous integration and delivery, software design, and programming models.
- Ensure long-term maintainability, sustainability and open access by thoroughly documenting projects.
- Provide support for the use of software libraries, including detailed documentation that is accessible to both researchers and future Research Software Engineers.
- Contribute to improving the performance and quality of new and existing code bases through hands-on work with ongoing research.
- Serve as a liaison with Princeton Research Computing staff on GPU cluster-related issues.
Qualifications
- Bachelor’s degree or equivalent in computer science, engineering, applied math, sciences, or related computational field.
- A minimum of 4 years as a Research Software Engineer or equivalent experience (e.g. graduate school, industry experience, open-source software development, etc.).
- Proficiency in programming languages used in AI and computational research (e.g. Python, C++, R, MATLAB, Julia).
- Expertise in machine learning algorithms and techniques.
- Familiarity with AI frameworks like TensorFlow, PyTorch, or Scikit-learn.
- Experience working with large datasets and familiarity with GPU computing environments.
- Demonstrated success: Consistently using conventional and readable coding style. Creating comprehensive and well-written documentation. Using version control systems.
- Demonstrated successes contributing to a collaborative research team.
- Ability to work independently.
- Strong written and oral technical communication skills with the ability to present complex research findings to technical and non-technical audiences.
Preferred Qualifications
- Expertise in conducting research in Artificial Intelligence and Machine Learning.
- Contributions to open-source libraries and publications in relevant journals or conferences are highly valued.
- Experience participating in multiple software development projects simultaneously, ensuring timely delivery and adherence to quality standards.
- An eagerness to take on more responsibility and develop project management skills.
- Masters/Ph.D. in computer science, applied science, or other related field with a strong computational focus or equivalent experience in a research setting preferred.