Associate 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.

View all jobs at Princeton University

Apply now Apply later

Overview

Do you have an interest in computational research and writing code? Do you want to help enable and advance pioneering ​​social science research? If so, Princeton University's Data-Driven Social Science (DDSS) initiative is recruiting an Associate Research Software Engineer to join our growing team.

 

Research Software Engineers at DDSS support research at the technical forefront of quantitative inquiry across all divisions of social science at the University. As a centralized team of software experts, we are focused on improving the quality, performance, and sustainability of research software. Our team is committed to building a collaborative environment in which the best software engineering practices are valued, and to sharing and applying cross-disciplinary computational techniques in new and emerging areas.

 

In this position, you will be a member of a team focused on cutting-edge computational social science research. You will collaborate with researchers and learn how to develop efficient and scalable research code by gaining expertise in software development, system design, and optimization. The Associate Research Software Engineer will be placed with a team of Research Software Engineers with a focus on learning how to successfully interact with researchers, understand research problems, and build the skillset to contribute to computational research through code.

 

If you have an interest in scientific programming, high performance computing, or academic research and are keen to explore the Research Software Engineer career path, you have the right skill set to make an immediate impact on high-profile research projects. You will be poised to grow and expand your programming and data analytics expertise into a dynamic new set of research problems.

 

The Associate Research Software Engineer will be an integral team member reporting to the Lead Research Software Engineer. They will work closely with faculty, postdoctoral researchers, students, and technical staff on a variety of computational social science research projects to enable and accelerate their research computing efforts.

 

This is a 3-year TERM position.

Responsibilities

Research Software Engineering- Working in a team, learn to understand and translate research priorities into flexible software solutions- Practice techniques for improving the performance and quality of new and existing code bases- In partnership with your team, develop appropriate solutions for each project and architect a set of applicable best practices uniquely appropriate for that project (e.g. version control, continuous integration and continuous delivery, software design, programming model, etc.) - Learn how to document projects in a descriptive and appropriately detailed manner that can be understood by both researchers and Research Software Engineers - Learn to port, debug, tune and parallelize existing research code to meet criteria set by the research needs- In a team setting, contribute to the development of software tools that allow researchers to interact in flexible ways with extremely large data sets- Understand how to address software engineering questions that arise in research planning- Learn to communicate complex software engineering concepts with small project teams consisting of domain experts each with a varying degree of software engineering knowledge

 

Professional Development- Learn aspects of the underlying social science, math, statistics, data analysis, and algorithms of computational research questions at a level sufficient to converse with Princeton’s world-class researchers - With the team, regularly meet with, listen to, and ask questions of researchers to ensure understanding of the research need for engineered solutions - Build awareness of software development tools and techniques, software engineering best practices, programming languages, high-performance computing hardware, and computational research solutions

Qualifications

Essential Qualifications:

- 0-3 years’ experience including formal graduate education and/or time in a related field providing applicable experience- Interest in learning programming skills, particularly in the languages used in computational research applications (e.g. Python, R, Julia, C/C++, Rust, JavaScript).- Ability to work in a team setting and independently. - Ability to learn new programming languages and technologies beyond area of core knowledge. - Ability to communicate effectively with a diverse user base having varied levels of technical proficiencies.

- Bachelor's degree is required

 

Preferred Additional Qualifications:

- Background in computational or quantitative social science

- Experience working in an academic research environment.

 

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.25

Eligible for Overtime

No

Benefits Eligible

Yes

Probationary Period

180 days

Essential Services Personnel (see policy for detail)

No

Physical Capacity Exam Required

No

Valid Driver’s License Required

No

Experience Level

Associate

#Ll-DP1
Apply now Apply later

* Salary range is an estimate based on our AI, ML, Data Science Salary Index 💰

Job stats:  1  0  0

Tags: Data analysis Data Analytics Driver’s license Engineering HPC JavaScript Julia Mathematics Python R Research Rust Statistics

Perks/benefits: Career development Flex hours

Region: North America
Country: United States

More jobs like this