Projects

The personal stuff. Side projects, open source, experiments. What I build when no one's paying me to.

badi-predictor

live

ML system predicting Zürich public pool (Badi) occupancy using real-time data and historical patterns.

Python XGBoost FastAPI TimescaleDB Docker

work-vacation-planner

complete

Work and vacation day planner with an API, built for Swiss freelancers. Canton-aware holidays, working day counts, and a calendar UI.

Next.js TypeScript SQLite Drizzle ORM Docker Helm

beancount-tools-collection

live

Personal collection of beancount importers, price fetchers, and plugins for Swiss financial institutions. Plain-text accounting for the Swiss market.

Python Beancount Fava

n8n-nodes-harvest

live

Custom n8n community node for Harvest time tracking. Integrates Harvest's API into n8n workflows for automated time tracking and invoicing.

TypeScript n8n Harvest API

n8n-workflows

live

Collection of n8n automation workflows — invoicing, time tracking, notifications, and other business process automations for freelance work.

n8n Automation JSON

spusu-monitor

archived

Automated SPUSU mobile plan price monitoring with history tracking and Telegram notifications. A 2-hour vibe-coding experiment.

Python Telegram Bot Web Scraping

Homelab

in-progress

Kubernetes cluster on Raspberry Pi — K3s, Cilium, Longhorn, GitOps with ArgoCD. Because running production infrastructure at home is a perfectly reasonable hobby.

K3s Cilium Longhorn ArgoCD CloudNative-PG Raspberry Pi

WorldMatrix

archived

iOS library for rendering dotted world maps. Supports custom map regions, configurable density, and multiple export formats. Published as a CocoaPod.

Swift iOS CocoaPods

changelog

live

Stop the changelog merge conflict madness! A CLI tool that creates one file per entry and bundles them together before release — inspired by how GitLab solved their CHANGELOG conflict crisis.

Ruby