Research Reproducibility Engineer
The story behind this post is that community member @vsoch was graduating, and thought it was important to stay at Stanford to bring containers (Singularity, specifically) to the research clusters there. Having given much thought about an “academic software developer”, she worked together with the head of Research Computing to create this job description, and eventually the role. The document calls for a “Research Reproducibility Engineer” but after it was established, the title was tweaked to be “Research Software Engineer.” While there was no official job classification for a “Research Software Engineer” at Stanford, this was the first (more stated or attempted) effort to support an RSE there, and create an official RSE Services initiative. After just under 5 years in this role, finding support via labs and open source projects, she created a more official proposal for a Research Software Engineer role at Stanford to HR in late 2020.
Overview
Job Title | Research Reproducibility Engineer |
Job Family | Information Technology Services |
Job Series: | Information Technology |
Note: Not all unique aspects of the job are covered in this job description.
Job Purpose:
In no more than 2-3 sentences, the overall purpose of the job, or why the job exists, is described.
This position will provide system engineering and architecture, infrastructure and standards development, and specialized technical consultation to better ensure reproducibility of scientific computational analyses and workflows. This includes development of frameworks optimized for deployment of container-based workflows as well as frameworks to deploy “science as a service” capabilities.
Core Duties
Included here are only those duties/functions that are essential to performing the job that take 10% or more of the incumbent’s time in the job. Each core duty is individually described in no more than 2 to 3 sentences.
- Develop and deploy templates to promote use of research analysis tools via intuitive interfaces, with associated computation being location-agnostic
- Provision infrastructure platforms for research teams, incorporating novel technical solutions as needed to meet research requirements. Develop, install, test and configure container-based software tools and frameworks
- Customize environments as requested by research teams, with specific focus on the optimization of reproducibility of results and end-users’ experiences. Deploy custom analysis workflows as proof of concept of reproducible products
- Provide advanced cyberinfrastructure consultation for faculty, postdocs and graduate students across an array of university research units and departments.
- Ensure systems and applications are developed, deployed and managed in accordance with Stanford policies and any regulatory requirements specific to data sources and classifications.
- Conceive, design, develop, optimize, integrate, and maintain information technology at a complex level
- Troubleshoot highly complex problems for which the analysis and resolution require extensive knowledge of many diverse system components
- Develop long range technology plans.
- Provide leadership and IT solutions for complex problems
*Other duties may be assigned.
Minimum Requirements
Education and Experience
Indicate only the required type of education and years of experience.
Bachelor’s degree and ten years of relevant experience, or a combination of education and relevant experience. Strong knowledge of Linux, cloud technologies, modern web programming frameworks and demonstrated experience developing and deploying scientific applications in complex environments are also required.
Knowledge, Skills and Abilities
Only critical, required skills, knowledge and abilities needed to perform the job duties are listed; these items should relate directly to the job’s core duties.
Advanced knowledge of scientific computing application technologies and Linux are required, as are skills in using modern web programming frameworks and tools to develop and deploy scientific applications in complex environments. Expertise with modern data analysis, databases and workflow development is essential. Expert programming skills as well as proven experience working in a Linux cluster environment. Proficiency in cyberinfrastructure-based workflow design is needed, as is the ability to define and solve logical problems for highly technical application environments. This position requires that you be able to juggle multiple competing priorities, work quickly and accurately, and demonstrate initiative in conceptualizing and moving technical projects successfully to completion. The position must be able to do independent analysis, troubleshooting and problem resolution, but also must work collaboratively with other team members and across organizational group boundaries.
Certificates and Licenses
Examples: Licensed Clinical Social Worker (LSCW), certification, etc., required to perform core duties.
Physical Requirements:
Activities typically done on a rare, occasional, or frequent basis to perform the job’s core duties are indicated here.
There are no specific physical requirements associated with this position beyond the ability to constantly perform computer-based tasks.
*Explanation note regarding accommodation and applicability of physical requirements for jobs.
Working Conditions
Unusual exposures, usually environmental, that are typically encountered in the job area listed here. If environmental varies by area, department or employee, the variances are captured on an addendum.
May work extended hours, evenings and weekends.
Work Standards
These items will appear on every job description.
- Interpersonal Skills: Demonstrates the ability to work well with Stanford colleagues and clients and with external organizations.
- Promote Culture of Safety: Demonstrates commitment to personal responsibility and value for safety; communicates safety concerns; uses and promotes safe behaviors based on training and lessons learned.
- Subject to and expected to comply with all applicable University policies and procedures, including but not limited to the personnel policies and other policies found in the University’s Administrative Guide, http://adminguide.stanford.edu/.