Interviewfrage für Full-Stack-Entwickler

Entwirf ein Benachrichtigungssystem, das E-Mails verschickt und einen In-App-Feed speist.

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Schreib die Benachrichtigung als Wahrheitsquelle in eine Tabelle und reih dann pro Kanal einen Zustelljob ein, damit ein ausfallender E-Mail-Anbieter nie den In-App-Feed blockiert. Mach Jobs idempotent und wiederhol sie mit exponentiellem Backoff bis in eine Dead-Letter-Queue. Bedien den Feed aus dieser Tabelle und schieb Updates über einen Socket oder poll beim Fokus. Ergänz Einstellungen pro Nutzer und Zusammenfassungen, damit niemand zwanzig Mails pro Stunde bekommt.

Warum Interviewer das fragen

Das ist eine Designfrage, die Datenmodellierung, Queues, Fremdsystemausfälle und Produkturteil auf einmal berührt, und genau das ist die Full-Stack-Oberfläche. Der Interviewer will sehen, dass du den Datensatz von der Zustellung trennst, Teilausfälle behandelst und an das Nutzererlebnis bei hohem Volumen denkst. Einstellungen und Zusammenfassungen zu erwähnen zeigt, dass du das Produkt mitdenkst und nicht nur die Rohre.

So baust du deine Antwort auf

  • Trenn den Benachrichtigungsdatensatz von der Kanalzustellung.
  • Beschreib die Queue, Retries und Fehlerbehandlung.
  • Erklär, wie der In-App-Feed liest und sich aktualisiert.
  • Deck Einstellungen, Bündelung und Abmeldungen ab.

Beispielantwort

Gesprochenes Beispiel, erste Person

Ich würde eine notifications-Tabelle modellieren, nach Nutzer geschlüsselt, mit Typ, Payload, Erstellungszeitpunkt und Lesezeitpunkt, und diese Zeile als Wahrheit behandeln. Eine Benachrichtigung zu erzeugen ist ein einzelner Schreibvorgang plus das Einreihen von Zustelljobs, einer pro Kanal, wenn also der E-Mail-Anbieter down ist, funktioniert der In-App-Feed trotzdem und die Mail wird später wiederholt. Jeder Job trägt einen stabilen Idempotenzschlüssel aus Benachrichtigungs-Id und Kanal, ein Retry kann also nicht doppelt senden. Retries laufen mit exponentiellem Backoff und landen nach einer Handvoll Versuchen in einer Dead-Letter-Queue, mit Alarm, denn stiller E-Mail-Ausfall ist die Art Bug, von der du von einem Kunden erfährst. Der Feed selbst ist ein einfacher paginierter Lesezugriff auf diese Tabelle, mit gecachten Ungelesen-Zählern, und ich schiebe neue Einträge über Server Sent Events oder lade einfach neu, wenn der Tab den Fokus zurückbekommt. Produktseitig leben Einstellungen pro Nutzer und pro Typ, Typen mit hohem Volumen werden zu einer Tagesübersicht gebündelt, und jede Mail hat eine Ein-Klick-Abmeldung, die tatsächlich in diese Einstellungen zurückschreibt.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wie würdest du zehn identische Events innerhalb einer Minute deduplizieren?
  • Wie stellst du sicher, dass eine Abmeldung überall respektiert wird?
  • Was würdest du für die Queue nehmen und warum?

Weitere Fragen für Full-Stack-Entwickler

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen