Random stuff I have worked on...

These days, most of my development work is within other organization Github groups, to ensure software has a life afterwords. I'm one of the main contributors to AaltoScienceIT, CodeRefinery, NordicHPC. This page lists some notable projects. Within each category, they are presented from most refined/useful to least. A=alpha (used by me but needs development while being used), B=beta (works well for me, probably needs documentation or support for others to use), R=release (reasonable for others to use).


Projects where I am the primary designer and developer...

  • nbscript: (B) run Jupyter notebooks with a unix script-like interface. (jupyter)
  • envkernel: (R) flexibly launch Jupyter kernels in different environments. (jupyter, Lmod, docker, singularity, virtulenv)
  • git-pr: (R): create git pull requests from the command line with minimal keystrokes. (git, github, gitlab)
  • slurm2sql: (R) Import a Slurm workload manager accounting database to a sqlite3 database for analysis. (slurm, sqlite3)
  • sphinx_ext_substitution: (R) substitution extension for Sphinx, allowing multiple compilation modes and better management. (sphinx, restructured-text)
  • git-data: (A) frontend to git-annex to make it usable by more people, especially for research data. (git, git-annex)
  • git-latexdiff: (R) use latexdiff on .tex files in git. (git, latex)
  • sphinx_ext_minipres: (A): try to turn any sphinx page into a hybrid scrollable web page/presentation, to minimize the difference between readable notes and the presentation. (html, javascript, sphinx)
  • hyvaapaivaa: (A-B) notes on learning Finnish (learn the spirit of the language), incomplete. (sphinx, finnish)
  • teflon: (B) LD_PRELOAD to prevent users from accidentally changing setgit or group bit, useful on our cluster. (operating-systems, C)
  • scicomp-docs: (R) Scientific computing documentation for Aalto, I set it up but much content contributed by others. (sphinx, documentation)
  • handsonscicomp: (B) Outline of scientific computing for a course (sphinx, teaching)
  • usefulaaltomap: (R) Useful map of Aalto University. I did data backend, colleague did frontend. (github-pages, CI, openstreetmap)
  • MeetBot: (R) IRC bot for running IRC meetings, now abandoned (supybot, abandoned)
  • whiteboard: (R) Online text collaboration platform that's a thin wrapper on mobwrite, now abandoned. (html, abandoned)

Research code

Here, "beta" is relative to the standards of research code, which isn't that reusable...

  • niimpy: (B) Data analysis tools for behavorial data. (python, sqlite3)
  • koota-server: (A) Data collection server, collects data from people
  • jako: (A) Web service interfacing with pcd (below), allowing community detection in networks from the web. (django)
  • pcd: (B) Tools and interfaces for dealing with communities in networks. (python)
  • board-game-networks: (B) Open dataset of networks in board games (git, data).
  • gtfspy: (R) Python module for GTFS data analysis. I helped start, but by now I am essentially not involved and am a minor contributor. (python, data, sqlite3)
  • saiga12: (B) Lattice glass model simulator. (python, C, ctypes, simulation, physics)
  • scicomp: (B) Tutorials on scientific computing. Now that I have joined CodeRefinery, this is redundant. (teaching, scientific-computing, obsolete)
  • dragunov: (B) Jagla model simulator (python, C, ctypes, simulation, physics)
  • mp3: (B) Utilities for dealing with atomic simulation data (python)


  • jupyterhub-aalto: (R) JupyterHub deployment on kubernetes, with Aalto CS-IT. (python, jupyter, jupyterhub, kubernetes)
  • triton-jupyterhub (B): JupyterHub deployment on a HPC cluster with Jupyter (python, jupyter, jupyterhub, slurm, hpc)


I've ended up contributing ta various open source projects over my time here.