The CodeRefinery project
CodeRefinery improves science by providing training and infrastructure
for researchers, who often need to use computational tools but have
little training in tools beyond basic programming. Our support allows
research to be more reproducible, open, and efficient and thus
promotes the goals of open science and FAIR data management - in
addition to making the lives of countless researchers better, since
they learn the tools needed to do their work with less trouble.
We are most known for our practical-level workshop
about base-level practices of software development tools for
researchers. We are also known for our
unique and engaging online teaching
style, and are building a community
around this type of shared teaching.
Through our spin-off project Nordic-RSE, we
serve as a hub for research software engineers in the Nordic
countries, namely in Iceland, Denmark, Norway, Sweden, Finland, and
Estonia. Research Software Engineers are basically the professional
level of what we teach, and the two-way collaboration is very
We are a community project seeking volunteers to sustain what we have
accomplished in the first five years.
We are basically intermediate-level
Carpentries lessons and would like to work
more closely with The Carpentries. Our in-person workshops are
basically "Carpentries-style", though our online workshops have
adopted our own unique style. Our
overall philosophy is similar. Our target audience is learners who
already have some experience with programming and would like to
develop software in a more efficient and sustainable way. We believe
that for many learners we can offer a good second step after their
We would like to work more closely with The Carpentries and offer our
lessons as intermediate-level carpentries. If you are reading this,
please get in touch.
We provide a code repository hosting service that is open and free for all researchers based in national universities and research institutes from Nordic countries.
We develop and maintain training material on software best practices for researchers that already write code. Our material addresses all academic disciplines and tries to be as programming language-independent as possible.
We offer training opportunities:
- CodeRefinery workshops to grow researchers' software best practices skills. These workshops aim at consolidating knowledge learnt during Carpentries workshops and focus on teaching professional tools for efficiently developing and maintaining research software. In-person workshops are typically 3 days, while online workshops are typically 6 half days over 2 weeks.
- Other workshops, organized by partner institutions using CodeRefinery principles, advertised to others on a reciprocal basis.
- Instructor training workshops to learn to organise and teach CodeRefinery workshops. Our train the trainer program aims at building partnerships with Research Software Engineers and researchers who are willing to lead skills' transfer within their local communities in the Nordics.
Our code repository hosting service is open and free for all
researchers based in Nordic universities and research institutes. Please
contact us if you would like to use these services.
We offer training opportunities to researchers from Nordic research groups and projects
to learn basic-to-advanced research computing skills and become confident in using
state-of-the-art tools and practices from modern collaborative software
The key objective of CodeRefinery workshop is to grow researchers' software
best practices skills to facilitate open and reproducible research.
In-person workshops - We offer three-day workshops that focus on methods to build
modular, reusable, maintainable, sustainable, reproducible, testable, and
robust software. These workshops are based on training material
we develop and maintain.
Online workshops - Since April 2020, we offer both "full-package" workshops by 6 half-days over 2 weeks with the same contents as 2-day in-person workshop (training material) and shorter workshops focusing on one or a limited number of lessons.
Requesting a workshop - Would you like to host a CodeRefinery workshop at your home institution?
Get in touch if this sounds interesting!
Note that even though CodeRefinery is a Nordic project, we are interested in giving workshops
also outside the Nordics and are able to do so provided that funding for travel and
accommodation can be covered.
Information for local organizers - We have prepared a list of practical requirements.
Level of CodeRefinery workshops - For CodeRefinery workshop, it is assumed that participants already write code for their research but no expertise is required. Some experience in navigating
the file tree and editing files in a terminal session is recommended.
Our workshops are attended by MSc and PhD students, postdocs,
researchers and more senior staff from a wide range of scientific backgrounds
and with different programming experiences.
Instructor training workshops
One purpose of our Instructor training workshops is to train
CodeRefinery instructors, but being (or becoming) a CodeRefinery
instructor is not required. With the workshops we also aim at building
partnerships with research software engineers
and researchers who are willing to lead skills' transfer within their
local communities in the Nordics.
Instructor training workshops take 2 days and cover this lesson
- Level of Instructor training workshops - Learners should have some familiarity with good software development practices, especially in the context of scientific software, and be
interested in sharing knowledge and teaching.
Other types of events
We have organized hackathons, get-together events and shorter workshops
customized for individual research groups. Regularly we also host
online Open House events where CodeRefinery instructors together with
a wider community of interested people work in sprints on topics
ranging from lesson development to website updates.
We're always interested in new collaborations, so if you would like to
co-organize an event with us or suggest a new type of event, don't
hesitate to get in touch!