Job ID: 2025-20627 Type: Full-Time # of Openings: 1 Category: Information Technology
Overview
The Research Software Engineer (RSE) designs and implements software that advances Princeton research at the intersections of the humanities, data science, and computation. They are an integral member of multiple research teams focused on cutting-edge computational research, and may serve as Technical Lead on CDH partnerships with faculty, in alignment with their technical and domain expertise.
With knowledge of trends and best-practices in digital humanities, data science, and research software engineering, the RSE contributes to CDH software development processes, including code review, unit testing, documentation, and version control to ensure that research software developed by CDH is robust, stable, and clearly documented.
The RSE will play an outreach role by providing consultations to interdisciplinary faculty, students and campus partners. They will participate in emerging CDH programs and initiatives for research and teaching. They will promote the research of CDH and its affiliates by contributing to publications and conferences presentations.
This position qualifies for 20% RD time on independent projects that push the boundaries of digital humanities scholarship, chosen in consultation with the CDH Assistant Director
It is a full time, full benefits, permanent position in Princeton, NJ, with the possibility for some flexible work arrangements. This is not a remote position.
Responsibilities
Application of Domain Expertise
Working toward understands the role within the humanities fields and digital humanities methods and working towards a practical understanding of the underlying information science, data analysis and computational research questions at a level sufficient to converse with Princeton's world-class researchers to support the ongoing work. This may consist of researching with the team, independent research (reading publications etc.) and/or studying existing code bases.
Working in a team or independently with guidance, maintain open collaboration with researchers. Regularly meet with, listen to, and ask questions of researchers to ensure that engineered solutions fit the research need. Understand and address software engineering questions that arise in research planning.
Apply appropriate domain specific algorithms, techniques and code to advance software engineering in the research field.
Research Software Engineering
Work in a team or independently with guidance to understand and translate research priorities into flexible software solutions
With guidance from a team, use researcher-provided requirements and desired end state to build complete software solutions. To achieve this, RSEs are expected to figure out the problem through independent or team research, develop elements of a solution, and provide full documentation for usage by the research team.
Contributing elements to the software solutions for each project, follow the established set of applicable best practices uniquely appropriate for that project (e.g. version control, continuous integration and continuous delivery, software design, programming model, etc.), and enable long term maintainability and sustainability by documenting the projects in a descriptive and appropriately detailed manner. As part of a team, contribute technical expertise and guidance for improving the performance and quality of new and existing code bases through hands-on work with ongoing research.
Port, debug, tune and potentially parallelize existing research code to meet criteria set by the research needs.
Working as part of a team, develop software tools that allow researchers to interact in flexible ways with large data sets.
Follow project management plans based on defined scope, provide feedback for project timelines, and communicate with the broader research team. Communicate software engineering concepts with project teams consisting of domain experts with a varying degree of software engineering knowledge.
Serve as a methodological and technical expert to the University community through consultations. Advise advanced students and faculty on best practices and solutions for DH research; help to scope work and suggest technologies for data-driven research.
Publish essays/blog posts and give presentations on Princeton's humanities software engineering projects. May give workshops on tools, technologies or processes. May participate on campus working groups and committees as appropriate. May participate in CDH curricular initiatives (such as developing teaching modules or advising on integrating technical or data-driven work into courses). May participate in national and international organizations Digital Humanities and RSE organizations
Participate in CDH and Research Computing RSE group departmental meetings, colloquia, working groups, etc.
Research Professional Development
Work on personal research and development projects that pushes the boundaries of digital humanities scholarship.
Actively expanding technical skill set and expertise to include software development tools and techniques, software engineering best practices, programming languages, high-performance computing hardware, and computational research solutions.
Qualifications
2-5 years' experience as a Research Software Engineer or similar role (this can include graduate education and/or time in a related field providing applicable experience).
Bachelor's degree in Data Science, Computer Science, Computational, or related discipline.
Experience with humanities research and ability to communicate with humanities researchers, computer scientists, and data scientists.
Exhibits programming skills, particularly in one or more languages typically used for computational humanities research, data analysis, and visualization (Python preferred).
Demonstrated success:
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 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.
Experience working in an academic research environment.
Preferred
Graduate-level research (MA or PhD) in the Humanities, Computer Science, or related discipline.
Ability to work independently.
Experience with web standards (HTML5, CSS, JavaScript, REST, APIs), web and micro frameworks (eg. Flask/Django or Rails; Django preferred), and web accessibility (WCAG).
Experience creating interactive visualizations of complex data as a research tool and as a research output.
Experience writing scripts to gather and process data from diverse sources and formats.
Experience with RESTful APIs and data stores (e.g., relational databases or graph databases).
Accessibility training and/or experience implementing accessible data visualizations.
Princeton University is an Equal Opportunity - https://rrr.princeton.edu/eop 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 - https://www.eeoc.gov/sites/default/files/2023-06/22-088_EEOC_KnowYourRights6.12.pdf
Princeton University is a vibrant community of scholarship and learning that stands in the nation's service and in the service of all nations. Chartered in 1746, Princeton is the fourth-oldest college in the United States. Princeton is an independent, coeducational, nondenominational institution that provides undergraduate and graduate instruction in the humanities, social sciences, natural sciences and engineering.As a world-renowned research university, Princeton seeks to achieve the highest levels of distinction in the discovery and transmission of knowledge and understanding. At the same time, Princeton is distinctive among research universities in its commitment to undergraduate teaching.Today, more than 1,100 faculty members instruct approximately 5,200 undergraduate students and 2,600 graduate students. The University's generous financial aid program ensures that talented students from all economic backgrounds can afford a Princeton education.