Software Studio · Vienna
Software-Studio · Wien
Software with purpose. And beauty.
Software mit Sinn und Nutzen. Und schön.
- Web- & Mobile-AppsWeb & mobile apps
- Datengetriebene ProdukteData-driven products
- KI, die nützlich istAI that's actually useful
- Gestaltung, die man merktDesign you notice
Sechs Produkte, alle live.
Six products, all live.
Alle live, alle allein gebaut, alle in Tagen statt Quartalen. Was als Nächstes kommt, steht daneben — nachprüfbar.
All live, all built solo, all in days rather than quarters. What comes next is listed alongside — verifiable.
alle liveall live Gebaut, nicht geredet.Built, not talked about.
kennzahlen direkt aus git, täglich aktualisiert.figures straight from git, updated daily.
None of these started as a plan. They started because I needed them.
Keines dieser Projekte war geplant. Sie sind entstanden, weil ich sie gebraucht habe.
I wanted to know what finish time I could realistically aim for on race day, so I built Run with Alva. And I was tired of calling around to find out which tennis court was free, so I built the MTV Hernals app to just book one and see what's open. Both began as my own small annoyance, and then I started building — talking through the idea, trying things, watching it actually come together on screen. What got me hooked was the pace: ten or fifteen features in an afternoon, fixing bugs, tweaking the branding and cleaning up the UI as I went. But the best part was learning a whole new area step by step, figuring out how it really works while I built it.
Ich wollte wissen, welche Zielzeit am Renntag realistisch ist — also habe ich Run with Alva gebaut. Und ich hatte es satt, herumzutelefonieren, um herauszufinden, welcher Tennisplatz frei ist — also habe ich die MTV-Hernals-App gebaut, um einfach einen Platz zu buchen und zu sehen, was offen ist. Beides begann als eigene kleine Frustration, und dann habe ich angefangen zu bauen: die Idee durchsprechen, Dinge ausprobieren, zusehen, wie am Bildschirm wirklich etwas entsteht. Was mich gepackt hat, war das Tempo: zehn oder fünfzehn Features an einem Nachmittag, Bugs beheben, am Branding feilen und nebenbei das UI aufräumen. Am schönsten war aber, ein völlig neues Gebiet Schritt für Schritt zu lernen und beim Bauen zu verstehen, wie es wirklich funktioniert.
But the tools are not the point. The point is staying close to the real problem you set out to solve — not losing your time hunting for the ten killer prompts that will supposedly change everything. The fastest way to learn is to build. So I build. Digital products in days, not quarters. That's the whole idea behind staying curious: stop reading about it, and start.
Aber die Tools sind nicht der Punkt. Der Punkt ist, nah am eigentlichen Problem zu bleiben, das man lösen will — und nicht seine Zeit damit zu verlieren, nach den zehn Killer-Prompts zu suchen, die angeblich alles verändern. Der schnellste Weg zu lernen ist zu bauen. Also baue ich. Digitale Produkte in Tagen, nicht Quartalen. Genau darum geht es bei stay curious: nicht länger darüber lesen, sondern anfangen.
Run with Alva — Race Prognosis & Training Planning
Run with Alva — Wettkampfprognose & Trainingsplanung
A personal running-analytics web app that turns scattered training data into a clear answer to one question: can I actually hit my race goal? A full training history flows in automatically via Strava — every run with its splits, heart rate and temperature — alongside real race results and daily readiness values, feeding a VDOT-based prediction engine that projects finish times for 5K, 10K, and half-marathon — and shows the gap to your target. A race-day correction adjusts the forecast for the weather and terrain you'll actually run in, and the result sits next to Garmin's estimate — as a deviation, not a verdict, because only real races settle which was closer. Designed, developed, and deployed end-to-end as a solo project.
Eine persönliche Lauf-Analytics-Web-App, die verstreute Trainingsdaten in eine klare Antwort auf eine Frage verwandelt: Kann ich mein Wettkampfziel tatsächlich erreichen? Die komplette Trainingshistorie fließt automatisch über Strava ein — jeder Lauf mit Splits, Puls und Temperatur — dazu echte Wettkampfergebnisse und tägliche Readiness-Werte, in eine VDOT-basierte Prognose-Engine, die Zielzeiten für 5 km, 10 km und Halbmarathon hochrechnet und die Lücke zum Ziel sichtbar macht. Eine Renntag-Korrektur passt die Prognose an Wetter und Streckenprofil an, die dich tatsächlich erwarten, und das Ergebnis steht neben der Schätzung von Garmin — als Abweichung, nicht als Wertung, denn welche näher lag, zeigen erst echte Rennen. Von Anfang bis Ende selbst konzipiert, entwickelt und deployt.
Why I built this
Warum ich das gebaut habe
Run with Alva is really just everything I love about running in one place — tracking, chasing goals, the insights, building a plan, working backwards from a race date, running it, and then starting over. Every race becomes the starting point for the next one. Funnily enough, that's also how I build: try something, test it, do it again. For me the app sits on two things I genuinely enjoy: taking my own training seriously, with a clean and simple design, and getting AI to be useful rather than chatty — Alva answers questions about my training, but only from data that's actually there, and says so when it isn't. Honestly, the app itself is only half of it. The part I keep coming back for is the process — getting completely absorbed in it, head down, solving something that actually matters to me. That's why I want to keep building. A domain, a mail service, an app, whatever it is, it's never far from being real.
Run with Alva ist eigentlich nur alles, was ich am Laufen liebe, an einem Ort — tracken, Ziele verfolgen, die Insights, einen Plan bauen, vom Renndatum rückwärts rechnen, das Rennen laufen und dann wieder von vorn. Jedes Rennen wird zum Startpunkt für das nächste. Komischerweise baue ich genauso: etwas ausprobieren, testen, nochmal machen. Für mich steht die App auf zwei Dingen, die mir wirklich Spaß machen: mein eigenes Training ernst zu nehmen, mit einem klaren, schlichten Design, und KI dazu zu bringen, nützlich statt geschwätzig zu sein — Alva beantwortet Fragen zu meinem Training, aber nur aus Daten, die wirklich da sind, und sagt es, wenn sie fehlen. Ehrlich gesagt ist die App selbst nur die halbe Sache. Worauf ich immer wieder zurückkomme, ist der Prozess — völlig darin zu versinken, den Kopf unten, und etwas zu lösen, das mir wirklich wichtig ist. Deshalb will ich weiterbauen. Eine Domain, ein Mail-Service, eine App, was auch immer — Es ist nie weit davon entfernt, real zu werden.
Features
Funktionen
- 02VDOT prediction engine — three-pillar model from races, threshold pace and VO₂max, time-weighted and converted to one common VDOT scale
- 02VDOT-Prognose-Engine — Drei-Säulen-Modell aus Rennen, Schwellen-Pace und VO₂max, zeitgewichtet und in eine gemeinsame VDOT-Skala umgerechnet
- 03Forecast comparison — Garmin and Run with Alva side by side per distance, shown as a deviation, not a verdict: only real races settle who was closer
- 03Prognosevergleich — Garmin und Run with Alva je Distanz nebeneinander, als Abweichung ausgewiesen, nicht als Wertung: welche Schätzung näher lag, zeigen erst echte Rennen
- 04Race-day correction — live weather and terrain adjust the forecast for the conditions you'll actually run in
- 04Renntag-Korrektur — aktuelles Wetter und Streckenprofil passen die Prognose an die realen Bedingungen an
- ·Condition-adjusted form — one race, two VDOT values: raw, and adjusted for heat and elevation, so a hot race doesn't read as a loss of form. The chart plots both.
- ·Bedingungsbereinigte Form — ein Rennen, zwei VDOT-Werte: roh und um Hitze und Höhenmeter bereinigt, damit ein Hitzerennen nicht als Formeinbruch erscheint. Der Chart zeigt beide Verläufe.
- ·Readiness score (0–100) from Garmin readiness, sleep and stress — recalculated on every visit
- ·Readiness-Score (0–100) aus Garmin-Bereitschaft, Schlaf und Stress — bei jedem Aufruf neu berechnet
15 weitere Funktionen15 more features
- ·Plausibility check — values outside VDOT 20–85 drop out of the forecast. If the estimates contradict each other and no race settles it, Alva shows no forecast rather than inventing one
- ·Plausibilitätsprüfung — Werte außerhalb VDOT 20–85 fallen aus der Prognose. Widersprechen sich die Schätzwerte ohne gelaufenes Rennen, zeigt Alva keine Prognose, statt eine zu erfinden
- ·Blood markers as health context only — ferritin, haemoglobin and more tracked over time, deliberately kept out of the forecast: no single lab value proves fitness, and the app says so
- ·Blutwerte als reiner Gesundheits-Kontext — Ferritin, Hämoglobin und mehr im Verlauf, bewusst außerhalb der Prognose: kein einzelner Laborwert beweist Fitness, und die App sagt das auch
- ·Base data with honest caveats — weight, VO₂max, threshold pace and BMI in trend, each with a note on what it does and doesn't say (BMI can't tell muscle from fat)
- ·Grunddaten mit ehrlicher Einordnung — Gewicht, VO₂max, Schwellen-Pace und BMI im Verlauf, jeweils mit Hinweis, was der Wert aussagt und was nicht (BMI unterscheidet nicht Muskel und Fett)
- ·Race lifecycle — every upcoming race shows the forecast and the gap to target; once the result is in, the goal moves to the archive without double entry, across 18 years of results. The forecast for a race is computed only from data before race day. A race can't predict itself.
- ·Wettkampf-Lebenszyklus — jedes kommende Rennen zeigt Prognose und Lücke zum Ziel; mit dem Ergebnis wandert das Ziel ohne Doppeleingabe in den Rückblick, über 18 Jahre Ergebnisse hinweg. Die Prognose für ein Rennen wird nur aus Daten vor dem Renntag gerechnet. Ein Rennen kann sich nicht selbst vorhersagen.
- ·AI-generated training plans — periodised backwards from race day into blocks and taper, with weekly volume and HR zones
- ·KI-generierte Trainingspläne — vom Renntag rückwärts periodisiert in Blöcke und Taper, mit Wochenvolumen und HF-Zonen
- ·Every plan explains itself — target pace checked against your threshold, recovery and weight read from real values, not assumptions
- ·Jeder Plan begründet sich selbst — Zielpace gegen die Schwelle geprüft, Erholung und Gewicht aus echten Werten gelesen, nicht angenommen
- ·Automatic Strava sync (OAuth) — full history, 200+ runs and 1,200+ km, each with splits, heart rate, temperature and indoor/outdoor
- ·Automatischer Strava-Sync (OAuth) — komplette Historie, 200+ Läufe und 1.200+ km, jeweils mit Splits, Puls, Temperatur und drinnen/draußen
- ·Personal bests — Strava best efforts across the full history, with a distance profile and a three-stage outlier filter: physically impossible, contradicting the same run, contradicting your own history
- ·Bestleistungen — Strava Best Efforts über die ganze Historie, mit Distanzprofil und dreistufigem Ausreißerfilter: physikalisch unmöglich, Widerspruch innerhalb eines Laufs, Widerspruch zur eigenen Historie
- ·Split analysis — threshold blocks are detected at split level, several per run if they're there. The weekly card shows kilometres per intensity, and wherever splits exist, HR efficiency comes from the easy ones only
- ·Split-Analyse — Schwellenblöcke werden auf Split-Ebene erkannt, auch mehrere pro Lauf. Die Wochenkarte zeigt die Kilometer je Intensität, die HF-Effizienz stützt sich, wo Splits vorliegen, nur auf die lockeren
- ·Training zones — threshold and easy ranges derived from your stored threshold pace, with a history of since when each value applies
- ·Trainingszonen — Schwelle und Grundlage aus der hinterlegten Schwellen-Pace abgeleitet, mit Verlauf, seit wann welcher Wert gilt
- ·Eight sports tracked alongside running — tennis, strength, cycling, swimming and more — filterable by period, distance, environment and races only
- ·Acht Sportarten neben dem Laufen — Tennis, Kraft, Radfahren, Schwimmen und mehr — filterbar nach Zeitraum, Distanz, Umgebung und nur Rennen
- ·Personalized insights across 18 categories from real data
- ·Personalisierte Insights über 18 Kategorien aus realen Daten
- ·Ask Alva — ask anything about your training in plain language; answers draw only on your stored data, and say so honestly when something's missing rather than guessing (currently a closed beta)
- ·Frag Alva — Fragen zum eigenen Training in natürlicher Sprache; die Antwort stützt sich ausschließlich auf gespeicherte Daten und sagt ehrlich, wenn etwas fehlt, statt zu schätzen (derzeit geschlossene Beta)
- ·Data on EU infrastructure (Supabase Paris, Vercel Frankfurt). AI features use the Anthropic API.
- ·Daten auf EU-Infrastruktur (Supabase Paris, Vercel Frankfurt). KI-Funktionen nutzen die Anthropic API.
- ·A dark theme with monospaced figures, because times are taken in at a glance, not read — and a light one in the original look
- ·Dunkles Theme mit Monospace-Ziffern, weil Zeiten im Blick erfasst werden, nicht gelesen — dazu ein helles im Original-Look
Methodology — 18 chapters in the app explain every formula and cite their sources. No black box.Methodik — 18 Kapitel in der App erklären jede Formel und nennen ihre Quellen. Keine Black Box.
The VDOT model
Das VDOT-Modell
the base formula every time prognosis is built on
die Basisformel, auf der jede Zeitprognose aufbaut
Three data sources
Drei Datenquellen
why race, threshold, and Garmin are computed together
warum Wettkampf, Schwelle und Garmin gemeinsam berechnet werden
Time weighting
Zeitgewichtung
why an older race counts less than a recent one
warum ein älteres Rennen weniger zählt als ein aktuelles
VDOT trend
VDOT-Trend
your personal fitness development, charted
deine persönliche Fitnessentwicklung, visualisiert
Negative split
Negative Split
how the pace table distributes your target time across kilometers
wie die Pace-Tabelle deine Zielzeit über die Kilometer verteilt
Temperature & topography
Temperatur & Topografie
how heat and elevation affect the prognosis and VDOT
wie Hitze und Höhenmeter Prognose und VDOT beeinflussen
Raw vs. adjusted VDOT
Roher vs. adjustierter VDOT
why one and the same race can yield two VDOT values
warum ein und dasselbe Rennen zwei VDOT-Werte ergeben kann
Race weighting
Wettkampf-Gewichtung
what percentage each race contributes to the prognosis, and why
welcher Prozentsatz jedes Rennen zur Prognose beiträgt, und warum
Forecast comparison
Prognosevergleich
what Garmin and Run with Alva each estimate — and why the gap is not a verdict
was Garmin und Run with Alva jeweils schätzen — und warum die Lücke keine Wertung ist
Age correction
Alterskorrektur
when and why the model factors in your age
wann und warum das Modell dein Alter einrechnet
Training readiness
Training-Readiness
how Garmin readiness, sleep, and stress produce the readiness score
wie Garmin-Bereitschaft, Schlaf und Stress den Readiness-Score ergeben
BMI
BMI
what the value says, and what it doesn't
was der Wert aussagt, und was nicht
Race-day pacing
Renntag-Pacing
how the pace table splits the race into phases relative to your lactate threshold
wie die Pace-Tabelle das Rennen in Phasen relativ zur Laktatschwelle gliedert
Race lifecycle
Wettkampf-Lebenszyklus
how a goal becomes a result without double entry
wie aus einem Ziel ein Ergebnis wird, ohne Doppeleingabe
Dashboard overview
Dashboard-Übersicht
what the readiness card and weekly card show in detail
was die Readiness-Karte und die Wochen-Karte im Detail zeigen
Training analysis
Trainingsanalyse
why heart-rate efficiency is the main signal, not VDOT
warum die HF-Effizienz das Hauptsignal ist, nicht der VDOT
Personal bests from training
Bestleistungen aus dem Training
why every best effort from training is a lower bound
warum jede Bestzeit aus dem Training eine Untergrenze ist
Where the conditions come from
Woher die Bedingungen kommen
which source counts for temperature and elevation, and what happens when one is missing
welche Quelle für Temperatur und Höhenmeter gilt, und was passiert, wenn eine fehlt
Gebaut mitBuilt with
Frontend & Design
Frontend & Design
Backend & Data
Backend & Data
AI & Analytics
KI & Analytics
DevOps & Quality
DevOps & Quality
Domain Knowledge
Domänenwissen
Alvida — Family Life in One Place
Alvida — Familienleben an einem Ort
A calendar for the whole family, built for phone and iPad. Appointments, lists and reminders live in one place, every person has their colour, every appointment an icon. Who has what and when is visible at a glance, by day, week or month.
Alvida opens from the home screen like an app and unlocks with Face ID. Everyone has their own account, nobody shares a password. A family is founded inside the app, members join via invite link and get their role. Kids have their own view, and leaving it takes a long press.
Under the surface every family is its own tenant. Row-level security on every data table means one family never sees another's data, even if something goes wrong in the browser. Notifications go to devices rather than accounts, recurring events are stored as a rule, and the weekly digest arrives every Sunday in local time.
Ein Kalender für die ganze Familie, gebaut für Handy und iPad. Termine, Listen und Erinnerungen liegen an einem Ort, jede Person hat ihre Farbe, jeder Termin ein Zeichen. Wer wann was hat, sieht man auf einen Blick, im Tag, in der Woche oder im Monat.
Alvida startet vom Home-Bildschirm wie eine App und entsperrt mit Face ID. Jede und jeder hat ein eigenes Konto, niemand teilt ein Passwort. Eine Familie gründet man direkt in der App, weitere Mitglieder kommen per Einladungslink dazu und bekommen ihre Rolle. Für die Kinder gibt es eine eigene Ansicht, aus der man nur mit langem Drücken wieder herauskommt.
Unter der Oberfläche ist jede Familie ein eigener Mandant. Row-Level Security auf allen Datentabellen sorgt dafür, dass keine Familie je die Daten einer anderen sieht, auch wenn im Browser etwas schiefgeht. Nachrichten gehen an einzelne Geräte statt an Konten, Wiederholungen sind als Regel gespeichert, und die Wochenübersicht kommt jeden Sonntag nach Wiener Zeit.
Features
Funktionen
- ·Unlocks with Face ID, straight from the home screen. No password typing for something the whole family opens several times a day.
- ·Entsperren mit Face ID, direkt vom Home-Bildschirm. Kein Passwort-Tippen bei etwas, das die ganze Familie mehrmals am Tag öffnet.
- ·Multi-tenancy from the ground up. Every row carries a family id, enforced by RLS, not by filtering in the browser.
- ·Mandantenfähig von Grund auf. Jede Zeile trägt eine Familien-ID, durchgesetzt über RLS und nicht über einen Filter im Browser.
- 02Push per device, not per account. Numbered steps walk through setup, and a diagnosis page checks the whole chain and names the missing link. ntfy works as a second, independent channel.
- 02Push pro Gerät, nicht pro Konto. Nummerierte Schritte führen durch die Einrichtung, eine Diagnoseseite prüft die ganze Kette und sagt, welches Glied fehlt. ntfy läuft als zweiter, unabhängiger Weg.
- ·New appointments notify everyone except the person who created them. Reminders go to everyone, including the creator. Birthdays have no time of day, so they are reminded in days.
- ·Neue Termine melden sich bei allen außer bei der Person, die sie angelegt hat. Erinnerungen bekommen alle, auch sie selbst. Geburtstage haben keine Uhrzeit und werden deshalb in Tagen vorher erinnert.
- ·Photos on appointments, with a look back: exactly one year later the picture returns as “A year ago”. The photo lives only with the appointment and goes when it goes.
- ·Fotos an Terminen, mit Rückblick: Genau ein Jahr später taucht das Bild als ‚Vor einem Jahr‘ wieder auf. Das Foto liegt nur beim Termin und ist mit ihm weg.
5 weitere Funktionen5 more features
- ·Every appointment gets an icon, suggested from the title: “dentist” becomes a tooth. The icon says what it's about, the colour says who it's for.
- ·Jeder Termin bekommt ein Zeichen, vorgeschlagen aus dem Titel: ‚Zahnarzt‘ wird zum Zahn. Das Zeichen sagt, worum es geht, die Farbe, wen es betrifft.
- ·Drag appointments to another day or time. For recurring ones Alvida asks: just this once, or the whole series.
- ·Termine per Ziehen auf einen anderen Tag oder eine andere Uhrzeit verschieben. Bei Serien fragt Alvida: nur dieses Mal oder die ganze Reihe.
- ·Lists with templates for everything that starts the same way, from the weekly shop to the packing list. Only open items are saved, ticked ones belong to the last shop.
- ·Listen mit Vorlagen für alles, was immer gleich anfängt, vom Wocheneinkauf bis zur Packliste. Gespeichert werden nur die offenen Einträge, abgehakte gehören zum letzten Einkauf.
- ·Recurring events stored as a rule, not as rows, and expanded only for the visible range. A weekly series stays one record.
- ·Wiederholungen als Regel statt als einzelne Zeilen, aufgelöst nur für den sichtbaren Zeitraum. Eine wöchentliche Serie bleibt ein einziger Datensatz.
- ·Weekly digest every Sunday as a Vercel cron job, timezone-aware: “next week” means local time, not UTC.
- ·Wochenübersicht jeden Sonntag als Vercel-Cron-Job, zeitzonenbewusst: ‚nächste Woche‘ heißt Wiener Zeit, nicht UTC.
Living Art — Painting That Lives On
Living Art — Malerei, die weiterlebt
A web platform that lets analogue paintings live on digitally. You upload a photo of a picture you painted yourself, along with a title, a description and the year it was made. Claude Vision reads the painting the way a restorer would: palette, brushwork, composition, dominant colour. That analysis becomes the work's DNA, and a purpose-built painting engine uses it to produce a new state every 15 seconds, always in the style of the original. The painted picture stays visible throughout, with the digital re-creation beside it. Because every state is computed from a fixed starting point, every viewer anywhere in the world sees the same image at the same moment. The gallery is public, and there is a dedicated wall view for the TV. Designed, developed, and deployed end-to-end as a solo project.
Eine Web-Plattform, die analoge Bilder digital weiterleben lässt. Man lädt das Foto eines selbst gemalten Bildes hoch, dazu Titel, Beschreibung und Entstehungsjahr. Claude Vision liest das Bild wie ein Restaurator: Palette, Pinselduktus, Komposition, dominante Farbe. Aus dieser Analyse entsteht die DNA des Werks, und eine eigene Malmaschine erzeugt daraus alle 15 Sekunden einen neuen Zustand, immer im Stil des Originals. Das gemalte Bild bleibt dabei sichtbar, die digitale Neuschöpfung steht daneben. Weil jeder Zustand aus einem festen Startpunkt berechnet wird, sieht jeder Betrachter weltweit im selben Moment dasselbe Bild. Die Galerie ist öffentlich, für den Fernseher gibt es eine eigene Wandansicht. Von Anfang bis Ende selbst konzipiert, entwickelt und deployt.
Why I built this
Warum ich das gebaut habe
A painting is finished the moment the brush is put down. I wanted to know what happens if it isn't — if a picture keeps its own handwriting and still carries on painting. The original remains the measure: the digital version may only do what the painting itself allows. Technically, the appeal was that nothing could be left to chance: same DNA, same moment, same image, on every device.
Ein gemaltes Bild ist fertig, sobald der Pinsel weg ist. Mich hat interessiert, was passiert, wenn es das nicht ist, wenn ein Bild seine eigene Handschrift behält und trotzdem weitermalt. Das Original bleibt der Massstab, die digitale Version darf nur, was das Bild selbst vorgibt. Technisch war der Reiz, dass nichts zufällig sein darf: gleiche DNA, gleicher Moment, gleiches Bild, auf jedem Gerät.
Features
Funktionen
- 03Style analysis with Claude Vision — a painting protocol records palette, brushwork and composition; the dominant colour becomes the pigment of the work's page and tints the pulse line, the focus rings and the brushstroke under the title
- 03Stilanalyse mit Claude Vision — ein Malprotokoll erfasst Palette, Duktus und Bildaufbau; die dominante Farbe wird zum Pigment der Werkseite und färbt Taktlinie, Fokusringe und den Pinselstrich unter dem Titel
- ·Deterministic painting engine — a custom canvas renderer paints filled shapes, pressure gradients, bristle marks and dry breaks; the only source of randomness is a fixed seed, so every state can be reproduced
- ·Deterministische Malmaschine — ein eigener Canvas-Renderer malt gefüllte Formen, Druckverläufe, Borstenspuren und trockene Abrisse; einzige Zufallsquelle ist ein fester Seed, jeder Zustand ist reproduzierbar
- ·Global 15-second pulse — all works change in sync, counted from a fixed genesis on 1 September 2017; every state carries its own number
- ·Globaler 15-Sekunden-Puls — alle Werke wechseln synchron, gerechnet ab einer festen Genesis am 1. September 2017; jeder Zustand trägt eine eigene Nummer
- 02Original and re-creation side by side — the photo of the painted picture never disappears, and the living version always reads as a continuation
- 02Original und Neuschöpfung nebeneinander — das Foto des gemalten Bildes verschwindet nie, die lebende Version ist immer als Weiterführung erkennbar
- 04Wall view for the TV — a slideshow with crossfades, a dark background and Wake Lock, plus a five-layer wall label with a palette strip and the seed number
- 04Wandansicht für den Fernseher — Diaschau mit Überblendung, dunklem Hintergrund und Wake Lock, dazu ein Werkschild in fünf Ebenen mit Palettenstreifen und Seed-Nummer
10 weitere Funktionen10 more features
- ·Upload with title, description and year of creation
- ·Upload mit Titel, Beschreibung und Entstehungsjahr
- ·Sequential inventory numbers — format LA-0001
- ·Fortlaufende Inventarnummern — Format LA-0001
- ·AI variants in the style of the original — via Flux Kontext Pro on Replicate
- ·KI-Varianten im Stil des Originals — über Flux Kontext Pro auf Replicate
- ·Normalised work DNA — standardised before every read and write, so old and new works compute the same way
- ·Normalisierte Werk-DNA — wird vor jedem Lesen und Schreiben vereinheitlicht, damit alte und neue Werke gleich rechnen
- ·Calligraphic typography — Fraunces, Instrument Sans and Space Mono
- ·Kalligrafische Typografie — Fraunces, Instrument Sans und Space Mono
- ·Bilingual — German and English via custom locale routing
- ·Zweisprachig — Deutsch und Englisch über eigenes Locale-Routing
- ·TV-ready CSS — 0.5 px lines, no modern shorthands, no colour values written directly into components
- ·TV-taugliches CSS — 0,5-px-Linien, keine modernen Kurzschreibweisen, keine Farbwerte direkt in Komponenten
- ·Clean state numbers — typeset with narrow spaces
- ·Saubere Zustandsnummern — typografisch mit schmalen Leerzeichen gesetzt
- ·A gallery of all works as the home page
- ·Galerie mit allen Werken als Startseite
- ·Own domain — art.staycurious.art, with a redirect from the Vercel address
- ·Eigene Domain — art.staycurious.art mit Weiterleitung von der Vercel-Adresse
MTV Hernals — Tennis Court Booking
MTV Hernals — Tennisplatz Buchung
A full-stack court booking system built pro bono for my tennis club MTV Hernals — replacing paper lists and phone calls with a self-service web app. Members book courts, manage fixed weekly slots, and receive opt-in email reminders. An admin panel handles member management, PDF export, and booking oversight. Built from scratch in my spare time: designed, developed, and deployed end-to-end.
Ein vollständiges Platzbuchungssystem, ehrenamtlich für den MTV Hernals Tennisverein entwickelt — als Ersatz für Papierlisten und Telefonanrufe. Mitglieder buchen Plätze selbst, verwalten Fixstunden und erhalten optionale E-Mail-Erinnerungen. Ein Admin-Panel deckt Mitgliederverwaltung, PDF-Export und Buchungsübersicht ab. Von Anfang bis Ende selbst konzipiert, entwickelt und deployt.
Features
Funktionen
- 02Flexible bookings (max. 2/week, resets Monday)
- 02Flexible Buchungen (max. 2/Woche, Reset montags)
- 02Weekly fixed slots with admin override
- 02Wöchentliche Fixstunden mit Admin-Override
- ·Opt-in email notifications (confirmation, cancellation, 24h reminder)
- ·Opt-in E-Mail-Benachrichtigungen (Bestätigung, Stornierung, 24h-Erinnerung)
- ·Admin panel: member management, PDF export, full booking oversight
- ·Admin-Panel: Mitgliederverwaltung, PDF-Export, vollständige Buchungsübersicht
- ·GDPR-compliant data handling, hosted on EU infrastructure (Neon Frankfurt)
- ·DSGVO-konformes Datenschutzkonzept, Hosting auf EU-Infrastruktur (Neon Frankfurt)
- ·Moved from Supabase to Neon in September 2026 – own login, booking rules enforced in the database
- ·Im September 2026 von Supabase auf Neon umgezogen – eigenes Login, Buchungsregeln direkt in der Datenbank
MyPocket — Conversation Notes from Recordings
MyPocket — Gesprächsnotizen aus Aufnahmen
Recordings and transcripts from a Pocket voice recorder are synced into my own database and post-processed with Claude in three modes: summary, action items, and a cleanup pass that strips filler words and fixes punctuation without shortening anything. Every result is cached under a key built from the recording, the mode, a hash of the raw transcript and the prompt version — so reopening costs nothing, and a re-synced transcript invalidates the old answer instead of quietly serving it. Moved from Supabase to Neon in September 2026 — same behaviour, noticeably lower running costs.
Aufnahmen und Transkripte eines Pocket-Recorders laufen in eine eigene Datenbank und werden mit Claude in drei Modi nachbearbeitet: Zusammenfassung, Action-Items und Glätten — Füllwörter raus, Satzzeichen korrigiert, ohne zu kürzen. Jedes Ergebnis wird unter einem Schlüssel aus Aufnahme, Modus, Hash des Roh-Transkripts und Prompt-Version gecacht — erneutes Öffnen kostet nichts, und ein neu synchronisiertes Transkript macht die alte Antwort ungültig, statt sie stillschweigend weiter auszuliefern. Im September 2026 von Supabase auf Neon umgezogen — gleiche Funktion, deutlich geringere laufende Kosten.
Features
Funktionen
- ·Cleanup is not summarisation — long transcripts are cut into overlapping chunks, processed one by one and reassembled in order
- ·Glätten ist keine Kürzung — lange Transkripte werden in überlappende Abschnitte geschnitten, einzeln verarbeitet und in Originalreihenfolge zusammengefügt
- ·A result is only cached once it validates — if the word count falls short of the source, it counts as truncated and is generated again
- ·Gecacht wird erst, was die Validierung besteht — liegt die Wortzahl unter der Vorlage, gilt das Ergebnis als abgeschnitten und wird neu erzeugt
- ·Search with a score threshold — the API always returns as many hits as asked for, so without a floor “no results” would never happen
- ·Suche mit Score-Schwelle — die API liefert immer so viele Treffer wie angefragt, ohne Untergrenze gäbe es nie ein „keine Treffer“
- ·Key facts are only pulled from the text when they are actually in it — no invented figures, and no empty placeholder when there is nothing to show
- ·Eckdaten werden nur aus dem Text gezogen, wenn sie wirklich drinstehen — keine erfundenen Werte und kein leerer Platzhalter, wenn nichts da ist
- ·Both API keys stay server-side in Vercel functions and never reach the browser
- ·Beide API-Schlüssel bleiben serverseitig in Vercel-Functions und erreichen den Browser nie
Dachstein — Ski Tours, Huts, Via Ferratas
Dachstein — Skitouren, Hütten, Klettersteige
A planning site for our ski-touring weekend on the Dachstein in March 2027: three days, two nights in huts, four people. The weekend plan has times and vertical metres, seven of our own GPS tracks sit to scale on the map, and fifteen tours come with a difficulty rating, winter notes and clear “don't go if …” rules. Add huts, lifts, phone numbers, avalanche and weather sources. On Friday at six, a traffic light turns avalanche danger, lift status and visibility into one decision. Open it once on Wi-Fi the night before, and everything works without signal after that. A private project, not a commercial offer.
Eine Planungsseite für unser Skitouren-Wochenende am Dachstein im März 2027: drei Tage, zwei Hüttennächte, vier Leute. Der Wochenendplan hat Uhrzeiten und Höhenmeter, sieben eigene GPS-Tracks liegen massstabsgetreu auf der Karte, fünfzehn Touren haben Schwierigkeit, Winterhinweise und klare „Nicht gehen, wenn …“-Regeln. Dazu Hütten, Bahnen, Telefonnummern, Lawinen- und Wetterquellen. Am Freitag um sechs fasst eine Ampel Lawine, Bahn und Sicht zu einer Entscheidung zusammen. Am Vorabend einmal mit WLAN öffnen, danach funktioniert alles auch ohne Empfang. Ein privates Projekt, kein kommerzielles Angebot.
Why I built this
Warum ich das gebaut habe
Last year we only made it up the Krippenstein by luck, because the lift stops in strong wind. My binding kept popping open in deep snow, and everything we knew about huts, lifts and avalanche danger was spread across twenty open tabs. This time I wanted it all in one place, the same for all four of us, and working up on the plateau without signal. The site knows what no tour portal does: where we turned back, which descent to Hallstatt never worked for us, which hut had the better food. And it moves the decisions forward. Turnaround points get agreed on Thursday evening, not argued about on the summit slope. I built it over a few evenings. I would have done the research anyway; now something is left of it.
Letztes Jahr sind wir nur mit Glück auf den Krippenstein gekommen, weil die Bahn bei Wind steht. Die Bindung ist im Tiefschnee ständig aufgegangen, und alles, was wir über Hütten, Bahnen und Lawinenlage wussten, lag auf zwanzig offenen Tabs. Diesmal wollte ich es an einem Ort haben, für alle vier gleich, und so, dass es oben am Plateau ohne Netz noch geht. Die Seite kennt, was in keinem Tourenportal steht: wo wir umgedreht sind, welche Abfahrt nach Hallstatt bei uns nie geklappt hat, auf welcher Hütte das Essen besser war. Und sie holt die Entscheidungen nach vorn. Umkehrpunkte werden am Donnerstagabend vereinbart, nicht am Gipfelhang diskutiert. Gebaut hab ich sie an ein paar Abenden. Recherchiert hätte ich ohnehin, jetzt bleibt davon etwas übrig.
What runs underneath
Was im Hintergrund läuft
The site is built for the dead zone first. A service worker stores the page, images and tracks on the phone, and before the tour it shows whether the offline data is complete. What only concerns me stays on my phone: packing list, door check, traffic light and chat. What all four need to see lives in a Neon database (Postgres, Frankfurt): names, group gear, hut bookings. Anyone with the page can read it, only the group code lets you write. Offline, the state from the last save applies. “Ask Claude” runs through the Anthropic API and gets the page content plus your packing state, so the answers refer to our plan and not just any plan. The tracks come as KML from Google Earth, are simplified for display, and vertical metres are smoothed over 15 metres so GPS noise doesn't count as climbing.
Die Seite ist zuerst fürs Funkloch gebaut. Ein Service Worker legt Seite, Bilder und Tracks im Speicher des Handys ab, und vor der Tour zeigt sie an, ob die Offline-Daten vollständig sind. Was nur mich betrifft, bleibt auf meinem Handy: Packliste, Türcheck, Ampel und Chat. Was alle vier sehen müssen, liegt in einer Neon-Datenbank (Postgres, Frankfurt): Namen, Gruppenausrüstung, Hüttenbuchungen. Lesen kann jeder mit der Seite, schreiben nur mit dem Gruppen-Code. Offline gilt der Stand vom letzten Speichern. „Frag Claude“ läuft über die Anthropic API und bekommt den Seiteninhalt samt Packstand mit, damit die Antworten sich auf unseren Plan beziehen und nicht auf irgendeinen. Die Tracks kommen als KML aus Google Earth, werden für die Anzeige vereinfacht, und die Höhenmeter sind mit 15 Metern geglättet, damit GPS-Rauschen nicht als Anstieg zählt.
Features
Funktionen
- 02Friday-morning traffic light — check avalanche, lift, wind and visibility in order, set a colour, and the page says what that means for the day. It keeps the state until the end of the day
- 02Ampel für Freitag früh — Lawine, Bahn, Wind und Sicht der Reihe nach prüfen, Farbe setzen, und die Seite sagt, was das für den Tag heisst. Sie merkt sich den Stand bis Tagesende
- ·Offline for the tour — tap “Save for the tour” once, and plan, tours, map and phone list work without signal. The page checks for itself whether everything was stored
- ·Offline für die Tour — einmal „Für die Tour speichern“ tippen, dann laufen Plan, Touren, Karte und Telefonliste auch ohne Empfang. Die Seite prüft selbst, ob alles vollständig gespeichert ist
- ·Shared list — who carries which group gear, which hut is booked. Everyone with the page open sees the same state; only those with the group code can write
- ·Gemeinsame Liste — wer trägt welche Gruppenausrüstung, welche Hütte ist gebucht. Alle mit offener Seite sehen denselben Stand, schreiben kann nur, wer den Gruppen-Code hat
- ·Seven of our own tracks on the map — from our Google Earth project, simplified for display, with distance, vertical metres and high point per route
- ·Sieben eigene Tracks auf der Karte — aus unserem Google-Earth-Projekt, vereinfacht für die Anzeige, mit Distanz, Höhenmetern und höchstem Punkt je Route
- ·Ask Claude — knows the whole page and your own packing state, and answers questions about timing, huts or plan B
- ·Frag Claude — kennt die ganze Seite und den eigenen Packstand und beantwortet Fragen zu Zeitplan, Hütten oder Plan B
9 weitere Funktionen9 more features
- ·Tour times for normally fit people — based on 350 m of ascent per hour, 4 km/h on the flat and 1,200 m of descent per hour, plus transitions and breaks. Shown next to the official figure, which is usually pure walking time for experienced people
- ·Tourendauer für normal Trainierte — gerechnet mit 350 Hm pro Stunde bergauf, 4 km/h in der Ebene und 1.200 Hm pro Stunde Abfahrt, dazu Übergänge und Pausen. Neben der offiziellen Angabe, die meist reine Gehzeit für Geübte ist
- ·“Don't go if …” for every tour, and a table of turnaround points agreed in advance
- ·„Nicht gehen, wenn …“ bei jeder Tour, und eine Tabelle mit Umkehrpunkten, die vorher feststehen
- ·Countdown to the early lift on Friday at 7:30
- ·Countdown bis zur Frühfahrt am Freitag um 7:30
- ·Rental car calculator — car size by number of skis, total cost and cost per person
- ·Mietauto-Rechner — Autogrösse nach Anzahl Ski, Kosten gesamt und pro Person
- ·Packing list and door check, each phone on its own
- ·Packliste und Türcheck, jedes Handy für sich
- ·Shopping list with quantities per number of people
- ·Einkaufsliste mit Mengen je Personenzahl
- 03Edelgrieß variants with a schedule calculated from the departure time at the hut
- 03Edelgrieß-Varianten mit Zeitplan, der sich aus der Abmarschzeit an der Hütte rechnet
- ·Photos from last year, placed where they explain something
- ·Fotos vom letzten Jahr, an den Stellen, an denen sie etwas erklären
- ·All sources with dates, no cookies, no tracking
- ·Alle Quellen mit Stand, keine Cookies, kein Tracking
staycurious is my software studio in Vienna. I build apps that solve a real problem — mine, or yours.
staycurious ist mein Software-Studio in Wien. Ich baue Apps, die ein echtes Problem lösen — meins oder deins.
It didn't start with a business plan. It started with two annoyances. I wanted to know what finish time I could realistically aim for on race day — that became Run with Alva. I was tired of calling around to find out which tennis court was free — that became the MTV Hernals app. Both shipped, both get used. At some point this stopped being a side thing and became the work itself: staycurious.
Angefangen hat es nicht mit einem Businessplan, sondern mit zwei Ärgernissen. Ich wollte wissen, welche Zielzeit am Renntag realistisch ist — daraus wurde Run with Alva. Ich hatte es satt herumzutelefonieren, um herauszufinden, welcher Tennisplatz frei ist — daraus wurde die MTV-Hernals-App. Beides ist live, beides wird benutzt. Irgendwann war das kein Nebenbei mehr, sondern die Arbeit selbst: staycurious.
Before that: close to twenty years of product and platform work — regulated banking at Erste Bank, crypto operations at Bitpanda, enterprise software at Cisco. That background is why the studio builds the way it does. I start from the user's problem, the data model and the edge cases, not from a feature list. The difference rarely shows on the first screen. It almost always shows in the second month.
Davor: knapp zwanzig Jahre Produkt- und Plattformarbeit — reguliertes Banking bei der Erste Bank, Krypto-Operations bei Bitpanda, Enterprise-Software bei Cisco. Dieser Hintergrund ist der Grund, warum hier so gebaut wird, wie gebaut wird. Ich beginne beim Problem der Nutzer, beim Datenmodell und bei den Grenzfällen, nicht bei einer Feature-Liste. Der Unterschied zeigt sich selten am ersten Screen. Fast immer im zweiten Monat.
Werdegang ansehen →︎ See my background →︎
What decides whether something gets built: does it solve a problem someone actually has? Everything else is busywork. And if it does solve one, it may as well look good — software you open every day shapes that day. That isn't decoration, it's part of the use. So nothing gets built here that nobody uses — and nothing gets promised that the data can't carry. In Run with Alva every number traces back to a formula and a source, and where data is missing the app says so instead of guessing. Software with a point to it, in other words.
Woran sich entscheidet, ob etwas gebaut wird: Löst es ein Problem, das jemand wirklich hat? Alles andere ist Beschäftigung. Und wenn es das tut, darf es auch gut aussehen. Software, die man jeden Tag öffnet, prägt den Tag — das ist kein Beiwerk, das ist Teil des Nutzens. Deshalb entsteht hier nichts, das niemand benutzt — und nichts wird versprochen, was die Daten nicht hergeben. In Run with Alva lässt sich jede Zahl auf eine Formel und eine Quelle zurückführen, und wo Daten fehlen, sagt die App das, statt zu raten. Software mit Sinn und Nutzen, kurz gesagt.
And it goes fast. Digital products in days, not quarters — not because quality is negotiable, but because you only really understand a product once it runs. If you have an idea that feels like that: the fastest way to learn is to build it.
Und es geht schnell. Digitale Produkte in Tagen, nicht Quartalen — nicht weil Qualität verhandelbar wäre, sondern weil man ein Produkt erst versteht, wenn es läuft. Wenn du eine Idee hast, die sich so anfühlt: Der schnellste Weg zu lernen ist zu bauen.
The thread
Der rote Faden
Three things haven't changed in twenty years, and they decide how the studio works today: what I get stuck into, who I want to do it with, and when I move on.
Drei Dinge haben sich in zwanzig Jahren nicht geändert — und sie entscheiden bis heute, wie im Studio gearbeitet wird: woran ich mich festbeiße, mit wem ich das am liebsten tue, und wann ich weiterziehe.
01 ·The work
01 ·Die Arbeit
Complex domains pull me in. Read until the mechanics make sense, then build something that proves I understood them.
Komplexe Domänen ziehen mich an. Lesen, bis die Mechanik Sinn ergibt — dann etwas bauen, das beweist, dass ich sie verstanden habe.
02 ·The people
02 ·Die Menschen
Looking back, every one of my best memories at work is a relationship — meeting as equals, a good boss, mentoring someone. Not a product.
Rückblickend ist jede meiner besten Erinnerungen an die Arbeit eine Beziehung — Augenhöhe, ein guter Chef, jemanden zu begleiten. Kein Produkt.
03 ·The time
03 ·Die Zeit
I move when the novelty fades, not when things get hard. That same impatience is what makes the studio fast.
Ich wechsle, wenn die Neuheit verblasst — nicht, wenn es schwierig wird. Dieselbe Ungeduld steckt heute im Tempo des Studios.
Woran sich entscheidet, ob etwas gebaut wird.
What decides whether something gets built.
Löst es ein Problem, das jemand wirklich hat? Alles andere ist Beschäftigung.
Does it solve a problem someone actually has? Everything else is busywork.
-
Nutzen vor FunktionenUse before features
Gebaut wird, was jemand wirklich benutzt. Features, die nur eine Roadmap füllen, entstehen hier nicht.
What gets built is what someone actually uses. Features that only fill a roadmap don't happen here.
belegevidence · MTV Hernals „als Ersatz für Papierlisten und Telefonanrufe“ “replacing paper lists and phone calls” -
Nachvollziehbar statt magischTraceable, not magic
Jede Zahl hat eine Formel und eine Quelle. Fehlen Daten, sagt das Produkt es — statt zu raten.
Every number has a formula and a source. Where data is missing, the product says so instead of guessing.
belegevidence · Run with ALVA „18 Kapitel in der App erklären jede Formel und nennen ihre Quellen. Keine Black Box.“ “18 chapters in the app explain every formula and cite their sources. No black box.” -
Tage statt QuartaleDays, not quarters
Vom Gedanken zur laufenden Version in Tagen. Ein Produkt versteht man erst, wenn es läuft.
From idea to a running version in days. You only understand a product once it's live.
belegevidence · Dachstein „Gebaut hab ich sie an ein paar Abenden.“ “I built it over a few evenings.” -
Schön ist keine ZugabeBeauty isn't a bonus
Etwas, das man täglich benutzt, darf gut aussehen. Form und Funktion sind kein Tauschgeschäft.
Something you use every day is allowed to look good. Form and function aren't a trade-off.
belegevidence · Living Art „Bilder, die weitermalen.“ “Paintings that keep painting.”
Christoph Freh
Mag. (FH), MSc · WienVienna · christophfreh@gmail.com · +43 676 388 93 85 · staycurious.art
Bevor es staycurious gab.
Before staycurious.
Banking, FinTech, Enterprise Software.
Banking, fintech, enterprise software.
Zeugnisse und Referenzen auf Anfrage References and certificates on request
-
2026
seit 08/2026
since 08/2026
WienIT · Wiener Stadtwerke
Technical Product Owner, Integration Platform (Common Services)
- Product Owner der konzernweiten Integrationsplattform (webMethods/EAI) für Wien Energie, Wiener Netze, Wiener Linien und die Holding – für Energie und Netz die einzige Integrationsschicht
- Product Owner of the group-wide integration platform (webMethods/EAI) for Wien Energie, Wiener Netze, Wiener Linien and the holding – the only integration layer for energy and grid
- Datengetriebene Backlog-Bereinigung (180+ Items in 40+ Epics): Betrieb von echten Vorhaben getrennt, rund die Hälfte gestrichen
- Data-driven backlog restructuring (180+ items across 40+ epics): operations separated from real initiatives, roughly half cut
mehrmore
- Backlog, Sprint-Scope und Priorisierung für ein gemischtes Team aus 10 internen und externen Entwicklerinnen und Entwicklern – laufender Betrieb für mehrere Konzerngesellschaften neben neuer Integrationsarbeit
- Backlog, sprint scope and prioritisation for a mixed team of 10 internal and external developers, balancing operations for several group companies with new integration work
- Klare Sprint-Regeln (Commitment-Grenze inklusive Carryover, WIP-Limit pro Person) – planbare Lieferung trotz hohem Anteil ungeplanter Arbeit
- Clear sprint rules (commitment cap including carryover, WIP limit per person) to keep delivery predictable despite a high share of unplanned work
- Kapazitäts- und Wissensrisiko 2027: Mehrere externe Stellen enden gleichzeitig, deshalb strukturierter Wissenstransfer für kritische Themen wie Smart Meter und Marktkommunikation
- 2027 capacity and knowledge risk: several external positions end at once, so structured knowledge transfer for critical topics such as Smart Meter and market communication
- Entscheidungen mit Fachbereichen und Management zu Security-Härtung (NIS-2) und zur Dimensionierung von Drittverträgen vor neuen Konzern-Onboardings
- Decisions with business units and management on security hardening (NIS-2) and on sizing third-party contracts ahead of new group onboardings
-
2023
04/2023 – 05/2026
Erste Bank Österreich · George
Cluster Lead / Senior Product Manager
- Plattform-Konvergenz Retail und Business statt doppelter Entwicklung
- Converged the retail and business platforms instead of building everything twice
- Compliance by Design in gemeinsamen Plattform-Komponenten (Identität, Signatur, Consent)
- Compliance by Design in shared platform components (identity, signing, consent)
mehrmore
- Leitung eines von vier Produkt-Clustern (3 PMs): User Management, Onboarding, Security/Fraud
- Led one of four product clusters (3 PMs): user management, onboarding, security/fraud
- Demand-Governance nach strategischen Themen
- Demand governance by strategic theme
- Event-Tracking als Pflicht-Output
- Event tracking as a mandatory output
- Regulatorische Vorhaben: GID-Migration, Instant Payments, STP-Strecken
- Regulatory programmes: GID migration, Instant Payments, STP flows
- Legacy-Migrationen
- Legacy migrations
Wirkung Weniger doppelte Entwicklung, schnellere regulatorische Umsetzung, klarerer Fokus.
Impact Less duplicate development, faster regulatory delivery, clearer focus.
„Skalierbare Plattformen sind zuerst eine Frage von Kultur und Governance, nicht von Technik.“
“Scalable platforms are a question of culture and governance first, not of technology.”
-
2021
12/2021 – 03/2023
Bitpanda
Senior Product Manager, Internal Products & Operational Excellence
- BOSS aufgebaut, die zentrale Plattform für regulatorische und operative Prozesse
- Built BOSS, the central platform for regulatory and operational processes
- Ausgelegt auf zehnfaches Wachstum ohne linear mehr Aufwand
- Designed for tenfold growth without a linear increase in effort
mehrmore
- Proof of Funds und AML als orchestrierte Plattform-Fähigkeiten
- Proof of Funds and AML as orchestrated platform capabilities
- Generische API-Schicht
- A generic API layer
- 25+ Engineers in mehreren Teams
- 25+ engineers across several teams
- Migration von über 100 Features und Prozessen auf eine Plattform
- Migrated more than 100 features and processes onto one platform
Wirkung Skalierbare regulatorische Abläufe, deutlich weniger manuelle Arbeit.
Impact Scalable regulatory operations, far less manual work.
-
2019
09/2019 – 11/2021
PHACTUM Softwareentwicklung
Senior Product Owner, Prozessautomatisierung & Omnichannel
Senior Product Owner, Process Automation & Omnichannel
- Mehrjährige Automatisierungsprogramme für große deutsche Telekom-Kunden
- Multi-year automation programmes for large German telecom clients
- Scrum-Delivery von 6 auf 15+ Personen skaliert
- Scaled Scrum delivery from 6 to 15+ people
mehrmore
- BPMN als gemeinsame Modellierungssprache
- BPMN as a shared modelling language
- Verantwortung für Scope, Zusagen und Wirtschaftlichkeit
- Responsible for scope, commitments and profitability
Wirkung Schnellere Automatisierung, konsistentere Prozesse.
Impact Faster automation, more consistent processes.
-
2014
09/2014 – 09/2017
Cisco Systems Austria
Senior Product Manager / Technical Product Lead
- Self-Service Connection Store statt Projekt-Integrationen – von Monaten auf Tage
- Self-Service Connection Store instead of project integrations – from months to days
- Kernteam bei Ciscos erster Software-Übernahme (SolveDirect)
- Core team on Cisco's first software acquisition (SolveDirect)
mehrmore
- Produktstrategie für ITSM, SIAM, Analytics
- Product strategy for ITSM, SIAM, analytics
- 70/30-Steuerung neue Plattform/Legacy
- 70/30 split between new platform and legacy
- 2015 vom Sales Consultant zum Senior PM befördert
- Promoted from sales consultant to senior PM in 2015
- Aufbau der US-Tochter unterstützt
- Helped set up the US subsidiary
Wirkung Skalierbares Integrationsmodell, schnelleres Onboarding.
Impact Scalable integration model, faster onboarding.
-
2008
Frühere Stationen
Earlier roles
- 01/2019 – 09/2019 The Unbelievable Machine Company · Senior Project Manager Data & AI
- 07/2018 – 11/2018 Jumptomorrow · Project Manager Digital Transformation
- 11/2017 – 06/2018 Dimension Data Austria · Senior Service Architect
- 01/2008 – 08/2014 SolveDirect Service Management · Senior Consultant & Project Manager
Ausbildung
Education
- MSc Innovation & Technology ManagementFH Technikum Wien · 2018–2021
- Mag. (FH) Informations- und WissensmanagementFH Burgenland · 2000–2004
- Mag. (FH) Information and Knowledge ManagementFH Burgenland · 2000–2004
Zertifikate
Certifications
- Advanced Certified Scrum Product OwnerScrum Alliance, 2020 und 2025Scrum Alliance, 2020 and 2025
- OMG BPM2 Fundamentals
- PRINCE2 Foundation
- IPMA Level C
- ITIL V3
Sprachen
Languages
- DeutschMuttersprache
- GermanNative
- Englischfließend
- EnglishFluent
- SpanischGrundkenntnisse
- SpanishBasic
In Wien ist es It's in Vienna · Antwort kommt meist noch am selben TagYou'll usually hear back the same dayAntwort kommt morgen frühYou'll hear back tomorrow morning
Deine Idee. Ich baue sie.
Your idea. I’ll build it.
New domains are the reason I do this. Telco processes, crypto operations, regulated banking — every time the field was foreign to me, and every time something got built. Tell me about your problem, even if I know nothing about it yet. People deserve software that solves their problem — useful, good-looking, and simple enough that nobody has to explain it.
Neue Domänen sind der Grund, warum ich das mache. Telco-Prozesse, Krypto-Operations, reguliertes Banking — jedes Mal war das Fachgebiet fremd und am Ende stand etwas Gebautes. Erzähl mir von deinem Problem, auch wenn ich davon noch nichts weiß. Menschen verdienen Software, die ihr Problem löst — sinnvoll, schön und einfach genug, dass man sie nicht erklären muss.
No briefing template, no discovery phase. A message with what you have in mind — that's all it takes.
Kein Briefing-Formular, keine Discovery-Phase. Eine Nachricht mit dem, was du dir vorstellst — mehr brauchst du nicht.
Postkarte an Christoph
A postcard to Christoph
Name, Mail, Idee. Mehr braucht es nicht.
Name, email, idea. That's all it takes.
Danke — die Nachricht ist unterwegs.
Thank you — your message is on its way.
Ich antworte an , meist noch am selben Tag.
I'll reply to , usually the same day.