Wie alles anfing
Es war ein Mittwochabend, der 8. April 2026. Ich saß mit meiner Freundin auf dem Sofa. Wir starrten in das Streaming-Interface und versuchten einen Film zu finden, den wir beide schauen würden. Sie wollte Horror: Jumpscares, Blut, Angst. Irgendeinen Slasher aus den frühen Zweitausendern. Ich wollte ein Drama: Was Stilles, etwas Arthouse, am liebsten mit langen Einstellungen, in denen nicht viel passiert.
Netflix sah unsere kombinierte Watchlist und schlug uns einen generischen Action-Thriller vor. Wieder. Das war nicht das, was ich wollte. Es war auch nicht das, was sie wollte. Es war die sichere Mitte. Der mathematisch errechnete Kompromiss zweier Menschen mit individuellen Bedürfnissen. Der Durchschnitt aus uns beiden ist ‚nobody‘. Ein billiger John-Wick-Klon. Man kennt es.
Ich heiße Ken, bin Einsatzleiter im Service für Funkenspektrometer und kümmere mich hauptberuflich um Analysegeräte, die zum Teil schon liefen, bevor ich laufen lernte. Analytisches Denken: ja. Software entwickeln: noch nie. Eine Zeile Produktivcode hatte ich bis zu diesem Abend nicht geschrieben. Aber an dem Abend, vor dem Fernseher, wurde ich wohl getriggert.
Das Problem
Streaming-Algorithmen schätzen deinen Geschmack auf Basis deiner Watchlist. Aber Watchlisten sind kontaminierte Datenquellen. Was du irgendwann angeschaltet hast, hängt davon ab, was gerade verfügbar war, was dein Partner sehen wollte, was bald aus dem Katalog fliegt, in welcher Stimmung du an einem zufälligen Dienstagabend warst… Das Signal ist Rauschen. Bei einem Einzelprofil schon schlecht, bei einem geteilten Profil mathematisch kaputt. Und alle tun so, als wäre das in Ordnung.
Ich wollte das Gegenteil bauen. Eine App, die deinen Geschmack nicht aus deiner Historie errät, sondern direkt von dir erfragt. 24 psychologische Szenario-Fragen statt tausender Watchlist-Datenpunkte. Direkter. Ehrlicher. Mathematisch sauberer.
Den Namen hatte ich schneller als den Plan. PAVL: Gleichzeitig eine Verbeugung vor Pawlows Hund (Reizen Reaktionen zuordnen. Das ist der Kern der ganzen App) und eine Hintertür für ein größenwahnsinniges Wortspiel: Psychologische Analyse Visueller Latenzen. Das klingt wie etwas, das ein deutscher Wissenschaftler 1973 in einem Kellerlabor erfunden hat. Genau das war die Wirkung, die ich wollte.
Bevor ich eine Zeile Code geschrieben hatte, hatte ich das Logo. Schwarzer Hintergrund, Filmstreifen-Rahmen, der Schriftzug PAVL in GloockEine Display-Serifenschrift mit hohem Kontrast und kräftigen Strichen. Wird oft für Filmplakate, Buchcover und Editorials eingesetzt, wenn ein dramatisch-literarischer Look gewünscht ist.: Einer dieser Serifen-Schriften, mit denen A24Amerikanisches Filmstudio, bekannt für stilbewusste Indie- und Arthouse-Filme („Hereditary“, „Everything Everywhere All at Once“). Hat einen visuellen Hausstil etabliert, der sich vor allem durch reduzierte Plakate mit eleganter Serifen-Typografie auszeichnet. seit Jahren ihre Filmplakate ziert. Akzentfarbe Lila, weil ich keine Lust auf das tausendste Tech-Blau hatte. Ich wusste was ich baute, weil ich wusste wie es aussehen sollte.
Tag 1 bis 7: Vom Whiteboard zur ersten Frage
In den ersten Tagen hatte ich keinen Code. Ich hatte ein Whiteboard, einen NotebookLMKI-Tool von Google, das aus eigenen Dokumenten (PDFs, Notizen, Webseiten) ein durchsuchbares, befragbares Wissens-Workspace baut. Wird für Recherche und Ideenstrukturierung benutzt.-Workspace und drei Tools, die zu meinen wichtigsten Sparringpartnern werden sollten. CursorKI-gestützter Code-Editor (Fork von VS Code), der direkten Zugriff auf große Sprachmodelle wie Claude oder GPT bietet. Statt manuell zu tippen, beschreibt man Anforderungen in natürlicher Sprache; das Modell schlägt Code vor oder schreibt ihn direkt in die Dateien. als Entwicklungsumgebung, ClaudeGroßes Sprachmodell von Anthropic, eingesetzt unter anderem für Code-Generierung, Architekturberatung und Textverarbeitung. als architektonischer Validator und Scriptgenerator, GeminiGroßes Sprachmodell von Google. Wird hier per Programmierschnittstelle (API) angesprochen, um Tausende Filme automatisiert mit psychologischen Tags zu versehen – Massenverarbeitung statt einzelner Chat-Interaktionen. für die Massenverarbeitung von Daten via APIDefiniertes Eingangstor, über das ein Programm einen Dienst eines anderen Programms automatisiert nutzen kann – ohne menschliche Interaktion über eine Website..
Manche nennen das jetzt „Vibe Coding“Umgangssprachlicher (und im Text abwertend gemeinter) Begriff für Softwareentwicklung, bei der man primär per natürlicher Sprache mit einer KI arbeitet, statt selbst Code zu schreiben. Suggeriert Mühelosigkeit, was die tatsächliche analytische Arbeit verschleiert.. Das ist ein furchtbarer Begriff, der so klingt, als würde man eine Meditationsapp beschreiben, in der ein Programm mit Wassergeräuschen und Atemübungen entsteht. Was tatsächlich passiert, ist ein analytischer Übersetzungsprozess: Du beschreibst was du willst, und zwar präzise, das System schreibt den Code, du liest, verstehst, korrigierst, fragst nach, weist auf Logikfehler hin, verlangst eine Umstrukturierung… Du musst die Architektur in deinem Kopf haben, auch wenn du nicht jede Zeile selbst schreibst. Du musst Fehler erkennen können. Du musst wissen, wann eine Antwort halluziniert ist und wann sie passt.
Was ich brauchte, war ein psychologisches Profil-System. Zehn Dimensionen, die einen Menschen filmisch beschreiben. Wie viel kognitiven Anspruch verträgst du, willst du gefordert oder unterhalten werden? Wie sensibel ist dein Reizsystem gegenüber lauten, schnellen, aggressiven Bildern? Wie viel emotionale Exposition lässt du zu, willst du mitfühlen oder Distanz wahren? Bist du Eskapist oder willst du mit maximaler Realität konfrontiert werden? Wie streng ist dein ästhetischer Anspruch, muss es ein Kunstwerk sein oder reicht nackte Spannung? Wie viel Dunkelheit verträgst du, wo ist deine Schmerzgrenze? Dazu Humor-Affinität, Empathie-Anker, Erwartungs-Verschiebung, soziale Modulierung… Jede Dimension auf einer Skala von null bis hundert. Daraus entsteht ein zehndimensionaler VektorEin mathematisches Objekt, das hier eine Person über zehn Zahlenwerte beschreibt (je einer pro psychologischer Dimension). Vorstellbar als Koordinaten in einem zehndimensionalen Raum – jeder Mensch ist ein Punkt darin.: Eine Art psychologischer Fingerabdruck, der beschreibt, wer du als Zuschauer bist.
Die 24 Fragen mussten so geschrieben sein, dass jede Antwort klare, mathematisch saubere Verschiebungen auf diesen zehn Achsen erzeugt. Das war keine Marketing-Arbeit, das war Kalibrierung. Ich habe Tage damit verbracht, einzelne Antworten umzuformulieren, weil sie zu viele Dimensionen gleichzeitig getroffen hätten. Oder zu wenig.
Eine Frage zum Beispiel: „Ein Kind stirbt am Anfang. Langsam. Die Kamera zwingt dich hinzusehen.“
Antwort A — „Ich schließe die App.“ — senkt deine Dunkelheits-Toleranz und deine emotionale Exposition. Antwort C — „Ich bleibe ruhig und schaue, warum die Szene so gebaut ist.“ — hebt deinen kognitiven Anspruch und senkt deine emotionale Exposition. Beide Antworten sind valide. Sie beschreiben einfach unterschiedliche Menschen. Genau das ist der Punkt.
Tag 8 bis 14: Das System lernt
Mit den Fragen allein hast du eine Schätzung. Aber Menschen lügen, auch gegenüber sich selbst. Ich habe mein erstes Ergebnis im eigenen Test gesehen und gedacht: hm, eigentlich bin ich doch witziger als das System sagt. Und dann habe ich erkannt, dass mein „eigentlich“ auch eine Lüge sein könnte. Das System brauchte einen Mechanismus, der Selbsteinschätzung und tatsächliches Verhalten gegeneinander prüft.
Genau dafür gibt es das Deck. Nach den Fragen bekommst du Filme als swipebare Karten. Rechts wenn du willst, links wenn nicht. Jeder Swipe verschiebt deinen Vektor. Wenn du Filme magst, die intensiver, lustiger oder dunkler sind, als die Fragen vermutet hatten, passt sich dein Profil an. Dein Archetyp kann sich verändern.
Die Mathematik dahinter ist eine adaptive Lernrate, die mit der Zeit abnimmt. Frühe Swipes bewegen dich stark: Du bist neu, das System weiß wenig über dich, jeder Datenpunkt ist Gold wert. Spätere Swipes bewegen dich kaum noch, dein Vektor stabilisiert sich. Genau wie ein Mensch in seinem Geschmack reift. Es gibt eine harte Obergrenze pro Update, damit ein einzelner verrückter Swipe nicht dein ganzes Profil zerstört. Negative Bewertungen wiegen leicht stärker als positive, weil Menschen mit dem, was sie ablehnen, ehrlicher und direkter sind als mit dem, was sie sich wünschen.
Tag 15 bis 18: Die Architektur
Warnung: Hier wird's technisch. Vektoren, Lernraten, ein bisschen Mathematik. Wer damit nichts anfangen kann, springt einfach zum nächsten Abschnitt – ich bin nicht beleidigt, und die Geschichte überlebt es auch.
Das Frontend ist eine React NativeFramework, mit dem man mobile Apps für Android und iOS aus einer einzigen Codebasis baut, statt zwei separate Apps in zwei Programmiersprachen zu pflegen.-App, mit ExpoTooling-Schicht oberhalb von React Native, die Entwicklung, Build-Prozess und Veröffentlichung mobiler Apps massiv vereinfacht. Erspart einem viel Konfigurations-Schmerz. gebaut, weil ich von Anfang an wusste, dass ich Android und iOS aus einer einzigen Codebase bedienen will. Ein zweites paralleles Projekt für iOS hätte mich wahrscheinlich umgebracht.
Das Backend läuft komplett serverlosArchitektur-Modell, bei dem man keine eigenen Server betreibt oder verwaltet. Code läuft in einer Cloud-Umgebung, die automatisch skaliert und nur dann Ressourcen verbraucht, wenn tatsächlich Anfragen reinkommen. auf CloudflareAnbieter für Internet-Infrastruktur. Stellt unter anderem ein global verteiltes Netzwerk aus Rechenzentren bereit, auf dem man Anwendungen so betreiben kann, dass sie immer geographisch nah am Nutzer laufen.. WorkersCloudflare Workers: JavaScript (und andere Sprachen), das direkt auf Cloudflares weltweit verteiltem Edge läuft – ideal für APIs, Routing und Hintergrundlogik ohne eigene Server. für die Berechnungen, D1Cloudflare D1: verwaltete SQL-Datenbank in derselben Edge-Umgebung wie Workers, für strukturierte App-Daten mit geringem Abstand zwischen Speicher und Logik. für die Datenbank, R2Cloudflare R2: Objektspeicher für große Dateien (Bilder, Videos, Assets), S3-kompatibel – ergänzt Workers und D1 für Medien und Rohdaten statt DB-Einträge. für die Assets. Kein AWS, keine Container, kein selbst gehosteter Server, der mich um drei Uhr morgens mit einer Push-Benachrichtigung weckt. Der gesamte Backend-Code läuft am EdgeBerechnungen finden geographisch nahe am Nutzer statt, statt in einem zentralen Rechenzentrum. Reduziert die Latenz drastisch, weil Daten nicht erst um die halbe Welt reisen müssen.. Also dort, wo der Nutzer gerade ist. Wenn ein Hamburger die App öffnet, antwortet ein Server in Hamburg. Wenn jemand in São Paulo swipet, antwortet ein Server in São Paulo. LatenzZeitspanne zwischen Anfrage und Antwort. Bei Webanwendungen alles unter 100 ms gilt als sehr schnell, alles über einer Sekunde als spürbar träge. im Millisekundenbereich, ohne dass ich eine einzige Region selbst konfigurieren musste.
Authentifizierung läuft komplett ohne Passwörter. PasskeysModerner Authentifizierungs-Standard, der Passwörter durch kryptographische Schlüsselpaare ersetzt. Der private Schlüssel bleibt auf deinem Gerät, freigegeben per Face ID oder Fingerabdruck. Phishing-resistent, weil es nichts Eintippbares mehr gibt.. Der neue Standard, den Apple, Google und Microsoft gemeinsam pushen. Du loggst dich mit Face ID oder Fingerabdruck ein, dein Gerät authentifiziert dich kryptografisch beim Server. Kein „Passwort vergessen?“, keine Verifizierungs-E-Mail im Spam-Ordner. Ich habe diese ganze Kategorie ‚Probleme‘ einfach weggelassen. Cross-Device-Login funktioniert über einen sechsstelligen Code mit zehn Minuten Gültigkeit. Genug Sicherheit und wenig Reibung.
Die größte technische Hürde war die Matching-Engine: der Algorithmus, der entscheidet, welcher Film als Nächstes in dein Deck kommt. 26.000 Filme sind in der Datenbank, jeder davon wurde durch eine automatisierte API Pipeline mit Gemini in den gleichen zehndimensionalen Raum getaggt wie die User. Bei jedem Deck-Request muss berechnet werden, welche Filme am besten zu deinem aktuellen Vektor passen.
Mein erster Versuch war eine simple Cosinus-ÄhnlichkeitMathematische Methode, um zu messen, wie ähnlich zwei Vektoren ausgerichtet sind. Standardverfahren für Empfehlungssysteme, ignoriert aber, wie weit die Werte vom Durchschnitt entfernt liegen.. Funktioniert für viele Recommender-Systeme. Bei mir ist sie auf einem Plateau hängen geblieben. Die Empfehlungen waren okay, aber nicht gut genug, dass ich ihnen vertraut hätte. Drei Tage später hatte ich das umgebaut. Die Endversion verwendet Pearson-KorrelationVerwandt mit der Cosinus-Ähnlichkeit, zieht aber vorher den Durchschnittswert ab. Erkennt dadurch nicht nur, ob zwei Profile in dieselbe Richtung zeigen, sondern ob sie überdurchschnittlich auf dieselben Dinge reagieren. Praktisch: stärkere, präzisere Übereinstimmungen. mit exponentieller SchärfungMathematischer Trick, der gute Treffer überproportional stark gewichtet und mittelmäßige nach unten drückt. Sorgt dafür, dass die Top-Empfehlungen wirklich passen, statt nur „okay“ zu sein. für die Spitzenmatches. Mathematisch eleganter und praktisch besser. Die Latenz für eine vollständige Sortierung von 26.000 Filmen liegt aktuell bei 700 bis 1400 Millisekunden. Das ist schnell genug für jetzt, weil du sowieso 25 Karten pro Session bekommst und nicht jeden einzelnen Film in Echtzeit anfordern musst.
Tag 19 bis 21: Der Pair-Modus
Erinnerst du dich an den Anfang? Meine Freundin und ich – das Netflix-Problem? Sie will Köpfe rollen sehen, ich will Andrei TarkovskyRussischer Filmregisseur (1932–1986), Inbegriff des kontemplativen Arthouse-Kinos. Bekannt für extrem lange Einstellungen, spirituelle Themen und meditatives Tempo („Stalker“, „Solaris“, „Andrei Rublev“). Steht hier als Code für „anstrengendes, langsames Kino“..
Der Pair-Modus war nie nur ein Feature, er war der Ursprung. Zwei Menschen mit komplett gegensätzlichen Profilen, die zusammen einen Film schauen wollen, ohne dass einer von beiden Kompromisse macht, die für niemanden so richtig funktionieren. Die App muss verstehen, dass der Schnittpunkt zweier Geschmäcker nicht der Mittelwert ist, sondern der seltene Bereich, wo beide Profile dasselbe wollen, aus unterschiedlichen Gründen.
So funktioniert es: Du verbindest dich mit jemandem aus deiner Freundesliste. Beide swipen unabhängig voneinander durch dasselbe Deck. Das System berechnet im Hintergrund den mathematischen Schnittpunkt eurer beiden Vektoren, gewichtet danach, in welchen Dimensionen ihr ähnlich seid (verstärken) und in welchen ihr stark abweicht (abdämpfen). Das Match-Signal feuert nur, wenn ihr beide rechts geswipt habt. Keine Echtzeit-Synchronisation, keine Notwendigkeit, gleichzeitig online zu sein. Du swipest morgens auf der Arbeit, sie abends auf dem Sofa. Wenn ein Film bei beiden grün ist, landet er automatisch in eurer gemeinsamen Watchlist.
Es gibt 36 Paar-Archetypen, sortiert in vier Achsen: Harmonie, Komplementarität, Spannung, Extrem. Wenn ihr beide hochgradig kognitiv anspruchsvoll und gleichzeitig dunkelheitsverträglich seid, seid ihr „Das autistische Syndikat“. Wenn einer von euch alle Konventionen bricht und der andere sich nach Ordnung sehnt, seid ihr „Sturm gegen Stille“. Wenn einer Tarkovsky liebt und die andere „The Texas Chainsaw Massacre“US-Horrorfilm von 1974, Meilenstein des Slasher-Genres. Steht hier als Gegenpol zu Tarkovsky: kompromisslose Brutalität statt Kontemplation. auswendig kann, dann seid ihr genau die Art von Paar, für die der Pair-Modus überhaupt erst gebaut wurde. Das System ist nicht therapeutisch. Es ist beobachtend. Manchmal zärtlich. Meistens entlarvend.
Tag 22 bis 24: Beta
Am 2. Mai 2026, 24 Tage nachdem ich die Idee zum ersten Mal aufgeschrieben hatte, habe ich PAVL in die Closed BetaTestphase einer Software, die nur einer eingeschränkten Gruppe zugänglich ist. Dient dazu, Bugs zu finden und Feedback einzuholen, bevor das Produkt öffentlich verfügbar wird. geschickt. Über 60 Tester haben sich in den ersten 48 Stunden registriert. Die ersten Bug-Reports kamen innerhalb von Stunden. Manche Probleme habe ich noch in der gleichen Nacht gefixt.
Ich saß auf meinem Sofa, mit Dr Pepper in der Hand, und habe den Datenstrom der echten User beobachtet. Ihre Ergebnisse, ihre Swipes, wie sich ihre Vektoren in Echtzeit verschieben. Es war das eigenartigste Gefühl, das ich seit langer Zeit hatte. Ich hatte ein System gebaut. Es lief. Andere Menschen benutzten es. Und es funktionierte.
24 Tage zuvor wusste ich nicht, was ein D1-IndexEine spezielle Datenstruktur innerhalb der D1-Datenbank, die das Auffinden bestimmter Datensätze beschleunigt. Ohne Indizes muss die Datenbank jede Zeile einzeln durchsuchen – mit Index findet sie das Gesuchte in wenigen Schritten. ist.
Was ich gelernt habe
KI ersetzt keinen Entwickler. Aber sie ersetzt die Eintrittshürde. Ich kann immer noch nicht spontan einen Sortier-Algorithmus aus dem Gedächtnis schreiben. Wenn du mir Whiteboard und Stift gibst und sagst „implementiere mir einen B-TreeSelbstbalancierende Datenstruktur, die in Datenbanken verwendet wird, um große Mengen sortierter Daten effizient durchsuchbar zu halten. Klassische Frage in Programmier-Bewerbungsgesprächen – im Text Symbol für „echtes“ Coding-Wissen.“, keine Chance. Aber ich kann ein System architektonisch durchdenken, ich kann Anforderungen klar formulieren, ich kann Code lesen und verstehen, wenn er vor mir liegt, und ich kann erkennen, wenn etwas falsch ist, auch wenn ich es selbst nicht von Null hätte schreiben können. Das reicht für Cursor und Claude. Was ich mitgebracht habe, war keine Coding-Erfahrung, sondern zwei Jahrzehnte Spektrometrie-Erfahrung, in denen ich gelernt habe, mit komplexen Systemen umzugehen, die scheitern, repariert werden müssen und mir nicht erklären, was sie wollen.
Wer behauptet, KI mache Programmierer überflüssig, hat noch nie versucht, ein echtes Produkt damit zu bauen. KI übersetzt vom Konzept zum Code. Aber das Konzept muss von dir kommen. Die Architektur muss klar sein. Die Entscheidungen, welche Datenbank, welche Lernrate, welche Authentifizierung, welcher Trade-off bei Latenz versus Speicher… die musst du treffen. Cursor weiß nicht, ob deine App eine Cloudflare- oder eine AWS-App ist. Cursor weiß nicht, dass dein Algorithmus auf Pearson statt Cosinus laufen muss. Das wusste ich, weil ich darüber nachgedacht habe.
Direktheit zählt mehr als Höflichkeit. Ich habe Claude und Cursor nie gefragt, ob sie nett sein und mir helfen könnten. Ich habe Probleme klar formuliert, Bugs konkret beschrieben und Anforderungen direkt auf den Tisch gelegt. Wer mit KI arbeitet wie mit einem Kollegen, der zu höflich angefasst werden muss, verliert Stunden in unnötigem Klarstellen.
Und du brauchst eine Vision, kein Geschäftsmodell. Ich habe nicht angefangen mit „wie verdiene ich damit Geld“, ich habe angefangen mit „warum ist Netflix so verdammt dumm“. Das Geschäftsmodell kommt später. Eine Vision, die du klar artikulieren kannst, ist der erste Brennstoff. Alles andere ist Optimierung.
Was als Nächstes kommt
PAVL ist in der Closed Beta. Android-only, vorerst. iOS folgt. Die Erweiterung auf Serien ist geplant. Der Algorithmus wird weiter geschärft. Premium-Features sind in Entwicklung. Die App selbst bleibt kostenlos für die Kernfunktionalität!
Wenn du das hier liest und denkst „das könnte ich auch versuchen“, versuchs nicht nur. Machs einfach! Du brauchst keine Coding-Bootcamps. Du brauchst eine Idee, die dich nachts wachhält. Ein Problem, das dich genug nervt. Und die Bereitschaft, ein paar Wochen lang in einem Sumpf zu waten, ohne genau zu wissen, ob du jemals wieder rauskommst.
Ich habe es gemacht. Ich kann immer noch keinen B-Tree aus dem Kopf schreiben. Aber ich habe eine App.
PAVL ist in der Open Beta. Wenn du sie testen willst, hol dir die App bei Google Play. Wenn du nur das Quiz ausprobieren willst, ohne die App zu installieren, läuft eine Demo unter pavl.app/demo.
Wir sehen, was du siehst.
— Ken