This template is a great starting point for an organization ready to hire a senior research software engineer. Here you will find information on the role of a senior research software engineer, a guide for writing a job description, and templates that can be customized to fit the needs of individual organizations.
Who We Are:
[ ORGANIZATION NAME ] mission goes here and about your organization.
About this Role:
The Senior Research Software Engineer (RSE) will be implementing solutions to maximize interoperability and consistency across the different packages. In close collaboration with other RSE teams, the post holder will develop dedicated object classes to represent common data as well as procedures for handling, visualizing, and converting them and tools for data pipeline automation. The senior RSE will also help define and implement good practices for the packages, including coding standards, documentation, unit testing and associated coverage diagnostics, continuous integration and Agile collaboration frameworks.
The salary range for this position is [ SALARY RANGE ] annually and includes a comprehensive benefits package.
[ ORGANIZATION NAME ] highly values facilitating an equitable standard of living across the regions in which it operates. This position’s location is remote and can be based anywhere globally. Details of actual compensation will be discussed during the interview process to ensure compensation is approached comprehensively and equitability. [ TRAVEL REQUIREMENT, IF APPLICABLE ].
What You’ll Do:
Contribute to the development of object classes (S3/S4/R6) and associated methods for handling, visualizing, and converting the most common types of outbreak data
Help define and implement coding, documentation and quality standards for the R packages
Implement a coherent infrastructure for automated testing and continuous integration for the packages
Contribute to the development of infrastructures for data pipelines, automated reporting, and scientific reproducibility
Contribute to developing standards for data anonymization and data security
Improve existing codebases and packages to meet the development team’s standards
Help other teams implement Lean and Agile collaboration frameworks (e.g. Scrum)
Write documentation as needed
Attend meetings as needed
Qualifications You’ll Need:
Bachelor’s degree and 5+ years of relevant experience developing software to industry standards
Excellent programing skills in R and at least one additional language
High proficiency with version control systems (preferably Git)
Experience in implementing automated testing and continuous integration
Experience applying Lean and Agile principles in a collaboration framework (e.g. Scrum)
Self-motivated and able to work in a startup environment- managing to project plans, while maintaining the flexibility to shift as the program and organization evolve
Detail-oriented and organized
Ability to work collaboratively and develop trusted relationships
Excellent interpersonal, organizational, and communication skills
Demonstrated work ethic, and ability to self-manage within a geographically distributed team
Experience working with purpose-driven organizations
Experience in Public Health, Technology, Research, Data Science, or Innovation sector preferred
Experience managing developers team, a plus
Excellent knowledge of R packages for software development (e.g. devtools, testthat, usethis)
General knowledge of common R packages for data analysis (tidyverse, reconverse) a plus
Do you have feedback on this resource?
Thank you for your feedback as we strive to curate and publish resources to help social impact organizations succeed with data.
Related Guides & Resources
Building a Data Team
This guide is for organizations looking to build their data science for social impact teams. Resources include hiring best practices, job description templates, websites, and sample applications for social impact organizations to share their open positions.
Resources from Massachusetts Institute of Technology (MIT), Forbes and +5