Senior Software Engineer at @prenode in Karlsruhe, Germany — AI and IIoT for industrial manufacturing.
Outside work I build the tooling around my own training data: MCP servers that give an LLM a real knowledge base, a Garmin data field for the numbers I actually look at mid-run, and the sync glue in between. Everything self-hosted on a Raspberry Pi.
| coaching-mcp | Multi-user coaching MCP server for Claude. SQLite + FTS5 knowledge base, built-in OAuth 2.1 authorization server federating to an OIDC provider, one isolated DB per user, and a zero-JavaScript bilingual web UI. TypeScript. |
| garmin-connectiq | Run Cockpit — a full-screen Connect IQ data field: pace or power coloured by training zone, switching automatically on climbs, plus HR and a live time-in-zone chart. Monkey C. |
| hevy2garmin | Turns Hevy gym workouts into FIT files on Garmin Connect — exercise names, sets, reps, weights, HR overlay, calorie estimation. Python. |
Earlier: an ontology-based expert system for designing humanoid robot components (KIT, Java/OWL).

