Good Practices in Research Software Development

Start Date

3 Oct 2023

Start Time

09:30 Europe/Amsterdam



End Date

4 Oct 2023

End Time

17:00 Europe/Amsterdam

Good Practices in Research Software Development


October 3 - 09:30 am


October 4 - 05:00 pm

Event Category:


Click to Register:

eScience Center Digital Skills Programme


Netherlands eScience Center

402 Science Park, 1098 XH Amsterdam

Amsterdam, NH, NL, 1098 XH

‘Good Practices in Research Software Development’ workshops introduce practices, tools and skills used in research software development.

The workshop will take place at Science Park 402, 1098 XH Amsterdam. Please note that lunch and drinks at the end of the workshop are included.

The key objective of this workshop is to grow researchers’ software skills necessary to apply good practices that enable open and reproducible research. The workshop focuses on building modular, reusable, maintainable, sustainable, reproducible, testable, and robust software. This will allow you to organize, maintain and share your data more easily. The participants should be familiar with programming and regularly write code for their research, but no extensive expertise or knowledge of specific tools are required.

This workshop is inspired by and based on CodeRefinery training materials. The workshop is based on the teaching style of the Carpentries, and learners will follow along while the instructors write the code on screen. More information can be found on the workshop website.


The workshop is open and free to all researchers in the Netherlands at PhD candidate level and higher. We do not accept registrations by Master students. The workshop is aimed at PhD candidates and other researchers or research software engineers.


It is assumed that participants already write code for their research, but no expertise is required. Some experience in navigating file trees and editing files in a terminal session, as well as basic knowledge of Python programming is recommended.


Introduction to version control with Git

  • Tracking changes: git add & git commit
  • Exploring history, checking out older versions
  • Ignoring things with .gitignore files
  • Github remotes

Collaboration with Git and Github

  • Creating pull requests
  • Review process
  • Good practices for collaboration
  • Contributing to repositories with forks

Code Documentation

  • In-code documentation
  • Readme files
  • Writing documentation with sphinx and ReadTheDocs or Github pages

Modular Code Development

  • How can you create blocks of code that can be reused?


  • Introduction to testing: motivation, unit testing, integration testing
  • Writing tests with pytest

Continuous Integration

  • Introducton to Continuous Integration
  • Setting up Continuous Integration with Github Workflows
  • Linting and automated testing