AI Product Engineer, Berlin. Ich baue Produkte allein zu Ende: Architektur, Code, Auslieferung, Betrieb und Recht.
Dreizehn Systeme in Produktion, seit März 2026 neben einem Vollzeitjob entstanden, drei davon mit Apps in beiden Stores. Neunzehn Store-Einträge sind öffentlich, vierzehn bei Google Play und fünf im App Store; jede Adresse wurde am 06.09.2026 einzeln per HTTP abgerufen, nicht aus einer Konsole abgelesen. Acht iOS-Fassungen liegen bei Apple in der Prüfung, alle acht sind bei Google Play bereits live. Eines der Systeme trägt die gesetzlich vorgeschriebene Fiskalisierung nach § 146a AO, eines ist eine Desktop-App mit autonomer Agent-Schleife und Lizenzschutz, eines ein autonomer Wohnungsmarkt-Agent, eines eine Lernplattform mit Prüfung und Zertifikat.
| System | Was es ist | Wo |
|---|---|---|
| Salati | Gebets- und Koran-App über vier Geräteklassen, KI auf dem Gerät | salati.pro · App Store · Play |
| MenuCloud Berlin | Multi-Tenant-SaaS für Gastronomie mit Cloud-TSE nach § 146a AO | menucloud-berlin.de |
| MFC | Moran Fleet Control: Desktop-App (Windows, macOS, Linux) plus Web, mit Multi-LLM-Router, autonomer Agent-Schleife, verschlüsseltem Vault und Lizenzschutz. Einmalig 49,99 €, kein Abo | mfc.domenicmoran.de |
| NOURI | Ernährung und Training auf einem Katalog aus 11.892 Rezepten | nouri-fitness.de · Play |
| BitDojo | Deutschsprachige Lernplattform mit genau einer Lektionsbibliothek | bitdojo.de · Play |
| Dartile | Dart-Counter, der jeden Pfeil einzeln aufnimmt statt der Summe | dartile.de · Play |
| LexiPulse | Reader für EPUB, PDF und Web-Artikel: Wortstrom oder Fließtext, offline und offen lesbar | lexipulse.de · App Store · Play · Code |
| WohnungsJäger | Autonomer Agent für den Berliner Wohnungsmarkt, Freigabe beim Menschen | im Eigenbetrieb |
Die Fallstudien mit Architekturdiagrammen stehen auf domenicmoran.de.
Sechs Apps, gebaut im August 2026. Stand 06.09.2026, und diesmal nicht aus einer
Konsole abgelesen: Jede Play-Adresse wurde einzeln per curl abgerufen, alle
sechs antworten mit 200. Bei Apple liefert die öffentliche iTunes-Lookup-API für
dieselben Paketnamen null Treffer — die iOS-Fassungen sind also weiterhin nicht
im Laden.
| App | Was es ist | Kategorie | Stand |
|---|---|---|---|
| Vortex | Erkennt Dropshipping und zeigt, was die Ware im Original kostet; die Auswertung läuft auf dem Gerät | — | Web live · Play · iOS noch nicht im Laden |
| Aegis | Bons und Rechnungen scannen, Gewährleistungs- und Garantiefristen überwachen, EÜR vorbereiten — alles lokal | Finanzen | Web live · Play · iOS noch nicht im Laden |
| Synapse | PDF, Foto oder Text zu Lernkarten, Wiederholung im SM-2-Rhythmus, offline | Lernen | Web live · Play · iOS noch nicht im Laden |
| Vesper | Bewerbungen, Vorhaben und Kontakte auf einem Kanban-Brett, mit lokal laufendem Sprachmodell | Effizienz | Web live · Play · iOS noch nicht im Laden |
| Aether | Der Tag als durchsuchbares Gedächtnis: Notizen, Stimmung und Sprachnotizen, lokal verschlüsselt | Effizienz | Web live · Play · iOS noch nicht im Laden |
| MFC Companion | MFC-Nachrichten als Push aufs Handy, Antworten per Knopfdruck zurück | Tools | Play · iOS noch nicht im Laden |
Die Fallstudien zu diesen Apps, mit Architekturbildern, stehen auf domenicmoran.de.
Die Produktivsysteme bleiben privat, sie tragen Kundendaten und lizenzierte Inhalte. Öffentlich ist, was sich daraus herauslösen ließ. Die fünf Pakete stehen unter MIT; LexiPulse liegt vollständig offen, aber unter PolyForm Noncommercial: lesbar und prüfbar, nicht zur gewerblichen Nutzung freigegeben.
| Repository | Worum es geht |
|---|---|
| lexipulse | Der ganze Reader. Engine, Parser und Bereinigung ohne DOM und ohne React Native, 561 Tests (am 19.08.2026 gemessen). |
| darts-checkout | Die Checkout-Tafel aus Dartile. Auf 40 gibt es über achtzig richtige Wege und genau einen, den jemand wirft. 25 Tests, null Abhängigkeiten. |
| verified-done | Vier Claude-Code-Skills gegen die Behauptung ohne Beleg. Jeder stammt aus einem Fehler, der ausgeliefert wurde. 16 Tests, null Abhängigkeiten. |
| cron-last-due | Wann war dieser Cron zuletzt fällig? Zeitzonenbewusst, für Watchdogs. 23 Tests, null Abhängigkeiten. |
| whisper-ggml-header | Prüft, ob whisper.cpp ein Modell überhaupt lädt. Fängt die verbreitete Fehlkonvertierung ab. 17 Tests, null Abhängigkeiten. |
| arabic-normalize | Normalisierung arabischer Schrift für den Vergleich. 23 Tests, null Abhängigkeiten. |
| portfolio | Der Quellcode von domenicmoran.de. Next.js 16, dokumentierte Entscheidungen. |
| Zertifikate | Zehn Kurszertifikate von Meta, LearnQuest und Udemy. Jedes beim Aussteller nachprüfbar. |
Sieben Fehler aus den eigenen Systemen, jeweils mit Ursache, Fix und Commit. Einen davon hatte monatelang niemand bemerkt, einen zweiten über Wochen.
- Achtzehn Wege über das Bull, und der Test sah nur den letzten Pfeil
- Der gestrichelte Kreis kam nicht aus der Schrift
- „Published“ ist kein Beleg. Meine Updates kamen nie an.
- Der Lauf war lokal grün und in der CI rot. Beide hatten recht.
- Alle Tests grün. Widget trotzdem leer auf dem echten Gerät.
- KassenSichV in der Praxis: was die Dokumentation auslässt
- Warum ein kleineres Whisper-Modell mein größeres schlug
Ich arbeite seit über einem Jahr agentengestützt. Das komprimiert Lieferzeiten, aber nur, weil um die Agenten herum ein System steht, das ihre Fehler abfängt. Die wichtigste Regel darin ist die einfachste:
„Sollte jetzt funktionieren“ ist kein Ergebnis. Jede Behauptung über den Systemzustand braucht einen Beleg: HTTP-Response, Datenbankabfrage, Screenshot vom echten Gerät, empfangene Mail, echte Cron-Ausführung.
Genau diese Regel ist als verified-done veröffentlicht.
| Bereich | Werkzeuge |
|---|---|
| Sprachen | TypeScript, SQL, Swift, Kotlin, Python |
| Web | Next.js, React Server Components, Tailwind, Vercel |
| Mobil | React Native, Expo, Android TV, Wear OS, App Widgets, Live Activities |
| Daten | PostgreSQL, Supabase, Row Level Security, Migrationen |
| KI | Antwortsuche auf dem Gerät über eigenem Korpus, Whisper-Spracherkennung |
| Betrieb | Docker, Hetzner, Coolify, Cloudflare, n8n, Playwright, Vitest |
Kontakt kontakt@domenicmoran.de