I'm a founder/CTO/lead dev/sysadmin/startup tech hand at Valohai, the finest purveyor of professional MLOps tools in the world.
I'm one of the maintainers of Babel, an internationalization library for Python.
Here's a list of some of the open-source stuff I've done.
Where things are tagged as "Release", it means the stuff has been successfully used in production, or that I personally use that stuff at least semi-regularly. For stuff in other states of release, well – your mileage may vary.
Play music like it's meant to be played, at 110 BPM.
Concatenate and crossfade audio to form a very long sequence.
Mirror of AFsp (Audio File Programs and Routines)
Convolution samples - Reverbs and delays and effects for days!
#radix_challenge hack for Junction 2016
Stochastic scale-based sequencing with a sampler
A cross-modulating synth sequencer toy.
Converts music to video with cover art, ready to upload to YouTube.
A bytebeat livecoding environment.
Some libre notification sounds.
Old-skool noise/sound effect generator for Windows
LiquidSoap script for a multi-room streaming system
A meta FM synth.
MAKE FATTO BIITOS. Sampler emulator on the web!
Stochastic sampling synthesizer from a friend's voice
A Web MIDI arpeggiator/step sequencer thing.
Ctypes PortMidi wrapper for Python
A little C# app that mutes microphones when noisy keyboards are abound.
Overwatch voice line regeneration using LSTM
Tools to convert and mangle Spotify/Last.fm/Youtube music playlists
A tool for reading wallet.dat files
Normalized nutrition data
Download & convert Finnish Meteorological Institute observation data
Scrape machine-readable data from Hartwall's Juomamaailma.fi
find paths and chains of finnish words, e.g. pala - ala - sala
A char-rnn to generate new nonsensical genre names based on everynoise data
Time-series of Fölläris
Data about the 2017 Finnish municipal elections, scraped from yle.fi
Scrapes data from Kuntaliitto's site.
HTML indexer experiment
Extrapolate Slack member counts based on member activity data
Who knows what this thing does...
Data about Finnish pizzerias
Fixit rule to rewrite assertions into
if not X: raise AssertionError("X")
The colors from flatuicolors.com as JSON
A Befunge-like esolang from 2005, implemented in Basic
Encodes arbitrary Python data structures into XML in a reasonably sane way.
Easily wrap a regular binary into a macOS .app bundle.
A mouse/touch-driven wheel component for React.js.
Finds non-stub TypeScript @types/ packages for your package.json.
Nicen makes your code look nicer! (An omniglot pretty-printer.)
Generate dependency graphs of NPM packages
Visualize the evolution of a Git repository's languages and size
.NET parser for an example context-free grammar syntax
data: URI encode/decode tool.
Easier SSH into EC2 instances
Easily publish a directory to gh-pages
A simple reimplementation of Sentry for low-traffic sites
Teensy tiny nearly-zero-runtime Webpack loader for styles
Contract-first REST APIs in Django
Choice fields that don't record the actual choices lists in migrations.
Making Django internationalization a little easier
Simple tool to fill PDF forms based on FDF/XFDF/JSON
A small utility to download and combine translations
Convert Travis.yml to GitHub Actions workflows.
Filter and reformat Amazon AWS ELB log files
Super simple TypeScript native pagination hook for React.
Show a Docker build context
Non-serious Python as YAML proof of concept
Mappings of CSS properties, keywords and colors to various languages! It's silly!
Statically analyze Django projects for common problems.
Headless Google Chrome! In a container! On a whale!
Elasticsearch introspection utility
Mapnik Docker container with Node and Python bindings
Node.js server to translate OSX touchpad data to web sockets
A statistical profiler and flamechart generator for Python
Proof of concept super-fast Python dependency locker
A programming language in all emojis
A small wrapper for parts of FreeType for Python.
A greenfield JSON parser for C#
A small React component to turn any SVG path into a slider.
A very minimal single-file Python client for Sentry.
Apple Notes database parser
Tool for refactoring state in TypeScript
Stack files into a container image
Bits and pieces for non-production performance observation, logging and optimization.
Minimal type-safe globalesque state for React
setup.py to setup.cfg converter
Tools to play with GitHub organizations, projects, and issues.
Generate a succinct diff between two archive files.
simple PyPI pull-through proxy
My React + TypeScript template for Vite
A mapping function finder
rmi for docker
Experiments with fast low-memory XML parsing in Python
Toy VM and assembler (2008)
Who knows what this thing does...
Stream data from Nordnet's semipublic API
Find out which line strings are close to a number of points
Vastasanuli pelaa Sanuli-peliä.
Gradient designer with code generation.
Automatic as-perfect-as-possible GIF loop maker
Composite *.tif image sequences from several directories into a single PNG image sequence.
Automatically generates high-quality motion-interpolated 120 FPS loops from low-FPS GIFs
A bookmarklet to set any site in a terrible version of Papyrus
Generate "raster dot" SVGs from images
Points along an ellipse, deflected like particles
A tiny Python script for making high-quality GIFs out of videos.
"Circuit" image generator I once wrote for a friend.
Laser graffiti (L.A.S.E.R. Tag) software.
Built out of frustration with the architecture and performance of the GRL's software.
Includes support for single-touch TUIO input in addition to built-in OpenCV blob tracking.
Python2/Allegro bindings (circa 2005, unmaintained)
Dynamic kinetic typography video for Childish Gambino's Put It In My Video
Graffiti Research Labs' LASER Tag, with updates
An old C#/.NET/WinForms node-based graphics processor.
Pseudo-genetic algorithm to recreate images using blurry SVGs
A graphics hack based on the Minsky circle algorithm
Detects the scale factor of an upscaled pixel art image and scales it down for you
Find all the silcrows.
Scrapes machine-readable energy consumption data from energiaonline.fi
Hass.io addon for Ruuvitag Weather Stations
Serves your Ruuvitag Weather Station data over HTTP.
Simpler SOAP for Python.
A simple geocoder for Finnish addresses using public data
Makes your face look more intense.
RSS/Atom/... feed combinator
A very small HTTP dice daemon
Utilities for Untappd Supporters to help them analyze their history
Read PDFs out loud via macOS
Minimal macOS keylogger
Chrome extension for Turku public transit (Föli)
Yet another DynIP updater
Summarize Node.js --trace-sync-io logs
Goodifying terminals for SSH!
Unicode map on the command line!
Topic-augmenting bot for Slack
Lazy Slack archiver
What if you could only see just a little bit of the web?
A bookmarklet I made for a friend who was working with visually impaired people, with the idea that you could show how hard it is to navigate the Internet if you can only see a tiny bit of each page.
:ship: Finnish archipelago trip planner
Compare company names to Pokémon names.
Tools for interacting with XANES X1 programmable LED bicycle taillights
beta.eat.fi data visualizer (proof of concept that it doesn't have to be slow)
Retrospective personal budgeting
Console color experiment, 2015
A :rabbit: for your :file_folder:
Proof of concept to show how webpack-bundled plugins can be linked dynamically together
Demystifying Webpack – presentation & code
Webpack2 multiple entrypoint CSS extraction example for Koodiklinikka
Python extension wrapping strpbrk() for ultimate performance
Simple recipe aggregator project used for an internal training at Anders.
Django template toy environment (for learning!)
Generates calendars as SVGs.
Markov chain text generator.
Download sticker packs from Telegram
Resource (icon) extraction tools
D'Hondt tally for Desu/C 2017
Extract QR codes from a Google Authenticator database file
slack emoji downloader
Extract Apple Color emoji
Download images from Slack workspaces. (DOWNLOAD ALL THE DOGGOS)
Quickly visualize a GeoJSON file
Tools to merge XML files generated by Carbonite SMS Backup and Restore into a deduplicated JSON file.
Hackery bill splitting
Easing function generator and visualizer
Download wallpapers from Reddit
Electron-based Mixcloud.com client
Extract "Now playing" from Winamp/Foobar2000 into text files and/or images.
Built for OBS-Studio, but could be useful for other uses.
Tiny Colorful Dots - a simple, small, fast light color picker
Figure out licenses for the current Python/NPM/Bower environment
just a little file-watcher-child-process-reloader.
A fast file duplicate finder in C#
Some extension commands for git
A little desktop calculator (or Lua interpreter) for C#.
A bridge between Everything and Find and Run Robot.
Fast Duplicate Finder
Mutate text á la "All work and no play..."
Realtime templating tool
S3 duplicate object detector & deletor
Reddit downloader/video link detector
Utilities for distilling data from the Unicode CLDR
Remote system session manager for Windows
Silliest Debian/Ubuntu provisioning toolkit
Incomplete yet functional fast file launcher (like Launchy) for Windows
Once upon a time I wrote a file sharing program for LAN networks during a LAN party. The timestamps reflect this.
Snapshot pages with Playwright
Extracts files from Chrome/Chromium/Electron cache.
A list of Finnish words and names, automagically generated from online data.