Computing & Data
Research software engineering: societies, funders, journals and standards
Research software engineering is the practice of building, maintaining and sharing the software that research depends on, and of treating that software as a research output rather than a by-product. Its working questions are practical: how to test code whose correct answer is not known in advance, how to make an analysis rerun years later, how to credit the people who wrote the code, and how to keep a tool alive after its grant ends.
The community is organised through national bodies. The Society of Research Software Engineering is a UK charity founded in 2019, with working groups including Policy and Funding. US-RSE runs eleven working groups, among them Code Review, Testing and Education and Training, and de-RSE speaks for research software engineers in Germany. The Research Software Alliance works with decision makers on recognition, infrastructure and policy worldwide, and Better Scientific Software collects practice guidance for computational science under six headings from planning to skills.
Funding is thin and often project-shaped. In the US, the NSF CSSI programme funds cyberinfrastructure in three classes: Elements, Framework Implementations and Transition to Sustainability. In the UK, the Institute for Research Software, which grew out of the Software Sustainability Institute, runs a Fellowship Programme and a Research Software Maintenance Fund.
Software is published and archived like other outputs. The Journal of Open Source Software reviews packages openly in public issues and mints a DOI for each accepted paper. rOpenSci and pyOpenSci review R and Python packages, Zenodo issues DOIs for software releases, and CITATION.cff files tell users how a project wants to be cited. This page covers the discipline as a whole. Funding policy, citation, review and governance, testing, high-performance computing, reproducible workflows, training and low-carbon computing each have their own hub, linked below.
New to the field? What is Research Software Engineering? →
Reviewed 5 November 2026 by CASRAI Editorial Board
- SocRSE about(read 5 November 2026)
- US-RSE working groups(read 5 November 2026)
- BSSw(read 5 November 2026)
- NSF CSSI(read 5 November 2026)
- Institute for Research Software(read 5 November 2026)
- ReSA(read 5 November 2026)
- JOSS about(read 5 November 2026)
- CITATION.cff(read 5 November 2026)
- Zenodo(read 5 November 2026)
- rOpenSci(read 5 November 2026)
- The Carpentries(read 5 November 2026)
Field at a glance
Societies
- Society of Research Software Engineering
- UK charity founded in 2019 as a CIO; working groups include EDIA, Communications, Web, and Policy and Funding.Website ↗
- US-RSE
- US association, fiscally sponsored by Community Initiatives; eleven working groups including Code Review, Testing, and Education & Training.Website ↗
- de-RSE
- German community of people who build research software; a joint voice for RSEs in the German research sector.Website ↗
- Research Software Alliance (ReSA)
- Works with decision makers so that research software and its developers are recognised, through task forces, forums and events.Website ↗
- Better Scientific Software (BSSw)
- Resource hub for computational science teams: planning, development, performance, reliability, collaboration and skills; runs a Fellowship Program.Website ↗ · Our guide →
- NumFOCUS
- Nonprofit supporting open-source scientific computing projects through fiscal sponsorship, PyData and small development grants.Website ↗
Funders and programmes
- NSF CSSI
- NSF programme for cyberinfrastructure with three award classes: Elements, Framework Implementations, and Transition to Sustainability.Website ↗ · Our guide →
- Institute for Research Software
- UK national centre of expertise for research software; runs the Fellowship Programme and the 4.8M pound Research Software Maintenance Fund.Website ↗
- Institute for Research Software: research and policy
- Programme producing evidence and guidance on software, research and digital infrastructure to inform policy.Website ↗
- Green DiSC
- Open-access certification scheme from the Institute for Research Software for reducing the environmental impact of research computing.Website ↗ · Our guide →
Journals
- Journal of Open Source Software (JOSS)
- Open access journal for research software; open review in public GitHub issues, OSI-approved licence required, Crossref DOI per paper.Website ↗ · Our guide →
- rOpenSci software peer review
- Open review pairing scientists and engineers to improve the quality and maintainability of scientific R packages.Website ↗
- pyOpenSci peer review
- Community-led open review of scientific Python packages for documentation, testing and maintenance.Website ↗
Archives, facilities and data
- Zenodo
- Open repository run by CERN and OpenAIRE; every upload, including software releases, receives a DOI.Website ↗ · Our guide →
Standards and formats
- Citation File Format (CITATION.cff)
- Plain-text file in a repository that tells people and tools how to cite the software; reused by GitHub, Zenodo and Zotero.Website ↗ · Our guide →
- The Carpentries
- Volunteer-driven nonprofit teaching programming and data skills in Software, Data, Library and HPC Carpentry branches.Website ↗
Preprints and indexes
- arXiv cs.SE
- The Software Engineering category of arXiv, with recent listings on testing, reproducibility and research artefacts.Website ↗ · Our guide →
37 pages across 8 topic areas
Research Tools & Software
- Catch2: C++ Testing for Research Software
Catch2 provides C++ unit testing for research software. Configure CMake FetchContent, run floating-point assertions, and discover test suites with CTe…
- Codecov: What It Is and How to Set It Up for Research Code
What Codecov does, two documented ways to upload coverage from GitHub Actions, how gcov feeds it for C/C++ code, and why 100% coverage is not the goal…
- conda-forge: What It Is, Install, Channel Setup and Fixes
What conda-forge is, how to install it with Miniforge or add the channel, why strict priority matters, and how to fix mixed-channel errors.…
- CTest: CMake Test Driver for Research
A guide to CTest, the CMake test driver. Learn how to configure test suites, filter execution with regex or labels, run in parallel, and diagnose fail…
- How to Write an Sbatch Job Script
A practical guide to writing correct Slurm sbatch job scripts: the shebang, the #SBATCH directive block, which directives matter most, a complete work…
- JupyterHub: Install, Distributions and First Login
JupyterHub explained: what it does, TLJH vs Zero to JupyterHub, and the documented install and first-login steps, read from official docs.…
- Open Source License: Types, How to Choose and Apply One
Compare MIT, Apache-2.0, MPL-2.0 and GPL-3.0, and apply a license with a LICENSE file and SPDX identifier in research software.…
- Property-Based Testing: Research Software Guide
Master property-based testing for scientific code with Hypothesis. Define invariants, automate randomized input testing, and isolate reproducible bugs…
- Pytest Fixtures: Scopes, Yield Teardown and conftest.py
Define, share and clean up pytest fixtures in research code: scopes, yield teardown, tmp_path, conftest.py and params, per the pytest docs.…
- Requesting a GPU in a Slurm Batch Job
How to request GPUs in a Slurm batch job with --gres=gpu:N, --gpus=N, and the newer --gpus-per-task/--gpus-per-node forms, target a specific GPU type,…
- Sharing a Reproducible Conda Environment
A plain conda env export rarely rebuilds cleanly on someone else's machine. This guide covers why (platform-specific builds, unpinned transitive depen…
- Slurm --nodelist, --exclude, and --constraint: Targeting or Avoiding Compute Nodes
A practical guide to Slurm node-selection flags: --nodelist to require named nodes, --exclude to avoid them, and --constraint to request nodes by feat…
- Slurm Job Arrays: Running Hundreds of Similar Jobs Without a Submit Loop
A practical guide to Slurm job arrays: --array syntax, using SLURM_ARRAY_TASK_ID to index per-task input, why arrays beat a submit loop, and array-spe…
- Slurm Priority and Fairshare: Why Your Job Is Waiting in the Queue
Why a submitted Slurm job doesn't start immediately: how the multifactor priority plugin scores fairshare, job age, job size, partition and QOS, and h…
- Slurm vs LSF vs PBS: Job Scheduler Command ReferenceComparison
A command-by-command translation between Slurm (sbatch/srun/squeue), IBM Spectrum LSF (bsub/bjobs), and PBS/PBS Pro/OpenPBS (qsub/qstat) for researche…
- srun vs. sbatch vs. salloc: Choosing the Right Slurm CommandComparison
sbatch submits a script that runs later on its own; srun runs a command now, either standalone or as a step inside a batch job; salloc grabs an intera…
- Stashing Changes in Git: push, pop, apply and list
How to stash changes in Git: push with a label, include untracked files, pop vs apply, fix conflicts, and what a stash does not save.…
- Using the PubMed E-utilities API: ESearch, EFetch, ELink and the 9,999-Record Ceiling
A measured, end-to-end walkthrough of pulling a department or author publication set from PubMed over HTTP: ESearch, EFetch, ELink, EPost and the Hist…
- Using the Semantic Scholar Academic Graph API: Batch Recipes and Real Rate Limits
Three worked recipes for the Semantic Scholar Academic Graph API — resolving DOIs in 500-id batches, pulling citation contexts, and bulk retrieval tha…
Research Data Management
- Apptainer vs Docker: Container Runtime Comparison for HPC ResearchComparison
Apptainer and Docker solve different problems: Apptainer is rootless-by-design for shared HPC clusters, Docker is daemon-based for single-user dev and…
- FAIR Software: How FAIR4RS Diverges from FAIR for Data, Principle by Principle
FAIR4RS did not simply swap "data" for "software". It added two sub-principles, dropped one, promoted one and rewrote another. Here is the clause-by-c…
- How to Cite Software, Code and R Packages
How to cite an R package with R's citation() function, how to cite software or code with no formal citation, and how CITATION.cff (Citation File Forma…
- Research Software Engineer (RSE): Role Definition and Research-Computing Administration
What a Research Software Engineer (RSE) is, how the role differs from IT/HPC and data-science staff, and how research-computing administrators structu…
- RO-Crate: Packaging Research Data and Metadata for FAIR Reuse
RO-Crate is a lightweight, JSON-LD-based specification for packaging research data, workflows, and software with rich, machine-readable metadata. What…
- Snakemake vs Nextflow for Reproducible WorkflowsComparison
Snakemake and Nextflow compared for reproducible computational research pipelines: workflow language, execution model, containers, cluster/cloud suppo…
- The Carpentries: Software Carpentry, Data Carpentry, and Library Carpentry Explained
A guide to The Carpentries nonprofit and its three lesson programs (Software Carpentry, Data Carpentry, Library Carpentry): the workshop model, instru…
- Writing a Software Management Plan
A software management plan (SMP) template built on what NSF, EPSRC, Dutch and German funders, and Horizon Europe actually require -- licensing compati…
Scholarly Publishing
- ASCL: Astrophysics Source Code Library Explained
What the ASCL (Astrophysics Source Code Library) is, how to register a code, how to cite an ascl ID, and how it compares with Zenodo and JOSS.…
- Better Scientific Software (BSSw) Platform Guide
A guide to Better Scientific Software (BSSw): the community knowledge hub, six core taxonomy categories, contribution guidelines, and the BSSw Fellows…
- Journal of Open Research Software: Peer Review, Indexing, and Publishing Standards
Evaluate the Journal of Open Research Software: peer review process, Scopus indexing, CiteScore metrics, open-access metapapers, and submission standa…
- NumFOCUS Guide: Open Research Software Sponsorship
An operational guide to NumFOCUS, the 501(c)(3) nonprofit providing fiscal sponsorship, community programs like PyData, and small development grants f…
- US-RSE: Guide to the US Research Software Engineer Association
The US Research Software Engineer Association (US-RSE) is a professional community supporting individuals who develop and maintain research software a…
CRediT & Authorship
- JOSS Authorship Criteria: Who Qualifies as an Author on a Software Paper
JOSS requires substantial, active contribution to the software or paper for co-authorship, and explicitly excludes purely financial or purely supervis…
Grants Management & Research Funding
- NSF POSE Program: Pathways to Enable Open-Source Ecosystems
NSF's POSE program (Pathways to Enable Open-Source Ecosystems, NSF 24-606) funded the transition of research software into sustainable, community-gove…
Laboratory Compliance & Quality
- IEC 62304: Software Safety Classes, Lifecycle Deliverables, and SOUP Requirements
A clause-level map of IEC 62304 Edition 1.1: what Amendment 1:2015 changed about software safety classification, which deliverables each of classes A,…
Research Methods & Statistics
- What Is Software Engineering? Research Software, Reproducibility, and Citation
A thorough answer to "what is software engineering": its subfields, methods and history, plus research software engineers, reproducibility, software c…
Technology Transfer & Innovation
- Open Source Software Licensing in University Technology Transfer
How university technology transfer offices decide whether to open-source research software or pursue traditional licensing, what MIT, Apache 2.0, and…
Key terms
- ACM Artifact Review and Badging
- Carbon-aware computing
- Citation File Format (CITATION.cff)
- Code review (research software)
- Computational reproducibility
- Container image (Docker/Singularity/Apptainer)
- FAIR4RS (FAIR Principles for Research Software)
- FORCE11 Software Citation Principles
- Green software engineering
- JOSS (Journal of Open Source Software)
- Open Source Software
- Software Heritage archive
- Software management plan (SMP)
- Software paper
- Sustainable HPC
- Workflow Language (CWL/WDL)







