Online CodeRefinery workshop

Oct 20-22 and 27-29, 9:00 - 12:00 (Central European Time, 6 half-days)


Register (closed to solo learners) - only open for helpers and existing teams.

Because of our Nordic funding, priority is for Nordic participants.

  • Day 1 is done! You can find video archive on CodeRefinery Twitch for 14 days after each lesson, and HackMD notes at the bottom.

Zoom? Live streaming? Team?

If you register, you can attend via Zoom. We recommend you get some friends and register as a team - you will be in a breakout room together for the whole workshop, making it much more fun and educational.

You can also attend via live stream on Twitch:, see bottom right on this page. Privacy is our first concern and only the instructor’s video will be published, and breakout rooms for exercises are completely private.

Course goals and format

In this course, you will become familiar with tools and best practices for version control and reproducibility in modern research software development. The main focus is on using Git for efficiently writing and maintaining research software.

We will not teach programming, but we teach the tools you need to use programming well. We assume that you are familiar with the programming language that you use in your work and research. We try to keep the course as language-independent as possible but we will show some basic code examples in Python.

This is an informal and interactive online event with type-along type of presentations, live coding, and demos. Short tutorials alternate with practical exercises.


  • You should be able to navigate the file tree in a terminal session and edit text files in the terminal. This Linux shell crash course (video) contains the essentials.
  • Basics in one or more programming languages.
  • You need to install some software (see below).
  • It is useful if you have a basic idea of how Git works. We will start from the basics anyway, but please go through this Git-refresher material for a basic overview and important configuration steps.
  • Make sure that Git is configured, and verify the configuration (see below).

Software requirements

You need to install some software before CodeRefinery (why we ask you to do this). Please do this - and check it - in advance, otherwise you’ll start off behind.

Note that, e.g., a working Python executable on your laptop is not sufficient - a version greater than 3.4 is strongly recommended and a number of extra packages need to be installed as detailed on the Python installation page. You also need to check your Git configuration (video: how to configure Git). If you have an institutional laptop with limited rights, start in advance and/or ask for help to translate these instructions to work on your system.

You should either a) drop by one of our verification sessions in advance, or b) verify with your team’s helper before the workshop.


All times are in Europe/Stockholm time (note summer time ends between the weeks): (First week time converter) (Second week time converter)

The schedule includes frequent breaks. The schedule is subject to change.

Pre-workshop installation help and verification times

  • Join anytime during this (preferably not everyone at the very start and end)
  • Friday, Oct 16, 10:00 - 11:00 (time converter)
  • Monday, Oct 19, 16:00 - 17:00 (time converter)

Day 1 (Oct 20)

Day 2 (Oct 21)

Day 3 (Oct 22)

Day 4 (Oct 27)

Day 5 (Oct 28)

Day 6 (Oct 29)


The workshop will be held online, participant links will be sent to registered participants. Also streamed at


Free of charge, funded by the Nordic e-Infrastructure Collaboration.


Who the course is for

Are you doing any of these things below:

  • You write scripts to process data.
  • You change scripts written by your colleagues.
  • You write code that is used in research by you or others.

If yes, then this course is for you. This is not designed for “professional code developers” or computer scientists.

If you develop research code and you know all the tools already, join us as a helper! It’s fun, and you always learn something new about a subject by teaching it.

How to join

We are normally limited by number of helpers, thus why not allow groups to bring their own helper?:

  • We have the concept of teams that bring their own breakout room.
  • Anyone may register as a learner, we will try to take as many as we can.
  • Or you can register as a helper. If you are somewhat comfortable with these tools, you can be a helper! (see below)
  • Register as a team, one helper and 4-6 learners.
    • We will accept all complete teams.
    • Everyone on the team must register separately.
    • Decide some team name, and give this name when registering so that we can link you together.
    • During the exercise sessions in breakout rooms, the helper has primary responsibility for their group’s hands-on exercises. Still, instructors drop by to check and help as needed, so don’t worry if you don’t know everything.
    • This is a great opportunity to bring your friends and colleagues and prepare for the future together.

