Skip to content

Latest commit

 

History

History
279 lines (172 loc) · 5.8 KB

rse-intro.md

File metadata and controls

279 lines (172 loc) · 5.8 KB

class: gray-background

Research software engineering (RSE) at UiT in 10-15 minutes

.left-column50[ .fat[1:] The RSE role

.fat[2:] Toolset

.fat[3:] Courses

.fat[4:] Use cases

.fat[5:] Vision ]

.right-column50[

RSE logo ]


FAIR principles and software

Researchers need to navigate many tools and concepts.

FAIR principles: findable, accessible, interoperable, reusable

.cite[(c) Scriberia for The Turing Way, CC-BY]


6 helpful steps for reproducible research: file organization, naming, documentation, version control, stabilizing co
mputing environment, publishing cresearch outputs

.cite[Heidi Seibold, CC-BY 4.0, https://twitter.com/HeidiBaya/status/1579385587865649153]


Research software engineers

.. are people who combine .emph[professional software expertise] with an .emph[understanding of research] .cite[https://researchsoftware.org/]

  • Often people who grew up in research and liked computing and programming

  • ... or people who come from software development drawn towards meaningful and impactful work of academia

Resources


Our team


class: center, middle, inverse

What we offer


Help with improving your scripts/code

  • .emph[Code review] (we discuss code in a constructive way)
  • Making code .emph[more reusable]
  • Good practices for documentation

Image showing a 'diff' (before and after) used during code review


Help with organising your code

.left-column50[

  • Git, GitHub, and GitLab

  • Moving your work/project/code/data to Git

  • Modularizing your code

  • Organization of reusable Python/R notebooks ]

.right-column50[ Screenshot of https://github.com/pandas-dev/pandas/commits/main ]


Help with sharing your code

.left-column50[

  • Help with software licenses and open sourcing

  • Publishing code

  • Packaging and sharing software

  • Containerization (Singularity, Docker)

  • PyPI and Conda ]

.right-column50[ Screenshot of zenodo.org ]


Getting results sooner

.left-column50[

  • Improving scaling, CPU, and memory optimization

  • Porting to GPU

  • Moving from local computer to cloud or HPC

  • Helping with running independent steps in parallel ]

.right-column50[ image of a busy restaurant kitchen

.cite[Midjourney, CC-BY-NC 4.0] ]


.left-column50[

  • Version control

  • Collaboration using Git

  • Testing

  • Documentation

  • Notebooks

  • Modular code development

  • Reproducible research

  • Software licensing

  • How to share and publish code ]

.right-column50[

Typical format: 6 half-days, twice per year, online, free, live-streamed, recorded, archived asynchronous Q&A in collaborative document

Lessons and recordings: https://coderefinery.org/lessons/ ]


Use case 1: optimization

Oceanography: speed-up of grid mesh generation from days to seconds by a code rewrite from Matlab to Python+Rust using a more optimal algorithm


Use case 2: web development


Use case 3: rewrite instead of buying a 30 GB hard disk

Problematic if data is 30 GB big

result = 0.0
with open("data.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        result += analyze(line)

Better

result = 0.0
with open("data.txt", "r") as f:
    for line in f:
        result += analyze(line)

class: center, middle, inverse

Projects


class: center, middle, inverse

Our vision


Our vision

Short term

  • Provide consulting: good advice is not expensive
  • .emph[Code review] sessions
  • Work on "smaller" projects and .emph[document use cases]
  • Focus on UiT
  • Attract more projects

Longer term

  • Be part of funding applications
  • Research groups have access to best in class RSE services
  • Hire more staff who collaborate on projects
  • "Proper" application procedure
  • Going beyond UiT
  • .emph[Career path opportunities]

class: center, middle, inverse

Office hours: Wednesday 13:00 - 15:00