AI Product Engineer, Berlin. Ich baue Produkte allein zu Ende: Architektur, Code, Auslieferung, Betrieb und Recht.
Fünf fertige Produkte, gekennzeichnete Prototypen. Seit sieben Monaten betreibe ich unter Moran Software fünf ausgelieferte Produkte: MenuCloud, Salati, NOURI, LexiPulse und Dartile — mit echten Nutzern, Zahlungen oder Store-Einträgen. MFC und weitere Experimente sind Prototypen.
| System | Was es ist | Wo |
|---|---|---|
| MenuCloud Berlin | Multi-Tenant-SaaS für Gastronomie mit KassenSichV und Stripe Connect, Cloud-TSE nach § 146a AO | menucloud-berlin.de · App Store · Play · Discovery · Discovery Play |
| Salati | Gebets- und Koran-App für den DACH-Raum, offline-fähig, in beiden Stores; dazu Salati TV | salati.pro · App Store · Play · Salati TV · TV Play |
| NOURI | Fitness- und Ernährungsplattform mit Web-App, Mobile-App und Katalog | nouri-fitness.de · Play |
| LexiPulse | Reader für EPUB, PDF und Web-Artikel mit Wortstrom und Fließtext | lexipulse.de · App Store · Play · Code |
| Dartile | Dart-Counter, der jeden Pfeil einzeln aufnimmt | dartile.de · Play |
Store-Links geprüft am 13. November 2026: 14 öffentliche Einträge bei Google Play, fünf im App Store. Die Fallstudien mit Architekturdiagrammen stehen auf domenicmoran.de.
Experimente und frühe Systeme, klar als Prototyp gekennzeichnet.
| System | Was es ist | Wo |
|---|---|---|
| MFC | Prototyp. Moran Fleet Control: Chat, Agenten, Werkzeuge und Backlog in einer Oberfläche, lokal, ohne Abo | mfc.domenicmoran.de |
| WohnungsJäger | Prototyp. Autonomer Agent für den Berliner Wohnungsmarkt, Freigabe beim Menschen | im Eigenbetrieb |
| BitDojo | Prototyp. Deutschsprachige Lernplattform | bitdojo.de · Play |
| Vortex | Prototyp. Erkennt Dropshipping und zeigt, was die Ware im Original kostet; die Auswertung läuft auf dem Gerät | Web · Play |
| Aegis | Prototyp. Bons und Rechnungen scannen, Gewährleistungs- und Garantiefristen überwachen, EÜR vorbereiten — alles lokal | Web · Play |
| Synapse | Prototyp. PDF, Foto oder Text zu Lernkarten, Wiederholung im SM-2-Rhythmus, offline | Web · Play |
| Vesper | Prototyp. Bewerbungen, Vorhaben und Kontakte auf einem Kanban-Brett, mit lokal laufendem Sprachmodell | Web · Play |
| Aether | Prototyp. Der Tag als durchsuchbares Gedächtnis: Notizen, Stimmung und Sprachnotizen, lokal verschlüsselt | Web · Play |
| MFC Companion | Prototyp. MFC-Nachrichten als Push aufs Handy, Antworten per Knopfdruck zurück | Play · App Store |
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. |
| 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
Nebenbei: Buch „Wie ich nach 26 Jahren Frieden fand“ (BoD), autor.domenicmoran.de