If you’ve been to a CodeRefinery before and have used git some after that, you are definitely capable of being a helper. If you routinely use git and know Python somewhat well, you are also very qualified to be a helper.


  • Richard Darst
  • Naoe Tatara
  • Radovan Bast


  • Radovan Bast
  • Richard Darst
  • Johan Hidding
  • Jarno Rantaharju
  • Sabry Razick
  • Marijn van Vliet
  • Jens Wehner
  • Thor Wikfeldt

Expert helpers

  • Enrico Glerean
  • Juho Lehtonen
  • Samantha Wittke


(Tips for helpers). Helpers making this CodeRefinery possible. If you are a helper and would like to be listed here, let us know.

  • Niket Agrawal
  • Susan Branchett
  • Simoneta Caño de Las Heras
  • Amir Ebrahimi Fard
  • Johan Hidding
  • Jakob Sauer Jørgensen
  • Maurits Kok
  • Raul Ortiz Merino
  • Ingrid Strandberg
  • Evelien Van Dijk
  • Jens Wehner

Helper introduction:

  • If you registered as a helper, please join one of the following two timeslots (Stockholm time):
  • During this time, we will talk about the role of the helper during the workshop and answer any open questions
  • You can also read through the material here
  • If you have any doubts, questions, ideas or anything you want to tell us apart from these sessions, please…

    • or you can send an email to
    • write your question here* and we will try to answer asap (the HackMD is a collaborative document (written in markdown), for now the important part to know is that you can add questions there by finding the pen symbol in the top toolbar and write your question under the ##Helper questions header)
  • If you want to help or learn how to help with installation issues, please also participate in the installation help sessions which are right after the helper sessions.


  • Why should I come as a team? If you will work together later, learning the tools at the same time is a great way to do it.

  • Am I good enough to be a helper? If you are asking this question, probably you are. You should have some familiarity with git, provide some initial advice on obvious error messages, and be able to call us for advanced help when it’s needed.

  • How does the waiting list work? Anyone can register, but you go to the waiting list until we can be sure we have enough helpers. We’ll continually approve people as we get space. We know this may be more unpredictable for you, but the way to make sure you get in is join a team with a helper (or find us more helpers in general).

  • If the workshop is streamed/published, will I be visible? Privacy and internal safety is our first concern. Only instructors video will be published. If you use voice to questions in the main room, that might be published. The most common way to ask questions is written, and anyone can feel comfortable using this. Breakout rooms, where all of the hands-on work and most discussion happens, are always private and unrecorded.

  • I can’t register/didn’t make it past the waiting list, and I would like to follow the streams myself. We don’t yet know if we will do this or what the format will be. Please check back for further information. Note, we highly recommend registering as a team if possible, you will get much more out of the workshop if you are a part of it.

  • Is there any way I can follow along? We’ll try to live stream it, see below. The experience won’t be the same, but we do what we can.

  • If it’s online, why did you close? CodeRefinery workshops are interactive, with lots of interaction between instructors, helpers, and learners. We can scale one-to-many easily, but we reached the limits of an interactive format.

  • When are registrations approved? We will look through number of attendees and number of helpers, and accept who we can and direct the rest to the live stream.

  • How can I be notified of updates? Currently, we don’t have any way. Follow @coderefine on Twitter.

Streaming info

We will live stream the course so that those who didn’t have a chance to register can follow along too. See the streaming info to take full advantage.

We will stream at Check/follow @coderefine on Twitter or this page for updates.

Questions, answers, and feedback

Here we can share during/after the workshop (anonymized) questions, answer, and feedback from the collaborative notes.


CodeRefinery is a project within the Nordic e-Infrastructure Collaboration (NeIC). NeIC is an organisational unit under NordForsk.

Follow us

CodeRefinery GitHub account CodeRefinery Twitter account