Select projects and open source contributions

  • Amazon avoidance (2023)


    A TamperMonkey script to point out Amazon-owned second-hand bookstores when searching for used books on More details about it on my blog.

  • Maid rubygem (2023–Present)


    "Hazel for hackers" – A gem to keep your filesystem tidy by periodically running custom rules.
    I became the maintainer for this gem as its current author doesn't have as much time to work on it anymore. I have so far updated the code to work with Ruby 2.7 and 3+, configured automation for testing and releasing, triaged the backlog of issues.

  • UserScript for (2023)

    JavaScript, MutationObserver

    A TamperMonkey script that enhances the user reviews page on Its purpose is to simplify the evaluation of a seller's trustworthiness while purchasing by replacing the article number with a direct link to the actual ad. Due to the architecture of the webapp, the script employs MutationObservers extensively.

  • 3D printed parts and models (2021–Present)

    3D printing, CAD

    Various models for 3D printing, designed from scratch using CAD software. I use a Prusa Mini printer with PLA and PETG filament.

  • Tizinger (2020)

    Golang, GraphQL

    A command line tool to fetch a playlist from a GraphQL database, search the matching songs on a music streaming service, and re-create the playlist on that service. It supports and Tidal out of the box, support for other services and radios can easily be added, thanks to a modular plugin architecture. It is fully unit tested and commented.

  • Hello (2017–Present)

    Vanilla JavaScript, Jekyll, Netlify, Serverless

    Also known as this website. Features progressive enhancement (time-of-day-appropriate greeting in a random language on the homepage, current weather where I live, current year in the footer) if JavaScript is available without breaking if it isn't available, manipulates the DOM directly without any framework, uses serverless functions, automated preview deployments and releases through Netlify. Available at

  • YNAB_convert (2019)

    Ruby, CSV

    Command line tool to parse statements from financial institutions and convert the data into a format YNAB4 understands to import the transactions. The gem supports several banks out of the box, and performs currency conversion. It uses a plugin architecture that enables adding other banks easily following a reference implementation. It is fully unit tested and commented. Available as a Ruby Gem:

  • Ansible roles (2017–Present)

    Ansible, YAML, DevOps

    Several Ansible roles to setup and configure software I have needed in my private or professional life. Roles are tested with Molecule and published to Galaxy.

  • cv-tools (2016)

    Bash, NodeJS, AWS S3, Gulp, LaTeX

    A tool to manage my CV. It will automatically watch for changes to the LaTeX file, recompile it for every change, and show me a preview of the resulting PDF. Once the CV is ready, it will package it in a zipped and password-protected archive and upload to S3 so that it can easily be shared with interested parties. Each version of the CV contains a hyperlink in its footer to download the most up to date version.

  • node-bitly (2015)

    NodeJS, OAuth, NPM package

    A contribution to the open source NPM package. Added OAuth handling, refactored the tests so they're less coupled, and used fixtures to mock HTTP calls so the tests are less flaky, have no side effects, and are much faster to run. It was accepted and merged by the package maintainer. Available on NPM:

  • AdADay (2016)

    NodeJS, Slack bot

    A Slack bot that scrapes, extracts one random video matching a set of configurable criteria, and posts it to Slack at regular intervals. Fully unit tested and documented, mocks HTTP calls for testing.