Senior DevSecOps / Full-stack Engineer
Ab 75.000 EUR brutto pro Jahr bei Vollzeit
Arbeitsort: Remote, weltweit.
Vertragsgestaltung. Beschäftigungsform, vertragsschließende Gesellschaft und anwendbares Recht werden im Rahmen des Angebots vereinbart. Sie sind hier nicht festgelegt, da sie vom Standort der ausgewählten Person abhängen. Bewerbende sind selbst für ihre Arbeitsberechtigung am Wohnort verantwortlich; Einzelheiten werden ebenfalls zu diesem Zeitpunkt besprochen.
Variable Vergütung. Zusätzlich wird eine jährliche, vom Unternehmenserfolg abhängige variable Vergütung gezahlt. Sie ist vom Einstiegsgrundgehalt getrennt und nicht garantiert.
Fachbereich. Entwicklung
Die Aufgabe
Die Plattform wird derzeit als Managed Hosting betrieben. Institutionelle und staatliche Kunden in den Kernmärkten können dieses Modell zunehmend nicht nutzen: Sie wollen die Bereitstellung auf eigener Infrastruktur, unter eigenen Kontrollen und ohne nicht vereinbarte Abhängigkeiten. Dafür existiert ein technischer Entwurf, der offen benennt, was sich noch nicht paketieren lässt. Diese Rolle macht daraus eine lauffähige Bereitstellung und entwickelt parallel das Produkt weiter.
Was in den ersten 90 Tagen konkret ansteht
- Die beim Start von Edge Functions remote geladenen Module in ein Build-Artefakt mit Prüfsummen aufnehmen, damit ein Start im privaten Netzwerk keinen Zugriff auf öffentliche Registries benötigt.
- Den Referenz-Stack in Containern aufbauen: Postgres mit Erweiterungen und vollständiger Migrationshistorie, Authentifizierungsdienst, REST-Schicht, Objektspeicher, Gateway und Funktionslaufzeit. Grundlage sind Kubernetes-Basisobjekte, die auf jedem verwalteten Cluster gleich funktionieren.
- Den verbindlichen Neuinstallationspfad schriftlich festlegen: zuerst das Ausgangsschema, danach die Folgemigrationen. Den Ablauf auf einem leeren Cluster nachweisen, statt ihn nur zu beschreiben.
- Eine ehrliche Liste der noch nicht paketierbaren Bestandteile vorlegen. Der größte bekannte Punkt: Der Tagesbetrieb setzt derzeit ein Hosting-Dashboard voraus, das bei einer Kundeninstallation fehlen wird. Die ersetzenden Betriebshandbücher existieren noch nicht.
Die anschließende Verantwortung
- Infrastructure as Code und Bereitstellungsmanifeste auf Basis herstellerunabhängiger Kubernetes-Objekte, damit dieselbe Konfiguration auf dem verwalteten Cluster des Kunden läuft, unabhängig vom Betreiber.
- Der Release-Prozess: Artefakte außerhalb der Kundenumgebung bauen, signieren und mit Hashwerten und Software-Stückliste veröffentlichen sowie beim Import prüfen. Das Sicherheitsteam des Kunden genehmigt jedes Update. Der technische Ablauf muss diese Aussage tatsächlich erzwingen.
- Ausgehende Verbindungen standardmäßig sperren und das exakte Datenformat jedes erlaubten Datenflusses dokumentieren. So kann das Netzwerkteam des Kunden den Kanal selbst prüfen.
- Die Schnittstellen: E-Mail, Identität, Modellendpunkt und Zeitstempel sind jeweils vom Kunden konfigurierbar. Jede Auswahl hat dokumentierte Folgen für zulässige Produktaussagen. Ist eine Funktion aktiviert, aber nicht angebunden, muss sie gesperrt bleiben. Es darf keinen stillen Ersatzweg geben.
- Ein kleines Sprachmodell auf der eigenen Hardware des Kunden innerhalb seiner Umgebung betreiben, soweit KI-Funktionen aktiviert sind. Für Eingaben darf dann kein externer Übertragungsweg bestehen.
- Kontinuierliche Produktentwicklung. Etwa die Hälfte der Arbeit betrifft die React-Anwendung und ihre serverseitigen Funktionen. Die Stelle beschränkt sich nicht auf den Plattformbetrieb.
Was Sie mitbringen
- Sie haben einen zustandsbehafteten Postgres-Dienst containerisiert, produktiv betrieben und tatsächlich aus einem Backup wiederhergestellt.
- Sie arbeiten mit Kubernetes-Basisobjekten und können erklären, warum ein StatefulSet mit Volume-Claim-Vorlage keine durch einen Operator verwaltete Datenbank ersetzt.
- Sie schreiben TypeScript im Frontend und in serverseitigen Funktionen und arbeiten gern die Hälfte der Woche am Produktcode.
- Sie haben eine Fail-closed-Kontrolle auch unter Lieferdruck aufrechterhalten und können das dazugehörige Gespräch beschreiben.
- Sie lesen Postgres-RLS-Regeln und können erklären, wie eine scheinbar plausible Regel Daten offenlegt.
- Sie arbeiten remote und eigenständig in einem Bereich, den sonst niemand verantwortet. Bewerbungen sind weltweit willkommen. Die oben genannten ersten 90 Tage beschreiben offen, was das erste Quartal erfordert.
Was diese Rolle nicht ist
- Keine reine Kubernetes-Plattformstelle. Etwa die Hälfte der Arbeit besteht aus Anwendungscode. Wer nicht am Produkt arbeiten möchte, wird hier nicht glücklich.
- Kein Projekt auf der grünen Wiese. Die Plattform existiert mit einer langen Migrationshistorie. Diese und die zulässigen Produktaussagen begrenzen jede Entscheidung zur Paketierung.
- Keine Audit- oder Assurance-Funktion. Gefordert sind laufende technische Kontrollen, keine Prüfberichte über fremden Code.
- Keine Führungsrolle mit unterstellten Mitarbeitenden. Dafür gibt es noch kein Team, und die Ausschreibung behauptet nichts anderes.