Projects

Things I've built and still run, plus the code behind them. Anything with an Open button is live and free to try. Everything else is on GitHub.

Try it live

Running on my own server. No sign-up needed.

ApplyQuest

A job-search tracker that turns applying into a game: points, levels and streaks to keep you going through a tough market, plus interview calendars and analytics. The demo signs you in automatically and resets every two days, so feel free to click anything.

  • TypeScript
  • React
  • FastAPI
  • PostgreSQL

Recipie

An offline-first recipe PWA that knows what's in the pantry, so each recipe shows green, yellow or red for whether you can cook it right now. It has a step-by-step cook mode with timers, plus an MCP connector so Claude can read and save recipes. The demo uses a made-up pantry and eight Kerala dishes, and doesn't save your edits.

  • TypeScript
  • PWA
  • Python
  • MCP

Abfahrt

Type in a Berlin address to get the weather, a jacket-or-umbrella call, and live departure boards for the nearest stops. It's the public front end to Jarvis, my wall-mounted household display.

  • Python
  • FastAPI
  • BVG
  • Open-Meteo

Human Nutrition

What's the nutritional value of a human? A German/EU-style food label for your body, in English and German. Just for fun. Everything is calculated in your browser.

  • HTML
  • CSS
  • JavaScript

Roads: pothole map

Potholes found in dashcam footage by a custom YOLOv8 model, plotted on the route they were driven along. GPS comes from OCR of the burned-in overlay.

  • Python
  • YOLOv8
  • OCR
  • Folium

Drupal Kerala

Site and public expense report for the Drupal + Wikipedia 25th anniversary celebrations in Kerala.

  • HTML
  • Community

OpenResume

A self-hosted copy of the open-source resume builder and parser. Your resume stays in your browser.

  • Next.js
  • Self-hosted fork

Open source

Tools and apps that need your own setup or a household login. The code is all public.

Jarvis

A wall-mounted household dashboard and voice assistant for a Raspberry Pi and a cheap Android tablet. Never blanks, never lies.

  • Python
  • Raspberry Pi
  • Voice

grocy-mcp

An MCP server for Grocy, so an AI agent can read and manage a household pantry: stock, expiry dates and the shopping list. Uses OAuth 2.1, and any OIDC provider works.

  • Python
  • MCP
  • OAuth

Karyasthan

A WhatsApp bot for a shared flat. Every morning at 8 it announces whose turn it is for the kitchen and the weekly cleaning.

  • Node
  • WhatsApp
  • PostgreSQL

Qatar Airways alert monitor

Watches the Qatar Airways travel-alerts feed and sends each new alert to Telegram. Runs on GitHub Actions every few minutes.

  • Python
  • GitHub Actions
  • Telegram

Research & coursework

Computer vision and university projects.

Older work

Drupal modules, PHP libraries and early experiments.