Research Software Engineer I
Princeton, NJ, United States
Princeton University
Through teaching and research, we educate people who will contribute to society and develop knowledge that will make a difference in the world.Overview
The Natural and Artificial Minds (NAM) initiative invites applications for a Research Software Engineer (RSE). As an RSE joining the NAM initiative, you will contribute to the current core projects, "Explanation and Intelligibility" and "Developing and Testing AI Models of Human Cognitive Function," and potentially seed projects supported by NAM. Candidates can read more about these core projects and funded seed projects at https://nam.ai.princeton.edu/research.
In this position, you will be both a member of Princeton’s RSE team, as well as an integral member of several dynamic research teams in NAM focused on advancing research at the interface of cognitive science and artificial intelligence. You will work with a diverse group of faculty, postdocs, and students from multiple disciplines, including cognitive science, psychology, computer science, statistics and machine learning, linguistics, neuroscience and philosophy.
If you are passionate about understanding human cognition, advancing AI research, working alongside leading researchers, and contributing to impactful open-source projects, we encourage you to apply for this position.
This is a 3-year term position.
Responsibilities
Research Software Engineering
- 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 adhering to 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.
Application of Domain Expertise
- Collaborate with our diverse team to help develop and improve our understanding of AI models, advance our understanding of human minds through the study of AI, and build better AI models as a result.
- Develop, maintain, and improve our shared infrastructure for designing, training, fine-tuning, and prompting and analyzing large AI models.
Professional Development
- Learn the underlying science, mathematics, statistics, data analysis, and algorithms of computational research questions through independent research, studying existing code bases, and staying current with publications.
- Build awareness of software development tools and techniques, best practices in software engineering, programming languages, high-performance computing hardware, and computational research solutions.
- Participate in a community of research software engineers and engage in continued professional development opportunities at Princeton Research Computing.
Qualifications
Essential Qualifications:
- A minimum of 2 years as a Research Software Engineer or equivalent experience (e.g. graduate school, industry experience, open-source software development, etc.).
- Proficiency in programming languages like Python and C++.
- 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.
- Strong written and oral technical communication skills with the ability to present complex research findings to technical and non-technical audiences.
- Bachelor's degree is required
Preferred Additional Qualifications:
- Expertise in conducting research in Artificial Intelligence and Machine Learning and/or other domain applications of neural network modeling. 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.
Princeton University is an Equal Opportunity 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. KNOW YOUR RIGHTS
Standard Weekly Hours
36.25Eligible for Overtime
NoBenefits Eligible
YesProbationary Period
180 daysEssential Services Personnel (see policy for detail)
NoPhysical Capacity Exam Required
NoValid Driver's License Required
NoExperience Level
Associate #Ll-DP1* Salary range is an estimate based on our AI, ML, Data Science Salary Index 💰
Tags: Computer Science Data analysis Engineering GPU Linguistics Machine Learning Mathematics Open Source Prompt engineering Python PyTorch Research Scikit-learn Statistics TensorFlow Testing
Perks/benefits: Career development Conferences
More jobs like this
Explore more career opportunities
Find even more open roles below ordered by popularity of job title or skills/products/technologies used.