Fullstack-Entwickler:in
Strukturierte Interviewfragen für Fullstack-Entwickler:in — mit dem Signal, auf das eine starke Antwort jeweils hinweist.
VerhaltensbezogenTechnische Entscheidungsfindung Beschreiben Sie die schwierigste technische Entscheidung Ihrer letzten Position. Warum war sie schwierig und wie haben Sie sie getroffen?
Worauf eine starke Antwort hinweistFähigkeit, eine Entscheidung unter Unsicherheit zu strukturieren: Identifikation der Bedingungen, expliziter Abwägungen, Konsultation der betroffenen Personen, nachträgliche Validierung mit Daten. Bonus: die:der Kandidat:in erwähnt, im Verlauf die Meinung geändert oder die Entscheidung für die Zukunft dokumentiert zu haben. Wer rückblickend eine offensichtliche Entscheidung beschreibt, hat selten ernsthaft abgewogen.
VerhaltensbezogenDebugging und Investigation Erzählen Sie mir von einem Production-Bug, den Sie behoben haben. Was war das Symptom, wie haben Sie diagnostiziert und wie lange hat es gedauert?
Worauf eine starke Antwort hinweistStrukturierte Debug-Methode: Reproduktion, Logs, Instrumentierung, durch Experiment validierte Hypothesen. Ehrlichkeit zur Dauer (ein echter Production-Bug ist selten in unter 30 Min. erledigt). Bonus: die:der Kandidat:in nennt die Grundursache und den systemischen Fix, nicht nur den Hotfix. Antworten wie „Ich habe den Service neu gestartet“ ohne Diagnose deuten auf schwache Investigationsfähigkeit.
VerhaltensbezogenLernfähigkeit und Demut Beschreiben Sie einen Moment, in dem Sie Code refactorn oder umschreiben mussten, den Sie selbst wenige Monate zuvor geschrieben hatten. Was war in der Zwischenzeit passiert?
Worauf eine starke Antwort hinweistTechnische Demut und Lernfähigkeit. Bonus: die:der Kandidat:in benennt, was sie:er heute von Anfang an anders machen würde. Wer noch nie eigenen Code wirklich refactorn musste, lügt oder hat Code nie über längere Zeit in Produktion gehalten.
SituativTechnischer Mut Sie entdecken in einer Code-Review eine Sicherheitslücke (SQL-Injection, Secret im Klartext, fehlende Auth-Prüfung) in einem PR einer Senior-Kollegin oder eines Senior-Kollegen. Wie reagieren Sie?
Worauf eine starke Antwort hinweistFähigkeit, eine technische Schwäche aufzuzeigen, ohne zu blockieren: sachlicher Kommentar im PR (hier ist das Risiko, hier mein Lösungsvorschlag), Lösungsangebot, Eskalation an Tech Lead, falls der PR trotz Kommentar gemergt wird. Wer es laufen lässt, weil das Profil senior ist, zeigt mangelnden technischen Mut.
SituativKommunikation mit Produkt Ein:e Product Manager:in verlangt ein Feature, das nach Ihrer Einschätzung 3 Wochen dauert. Die PM-Person will es in einer Woche. Wie reagieren Sie?
Worauf eine starke Antwort hinweistKlärung des Bedarfs vor der Timeline-Verhandlung (eventuell lässt sich das Feature in zwei Phasen liefern oder vereinfachen). Optionen anbieten: MVP in einer Woche plus V2 in zwei Wochen, expliziter Scope-Cut, zusätzliche Ressourcen. Antworten wie „Ich schaffe das in einer Woche, wenn ich am Wochenende arbeite“ sind ein Warnsignal (mangelnde Selbstführung).
SituativPragmatismus und Priorisierung Sie kommen in ein Team mit erheblicher technischer Schuld: unzureichende Tests, manuelle Deployments, kaum Monitoring. Wie sieht Ihr 30-Tage-Plan aus?
Worauf eine starke Antwort hinweistZuerst Diagnose: nicht alles gleichzeitig reparieren wollen. Priorisierung nach Risiko und Wirkung (typisch: zuerst Monitoring zum Sehen, dann Tests in kritischen Zonen, dann Deployment-Automatisierung). Abstimmung mit Team und Tech Lead vor jeder Maßnahme. Wer sich direkt in eine vollständige Neuentwicklung stürzt, zeigt mangelnden Pragmatismus.
CaseSystem-Design Design: wir wollen in unsere Anwendung Echtzeit-Benachrichtigungen ergänzen (Beispiel: eine Kollegin hat Ihr Dokument kommentiert). Wie entwerfen Sie das?
Worauf eine starke Antwort hinweistKlärung vor dem Vorschlag (erwartetes Volumen, Latenzanforderungen, unterstützte Geräte, Persistenz ungelesener Benachrichtigungen). Kohärente Architektur: Push (WebSocket oder Server-Sent Events) vs. Pull (Polling), Persistenz (Notification-DB), Idempotenz, E-Mail-Fallback. Bonus: Anerkennung der Unsicherheitszonen (Ich würde einen POC machen, bevor ich mich zwischen WebSocket und SSE festlege). Wer ohne Klärung sofort in den Code springt, zeigt eine Design-Schwäche.
CaseDebugging und Investigation Debug: Ihre API liefert auf 2 % der Anfragen eine 500. Die Logs zeigen keinen offensichtlichen Fehler. Wie gehen Sie vor?
Worauf eine starke Antwort hinweistStrukturierte Methode: (1) Log-Level auf den betroffenen Endpoints temporär erhöhen, (2) mit Metriken korrelieren (Latenz, Payload-Größe, Quelle), (3) Pattern identifizieren (Tageszeit, Request-Typ, bestimmte:r Nutzer:in), (4) Hypothesen ordnen (DB-Timeout, Race Condition, Speicher). Wer sofort auf „wird wohl die DB sein“ springt, ohne zu investigieren, hat einen Bias.
CaseOptimierung Performance: eine Seite Ihrer Anwendung braucht 8 Sekunden zum Laden. Sie haben eine Woche Zeit, sie unter 2 Sekunden zu drücken. Aktionsplan?
Worauf eine starke Antwort hinweistVor dem Optimieren messen: DevTools, Lighthouse, Server-Profiler. Bottleneck identifizieren (Rendering, DB-Queries, Payload, CDN). Nach Aufwand mal Wirkung priorisieren. Antworten wie „Ich baue Caching ein“ ohne Diagnose deuten auf vorzeitige Optimierung. Bonus: erkennen, dass 8 Sekunden in Produktion meist auf ein systemisches Problem hinweisen (N+1-Queries, riesige Payload), nicht auf eine lokale Optimierung.
FachlichCode-Qualität Wie ist Ihre Test-Strategie? Beschreiben Sie Ihr letztes Projekt: wie viele Tests, welche Typen, welche Coverage und was haben Sie wirklich gemessen?
Worauf eine starke Antwort hinweistVerständnis der Test-Pyramide (viele Unit-Tests, weniger Integrations-Tests, wenige E2E). Unterscheidung zwischen Coverage und Nutzen (90 % Coverage auf trivialem Code zählt weniger als 60 % auf kritischer Geschäftslogik). Bonus: die:der Kandidat:in nennt einen Fall, in dem ein Test eine reale Regression verhindert hat. Wer einfach „100 % Coverage“ ohne Differenzierung antwortet, zeigt schwaches Urteilsvermögen.
FachlichBackend-Fundament Was ist der Unterschied zwischen einer DB-Transaktion und einem Application-Lock? Wann setzen Sie das eine, wann das andere ein?
Worauf eine starke Antwort hinweistDB-Transaktion: Atomarität und Isolation werden von der DB gemanagt (ACID), begrenzt auf die Transaktionsdauer. Application-Lock: Koordination zwischen Prozessen oder Instanzen über Redis, ZooKeeper oder ähnliches; nützlich, wenn die Koordination über eine einzelne DB hinausgeht (Microservices, Task-Queue). Deadlock-Risiko bei beiden. Wer die beiden Mechanismen nicht trennen kann, baut in Produktion Race Conditions ein.
FachlichPragmatismus und Priorisierung Sie kommen in eine schlecht organisierte React-Codebase: Komponenten mit 500 Zeilen, Props-Drilling über 5 Ebenen, keine Trennung von Logik und Darstellung. Aktionsplan in 60 Tagen, ohne alles zu brechen?
Worauf eine starke Antwort hinweistSchrittweises Vorgehen: (1) kritische Komponenten und wiederkehrende Patterns kartieren, (2) zuerst Hooks und Business-Logik extrahieren (großer Hebel, geringes Risiko), (3) große Komponenten entlang fachlicher Grenzen zerlegen, nicht entlang technischer Schemata, (4) State-Manager nur dort einführen, wo Props-Drilling tatsächlich wehtut (Context oder Zustand im KMU, Redux ab größerem Volumen). Wer sofort alles auf React Server Components umstellen will, zeigt fehlenden Pragmatismus.
WerteCoachability Wie nehmen Sie eine kritische Code-Review zu Code auf, von dem Sie überzeugt waren, dass er gut ist?
Worauf eine starke Antwort hinweistOffenheit: Fähigkeit, Code vom persönlichen Ego zu trennen. Bonus: die:der Kandidat:in nennt einen Fall, in dem sie:er durch eine Review tatsächlich umgedacht hat. Wer beschreibt, der:dem Reviewer:in die eigene Logik erklärt zu haben, anstatt zuzuhören, zeigt eine Schwäche in der Coachability; im KMU mit kleinem Tech-Team ist das ein hartes K.o.-Signal.
WerteMentoring und Weitergabe Welche Rolle spielen Sie bei der technischen Weitergabe an Junior-Profile oder neue Teammitglieder?
Worauf eine starke Antwort hinweistAktive Mentorenhaltung: Pair-Programming, pädagogische Reviews (nicht nur ok merge), Dokumentation von Entscheidungen, Weitergabe guter Praktiken. Wer sagt „Ich helfe, wenn ich gefragt werde“, ohne mehr Konkretes, zeigt eine passive Haltung. Im KMU mit kleinem Tech-Team ist die Fähigkeit zur Weitergabe entscheidend für die Nachhaltigkeit des Teams.
WerteTeamspiel Produkt Wie arbeiten Sie mit Product Manager:innen und Designer:innen zusammen? Beschreiben Sie eine Situation, in der Sie einem Briefing widersprochen haben.
Worauf eine starke Antwort hinweistPartnerschaftliche Haltung: konstruktives Hinterfragen auf Basis von Machbarkeit oder Komplexität, Alternativvorschläge. Bonus: die:der Kandidat:in nennt einen Fall, in dem sie:er das ursprüngliche Briefing nach Austausch akzeptiert hat (keine systematische Opposition). Wer PMs oder Designer:innen als „verstehen die Technik nicht“ beschreibt, zeigt Schwäche im Teamspiel.
Evaluations-Playbook
Die Rolle der Fullstack-Entwickler:in zeigt sich über fünf Evaluations-Stufen. Die Praxisaufgabe (Stufe 3) muss realistisch und zeitlich begrenzt sein: eine 8-Stunden-Aufgabe braucht in Wirklichkeit 24 Stunden, demotiviert gute Profile und liefert kein besseres Signal als eine gut konstruierte Aufgabe von 2-3 Stunden.
Stufe 1: Lebenslauf-Lektüre
Suchen Sie nach Stack-Konsistenz (ein Profil mit React und Python wechselt nicht ohne 3-6 Monate Einarbeitung zu Java zurück), Stabilität (mindestens 18-24 Monate auf vorherigen Positionen) und Autonomiesignalen (eigene Projekte, Open-Source-Beiträge, sichtbares GitHub). Der Abschluss zählt weniger als die letzten 3-5 Jahre Praxis: ein:e Autodidakt:in mit 5 Jahren solider Produktionserfahrung zählt mehr als ein:e Top-Uni-Absolvent:in mit 2 Jahren verlängertem Praktikum.
Stufe 2: Phone Screen (30 Min.)
Nur drei Fragen: (1) Beschreiben Sie das jüngste Projekt, auf das Sie am stolzesten sind; was war Ihr konkreter Beitrag?, (2) Welche technische Entscheidung haben Sie kürzlich getroffen, an der Sie noch zweifeln? (Demut und Reflexion), (3) Warum suchen Sie jetzt einen Wechsel? Ergebnis: Go/No-Go in 5 Min. Debrief. Vermeiden Sie technische Gotcha-Fragen auf dieser Stufe.
Stufe 3: Technisches Interview (60-90 Min.)
Pair-Programming oder Code-Review auf einer begrenzten Aufgabe (45-60 Min.), gefolgt von 15-30 Min. Q&A zu Architektur und technischen Entscheidungen. Bewerten Sie die Fähigkeit, laut zu denken, Klärungsfragen zu stellen und zu iterieren. Vermeiden Sie rein akademische Algorithmen ohne Bezug zum Alltag; bevorzugen Sie Aufgaben, die dem Tagesgeschäft ähneln (Refactoring, Hinzufügen eines Features, Debug eines nicht abgedeckten Falles).
Stufe 4: System-Design-Übung (60 Min.)
Architektur-Diskussion zu einem konkreten Fall: Wie würden Sie ein System für [produktspezifische Funktion] entwerfen? Bewerten Sie die Fähigkeit, Bedingungen vor dem Vorschlag zu klären, zwischen Einfachheit und Skalierbarkeit abzuwägen und Unsicherheitszonen zu erkennen. Dies ist die prädiktivste Stufe für eine:n Fullstack-Entwickler:in, die:der im KMU eigenständig technische Entscheidungen treffen muss.
Stufe 5: Referenzen (strukturierte Überprüfung)
Rufen Sie zwei Referenzen an: eine:n ehemalige:n Tech Lead oder direkte:n Vorgesetzte:n und eine:n ehemalige:n Entwickler:innen-Kolleg:in. Stellen Sie beiden dieselben 4 Fragen: Worin ist sie:er am stärksten? Worin würden Sie eine ergänzende Person einstellen? Würden Sie sie:ihn morgen wieder einstellen, warum? Ein Beispiel einer schwierigen technischen Entscheidung in Eigenverantwortung? Die 4. Frage liefert das eigentliche Autonomie-Signal.
Woran Sie eine hervorragende Besetzung erkennen
| Kompetenz | Unter Anforderung | Auf Niveau | Über Anforderung |
|---|---|---|---|
| Technische Solidität | Stolpert über Fundamente (HTTP, DB-Transaktionen, Asynchronität). Sucht Lösungen durch Versuch und Irrtum ohne klares mentales Modell. Tut sich schwer mit dem Wechsel auf eine neue Sprache oder ein neues Framework. | Beherrscht den aktuellen Stack eigenständig. Kann ein neues Framework in 2-4 Wochen lernen. Versteht die Fundamente gut genug, um bei Bedarf tief zu debuggen. | Referenzperson für den Stack im Team und in der Lage, innerhalb weniger Wochen auf einen neuen Stack umzusteigen. Antizipiert klassische Fallen (Race Conditions, Memory Leaks, Edge Cases). Baut nützliche, nicht verfrühte Abstraktionen. |
| System-Design und Pragmatismus | Springt ohne Klärung der Bedingungen in den Code. Überarchitekturiert (Microservices für ein MVP) oder unterarchitekturiert (Spaghetti-Monolith mit 50 k LOC). Tut sich schwer beim Abwägen zwischen Einfachheit und Skalierbarkeit. | Klärt den Bedarf vor dem Coden. Pragmatisch beim Abwägen: keine vorzeitige Architektur für unsichere Zukunft, identifiziert aber Zonen, in denen ein wenig Struktur sich auszahlt. Kann pivotieren, wenn die Ausgangshypothese nicht hält. | Entwirft Systeme, die gut altern: gut gewählte Abstraktionen, minimale Abhängigkeiten, klare fachliche Grenzen. Erkennt eigene Unsicherheitszonen und schlägt gezielte POCs vor. Trainiert das Team in systemischem Denken. |
| Code-Qualität und Hygiene | Keine klare Test-Strategie; fügt Tests hinzu, um Coverage zu produzieren. Schlecht strukturierter Code (Komponenten mit 500 Zeilen, Copy-Paste, Magic Numbers). Oberflächliche Reviews. | Pyramide an Tests passend zu den fachlich kritischen Zonen. Lesbarer Code mit klarem Naming und kurzen Funktionen. Strukturierte Reviews mit umsetzbarem Feedback. Refactort im Vorbeigehen, wenn sinnvoll. | Referenz im Team für Qualität: dokumentierte Konventionen, Automatisierung der Prüfungen (Linter, Type-Checker, CI). Pädagogische Reviews, die Junior-Profile weiterentwickeln. Kann nein sagen zu Code, der die Tests besteht, aber schlecht altert. |
| Autonomie und Findigkeit | Blockiert sich stundenlang auf einem unbekannten Thema, ohne um Hilfe zu bitten, oder fragt bei jedem Hindernis sofort. Keine strukturierte Debug-Strategie. | Kann auf bekannten Themen eigenständig diagnostizieren; fragt nach vorheriger Untersuchung um Hilfe (Zusammenfassung des Problems, Hypothesen, was bereits versucht wurde). | Hohe Findigkeit auf unbekannten Themen: liest den Quellcode der Abhängigkeiten, instrumentiert die Runtime, isoliert Grundursachen. Dokumentiert die Erkenntnisse für das Team. |
| Kommunikation und Teamspiel | Erklärt die eigene Arbeit Nicht-Techniker:innen schlecht. Defensive Haltung in Reviews. Arbeitet im Silo, teilt wenig Kontext. Systematische Opposition gegenüber PMs oder Designer:innen. | Kann die eigene Arbeit gegenüber PM oder Geschäftsführung in klarer Sprache erklären. Nimmt Reviews konstruktiv auf. Teilt Kontext in Team-Reviews und 1:1. | Brücke zwischen Tech und anderen Funktionen. Moderiert technische Debriefs, macht Abwägungen verständlich, verhandelt Timelines transparent. Referenz im Team für übergreifende Kommunikation. |
30/60/90-Tage-Plan
Bis Tag 30
- Vollständiges Setup der lokalen Entwicklungsumgebung und Deployment eines (auch trivialen) PR in Produktion validiert
- Lesen und Verständnis des Codes der 3 fachlich kritischsten Module des Stacks
- Erstes dokumentiertes 1:1 mit der:dem Tech Lead zu Konventionen, identifizierter Schuld und Prioritäten
- Erster substantieller PR (Bug-Fix oder kleine Feature) reviewt und gemerged
Bis Tag 60
- Lieferung eines vollständigen Features von Anfang bis Ende (Frontend, Backend, Deployment) in Eigenverantwortung
- Erste PR-Review eines Kollegen oder einer Kollegin mit strukturiertem Feedback, nicht nur Approve-Klick
- Erste On-Call- oder Bereitschaftsphase (falls anwendbar) mit Bearbeitung von mindestens einem Vorfall
- Dokumentation eines kürzlich bearbeiteten Moduls verfasst oder aktualisiert
Bis Tag 90
- Regelmäßige Lieferung (1-2 PRs pro Woche) mit in der Review bestätigter Qualität
- Erste technische Entscheidung in Eigenverantwortung zu einem mehrdeutigen Thema (Refactor, Library-Wahl, Design)
- Informelles Mentoring eines Junior- oder neuen Profils (Pair-Programming, pädagogische Reviews)
- Formales Bilanzgespräch mit der:dem Tech Lead: Ramp-Phase validiert, Entwicklungsplan auf 1-2 Schwerpunkte