The Princeton Laboratory for Artificial Intelligence (AI Lab) is seeking a Research Software Engineer (RSE) to contribute to current AI research across the university, translating research priorities into flexible software solutions and advancing AI research through impactful open-source projects.
Requirements
- 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.
- Consistently using conventional and readable coding style.
- Creating comprehensive and well-written documentation.
- Using version control systems.
Responsibilities
- Apply AI and machine learning algorithms to software engineering projects in the researcher’s specific domain.
- Working 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.
- 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.
- Provide technical expertise and improve the performance and quality of new and existing code bases through hands-on work with ongoing research.
Other
- 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.
- 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.