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 * https://packaging.python.org/en/latest/tutorials/packaging-projects/ * setup.py vs pyproject.toml (newer)

  • 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?