Princeton University

Full Time
Associate Director, Research Software Engineering


The Research Software Engineering (RSE) Group, located institutionally in Princeton Research Computing but extending across campus, is hiring an Associate Director of Research Software Engineering. You will report to the Director of Research Software Engineering for Computational and Data Science, but your area of expertise might range beyond Computational and Data Science.
The RSE Group collectively provides computational research expertise to nearly every division at Princeton: Engineering and Applied Science, Humanities, Social Sciences, Natural Sciences. The RSE group is a centralized team of software experts focused on improving the quality, performance, and sustainability of Princeton’s computational research software. The group is committed to building collaborative environments that value the best software engineering practices to sharing and applying cross-disciplinary computational techniques in new and emerging areas.
In this position, you will build and lead a growing team of Research Software Engineers who provide dedicated expertise to researchers by working alongside them to create the most efficient, scalable, and sustainable research code possible in order to enable new scholarship and scientific advances. You will have the opportunity, and be encouraged, to bring new initiatives, technologies, and/or approaches to the RSE group and Princeton Research Software Community.
You will develop strong relationships with new research groups to understand and assess their research needs, determine the appropriate RSE support model, and work to match or recruit researchers with the right competencies and fit to a project. You’ll act as a liaison to each department, overseeing the work of several research software engineers, making sure that each project is benefitting appropriately from the research collaboration and addressing, trouble-shooting, or problem-solving any barriers or roadblocks with RSEs.
You will oversee and encourage the professional development of the research software engineers you manage by engaging with the broader research community, and find ways for them to participate in the university either via training workshops, advising, consultation, curricular support, and/or participating in conferences or research groups outside of their immediate team. Finally, as part of the RSE management team, you will contribute to the strategic vision and mission for Research Software Engineering at Princeton.
If you have a background in research software development and experience leading teams, you are poised to make an immediate impact on the research software engineering landscape at Princeton. You will collaborate closely with colleagues in Research Computing as well as with leading faculty researchers, student researchers and technical staff in University departments and industry.
This role functions within a dynamic, supportive team environment that permits diverse backgrounds to thrive, including those wanting to make a career change and those with non-traditional career tracks, educational paths, or life experiences. If this environment sounds like a strong match, or even an exciting challenge, we encourage you to apply and use your cover letter to explain why you would be a good fit for the role.


Technical Leadership
• Bring creativity, foresight, and mature professional judgment in anticipating and solving unprecedented problems, in determining project objectives and requirements, and in developing standards and guides for diverse software engineering, computing, and scientific/scholarly activities.
• Pursue and lead new synergistic initiatives that advance the RSE group and Princeton research software community.
• Initiate, structure, and schedule regular code reviews and other group technical activities for the RSE group.
• Mentor and provide technical leadership to members of the Research Software Engineering team.
• Maintain knowledge on current software development tools, techniques, and programming languages.
• Follow trends in software development and software management
• Suggest transdisciplinary collaboration when appropriate, and might suggest that a research team pursue external funding for units that are not normally supported by sponsored research.
Relationship Building and Collaboration
• Initiate and maintain extensive contact with key researchers, scientists, and scholars within a wide range of research groups and skillfully remove barriers to successful RSE collaborations.
• Engage and build relationships with a multitude of researchers, academic departments, and institutes/centers that partner with the RSE program.
• Create new relationships with academic departments and researchers to promote the benefits of collaborative research with an RSE.
• Lead the effort to bring research software engineering expertise to students, faculty, and staff through regularly hosted workshops, presentations, and training.
• Oversee creation and promotion of domain-specific support structures and promote a culture of best practices in collaborative research among collaborators within a variety of settings and domains.
• Initiate and maintain contact with the Office of Information Technology and colleagues within Research Computing to effectively grow and develop software engineering capabilities.
Team Management
• Establish project priorities for RSE teams and follows best practices in project management.
• Determine staffing models for a variety of research needs and in conversation and collaboration with director and RSE advisory committee.
• Communicate with and facilitates communication between PIs, stakeholders, and RSE group.
• Develop criteria for success, monitor and review progress at regular intervals, and manage expectations within and among diverse stakeholders.
• Manage effort and oversees the computational work of the RSE team through direct and matrix reporting structures.
• Conduct Annual Performance Reviews for RSE staff in collaboration with other supervisors.
• Write job descriptions and work directly with HR on recruitment and retention
• Assist in building and developing a diverse, effective, and collaborative group of Research Software Engineers.
• Create an inclusive atmosphere and environment in which best engineering practices are valued, shared, and prioritized.
• Supervise professional development of direct reports, including the coordination of activities and events supporting the acquisition of new skills and expertise.
Strategic Planning and Vision
• Contribute to the strategic vision for Research Software Engineering at Princeton, as well as contribute to national and international efforts to drive the direction of the RSE profession.


Essential Qualifications:
• 7 to 10 years of some combination of the following:
o Software development, preferably in a research environment
o Supporting computational research and software development in an academic setting
o Leading a software development team in a research environment that had multiple stakeholders
• 3 to 5 years’ experience managing people, projects, and/or resources.
• Demonstrably strong programming skills, particularly in the languages common in research software applications. E.g. Python, C/C++, Fortran, R, MATLAB, and/or Java.
• Openly value and espouse software engineering and development activities including requirements analysis, design, implementation, testing, deployment, and maintenance.
• Exceptional written/oral/interpersonal communication skills, both with regard to technical and non-technical audiences.
• Excellent organizational and project management skills; ability to prioritize and manage multiple complex initiatives and projects serving various research groups with available resources; ability to respond quickly to changing business needs and priorities.
• Ability to lead a team of highly competent professionals with varying backgrounds, reporting lines, and responsibilities. Must be a strong mentor and developer of people.
• Proactive approach to seeking information and ideas from peers, supervisors, and project partners.
• Education: A bachelor’s degree is required.
Preferred Qualifications:
• Strong research background in computational science or engineering, computational social science, and/or digital humanities.
• Research Software Engineering experience.
• A Masters/Ph.D. is strongly preferred.
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 (

Apply Here: