Benjamin Probst Software-Entwickler

Ich entwickle
Software.

Schwierige Probleme mag ich, auch wenn sie mich erst frustrieren.
Sie zu lösen macht Freude. Wichtig ist mir, hinter dem zu stehen, was ich baue.

Meine Arbeit ansehen
Suche, Admin-Oberflächen, Legacy-Migration, eigene Projekte.
01 /

Einblicke in meine Arbeit

Aus der Praxis

Welche Variante
kommt zuerst?

Ein Produkt hat viele Varianten. In der Suche soll es trotzdem nur einmal erscheinen, mit der Variante, die zuerst gezeigt werden soll.

Welche Variante das ist, bestimmt ein Regelwerk. Dafür habe ich ein eigenes Solr-Plugin entwickelt, das direkt in Solr läuft.

  • Apache Solr
  • Java
  • Ranking
  • Grouping
Das Problem dahinter

Jede Variante ist in Solr ein eigenes Dokument mit eigenem Score. Welche davon angezeigt wird, entscheidet ein Regelwerk, in dem der Score nur ein Kriterium ist. Solr-Grouping und Sortierung reichten dafür nicht aus. Das Plugin setzt das Regelwerk um. Weil das Plugin direkt in Solr läuft, entfallen zusätzliche Anfragen an Solr, was die Performance verbessert.

So wählt die Suche eine Variante.
Rucksack in OlivSandTerrakotta
Ein Produkt, drei Varianten
Angezeigte Variante
Ein TrefferRucksack · OlivSandTerrakotta
Aus der Praxis

Ein Admin-UI für
CMS und Shop.

CMS-Inhalte und Shop-Daten sollten nicht in mehreren, unterschiedlich gestalteten Admin-Oberflächen gepflegt werden müssen. Gewollt war ein einziger Ort für beides, ohne dass Benutzer merken, woher die Daten kommen.

Dafür entstand mit Payload CMS ein einheitliches Admin-UI. Im Kern steckt ein eigener Datenbank-Adapter, der die Daten je nach Art per REST oder über den Payload-DB-Adapter holt. Verwaltet wird alles mit den Mitteln von Payload.

  • Payload CMS
  • Datenbank-Adapter
  • REST
Das Problem dahinter

Getrennte Admin-Oberflächen sehen unterschiedlich aus. Dazu braucht es eine komplexe Authentifizierung oder mehrere Logins. Das einheitliche Admin-UI sieht überall gleich aus und braucht nur einen Zugang.

Aus der Praxis

Eine Legacy-Seite
Stück für Stück ersetzen.

Eine ganze Legacy-Seite zu ersetzen ist schwierig, weil Elemente wie Header und Footer auf vielen Seiten vorkommen. Also werden einzelne Elemente nach und nach ersetzt.

Dafür wurde React mit Server-Side Rendering über Astro in die Velocity-Templates integriert. Reines React ohne SSR wäre im E-Commerce nicht optimal gewesen.

  • React
  • Astro
  • SSR
  • Velocity
  • Java
  • JSON
Das Problem dahinter

Eine eigene Velocity-Direktive, der Parser, ruft Astro aus Velocity per HTTP auf. Sie wandelt den Velocity-Context in JSON um und die Antwort von Astro in HTML. Dabei ändert sie teilweise Pfade, entfernt Teile und fügt neue hinzu. Ein Proxy in der Java-Anwendung zwischen Astro und Browser routet nur die Assets. Dazu kamen Konflikte mit dem CSS der Legacy-Seite, etwa durch globale Styles, die gelöst werden mussten.

Eigenes Projekt

Echory

Interaktive Geschichten mit KI. Man erstellt eine Figur, trifft Entscheidungen und formt so sein eigenes Abenteuer, von Fantasy über Krimi bis Science-Fiction.

Entstanden ist Echory aus Unzufriedenheit mit ähnlichen Diensten, bei Preis und bei Funktionen. Selbst entwickelt und selbst betrieben.

Das Backend ist ein modularer Monolith: Story-Ablauf, Katalog, Credits, Identität und KI-Anbindung sind getrennte Module. Die KI-Anbindung läuft über ein Gateway, das mehrere Anbieter nutzen kann. Die Inhalte pflege ich über ein eigenes CMS.

  • Java 25
  • Spring Boot
  • PostgreSQL
  • React
  • Next.js
  • Payload CMS
  • Stripe
  • Docker

KI-Anbieter

  • DeepSeek
  • Claude
  • ChatGPT
  • Mistral
Echory ansehen
02 /

Über mich

Hallo, ich bin

Benjamin
Probst.

Angefangen hat es mit PHP: Schon vor meiner Lehre habe ich eigene Webseiten gebastelt. Bei Coop habe ich danach Online-Shops und Lösungen für den internen Gebrauch entwickelt, heute arbeite ich an der Modernisierung eines E-Commerce-Frameworks.

Zum Ausgleich bin ich mit dem Velo unterwegs, in der Natur und an der frischen Luft, und trainiere mit Freeletics. Aus Spass und um dazuzulernen baue ich privat eigene Projekte, zum Beispiel Echory.

03 /

Wo ich gearbeitet habe