Senior Fullstack Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
Requirements
- Mehrere Jahre Verantwortung fĂŒr ein System, das echte Menschen benutzt haben.
- Postgres jenseits von ORM-Niveau: Query-PlÀne, Indizes, Sperren, Row Level Security.
- Web-Security als Denkweise, nicht als Checkliste: fehlerhafte Autorisierung, IDOR, Mandantenlecks, Session- und Token-Handling, SSRF, Lieferkette.
- TypeScript und ein modernes Web-Framework.
- Betriebserfahrung: Monitoring, Alarmierung, ein Incident von Anfang bis Ende, Post-Mortem ohne Schuldzuweisung.
- Du arbeitest tÀglich mit Coding-Agenten und kannst benennen, wo sie zuverlÀssig sind und wo nicht.
- Deutsch fĂŒr Team und Kollegen. Englisch fĂŒr Code, Kommentare und Commits, ist bei uns eine harte Regel.
- Erfahrung in Skalierung von Systemen
Hilft
- Supabase und PostgREST im Detail, Vercel, Cloudflare Workers.
- DSGVO-Praxis im B2B-Mittelstand - Auftragsverarbeitung, TOMs, Löschkonzepte.
- Du hast schon einmal etwas GröĂeres kaputt gemacht und danach aufgeschrieben, warum.
- Erfahrung mit GoBD KonformitÀt
Benefits & conditions
- Du siehst, wem du hilfst. Der Techniker, der dein Ticket-Interface im Transporter bedient, sitzt nicht in einem anderen Land. Er kommt nachmittags rein und sagt dir, was noch nicht funktioniert.
- Geregelte Arbeitszeiten mit Feierabend am Nachmittag.
- Betriebliche Altersvorsorge, Betriebsarzt, Essenszuschuss, kostenlose GetrÀnke
Gehalt: 3.000,00⏠- 4.000,00⏠pro Monat
Leistungen:
- Betriebliche Altersvorsorge
- Betriebliche Weiterbildung
- Firmenevents
- Firmenfahrrad
- Flexible Arbeitszeiten
- Homeoffice-Möglichkeit
- Kostenlose GetrÀnke
- Kostenloser Parkplatz
- Mitarbeiter-Rabatt
- Vermögenswirksame Leistungen
- Weiterbildungsprogramme
Arbeitsort: Vor Ort
About the company
SAF stellt seit 1986 GetrĂ€nke- und Snackautomaten auf: Volloperating, Verkauf und Vermietung im WestmĂŒnsterland, am Niederrhein und im Ruhrgebiet.
Seit diesem Jahr bauen wir die Software dafĂŒr selbst, nicht als Beiwerk neben einem gekauften System, sondern als dessen Ersatz. Ein System fĂŒr alles. Wir haben bereits den kompletten Support sowie Kundendienst in diesem System abgebildet, sowie weitere Systeme angebunden.
Als nÀchstes kommt
- Bestandsmanagement
- Disposition
- Abrechnung
- Routenplanung
Alles selbst gebaut, alles in einem System. Am Ende soll der gesamte Betrieb hier laufen, eine App fĂŒr alles.
WofĂŒr wir dich brauchen
Bis hierher ging es um Tempo, so viel FlĂ€che wie möglich, damit ĂŒberhaupt sichtbar wird, dass ein eigenes System trĂ€gt. Der nĂ€chste Abschnitt ist ein anderer. Sobald Routenplanung, BestandsfĂŒhrung und Abrechnung dazukommen, hĂ€ngt der Tagesbetrieb an dieser Software: Wenn sie morgens um sechs nicht da ist, fĂ€hrt keine Tour. Software, an der ein Unternehmen seinen Tag aufhĂ€ngt, hat andere Anforderungen als Software, die danebensteht.
Sicherheit
Sicherheit war bisher ein Teil der Entwicklung und nie eine eigene Rolle. Mit dir wird sie eine.
Du machst Threat Modeling zur festen Ăbung statt zum einmaligen Projekt. Du prĂŒfst unsere Annahmen gegen deine eigenen. Und du sorgst dafĂŒr, dass eine neue Funktion ihre Sicherheitsfrage im Entwurf beantwortet und nicht im Nachgang, dazu die unspektakulĂ€ren Dinge, die am Ende entscheiden: SchlĂŒssel und ZugĂ€nge rotieren, AbhĂ€ngigkeiten im Blick behalten, Datenschutz so dokumentieren, dass es einer PrĂŒfung standhĂ€lt.
VerfĂŒgbarkeit
MessgröĂen fĂŒr die Wege, die ein Kunde wirklich spĂŒrt. Alarmierung, die vor dem Anruf kommt. Wiederherstellung, die geprobt ist und nicht nur skriptiert. Und Runbooks, die auch jemand abarbeiten kann, der sie nicht geschrieben hat. Das ist der Unterschied zwischen einer Anwendung, die funktioniert, und einer, auf die ein Unternehmen seinen Tagesbetrieb legen kann. Wir sind gerade dabei, Letzteres zu werden.
Skalierung
Das Wachstum ist absehbar: Die Telemetrie wĂ€chst mit jedem angebundenen Automaten, Routenplanung und BestandsfĂŒhrung bringen eine völlig andere Art von Last mit als ein Ticketsystem. Was gehört in eine Queue statt in den Request? Was gehört ĂŒberhaupt nicht mehr in dieselbe Anwendung? Diese Entscheidungen sollst du treffen, bevor sie sich von selbst treffen.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this roleâŠ