Good Practices in Research Software Development

Start Date

19 Jun 2023

Start Time

09:00 Europe/Amsterdam



End Date

22 Jun 2023

End Time

13:00 Europe/Amsterdam

Good Practices in Research Software Development


June 19 - 09:00 am


June 22 - 01:00 pm

Event Category:


Click to Register:

eScience Center Digital Skills Programme

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

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. The participants should be familiar with programming and regularly write code for their research, but no expertise is required.

This workshop is inspired by and based on CodeRefinery training materials.

Optional “Introduction to Git” on day one. To ensure all participants are familiar with the basics of version control and Git, we offer an optional “Introduction to version control with Git” session on day one of the workshop. Please take this 1-minute Quiz to self-assess your git knowledge. If you answered all questions correctly, you can join the workshop from day two onwards. Otherwise, you should join the “Introduction to Git” session on day one.

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.

Prerequisite knowledge

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


This training will take place online. The instructors will provide you with the information you will need to connect to this meeting.


Monday 19 June – 09:00-13:00

Tuesday 20 June – 09:00-13:00

Wednesday 21 June – 09:00-13:00

Thursday 22 June – 09:00-13:00