Tech stuff

This list is made for new people, who have been hired as RSEs at Aalto. This isn’t a list of what someone has to know to apply, and not what people should know before starting. It only provides a map, a RSE will incrementally learn things here (and probably things not on the list - this list is what we already know). In the future, we expect this list to be copied and reused in other contexts.

Someone might take ~6 months to slowly learn things on this list as they need them. Not everything will be needed.

Linux and shell

Software development tools

There are a few other interesting CodeRefinery lessons: https://coderefinery.org/lessons/

HPC

Programming

Python

  • Python virtual environments and Conda environments: https://scicomp.aalto.fi/scicomp/python/ , https://scicomp.aalto.fi/triton/apps/python/

    • Be able to create a virtual environment

  • Python module/package structure

  • Python packaging

  • Python command line interfaces (argparse), installing interfaces via packages, …

  • Other steps for a good project

    • Good project structure (module-name/module_name/)

    • Command line interface

    • Modular and maintainable code

    • Installable: setup.py vs pyproject.toml

    • Linter (if worth it)

    • Test coverage (if worth it)

    • Good documentation (README, code-level docs, sphinx + RTD/gh-pages)

    • Automated tests to the degree useful for the project. At least minimal.

    • Github Actions

    • PyPI release

    • conda-forge release

    • GH-action for releasing to PyPI/conda-forge

Examples: *

Data processing

  • webdataset

  • Small file management in various ways

  • Exercise: i/o benchmarking

Data management

  • FAIR data

  • Open Science

  • Aalto Data Agents webinars

Web stuff

  • intro, debugging

  • django?