Interviewfrage für Softwareentwickler

Deine API ist leselastig und die Datenbank liegt bei neunzig Prozent CPU. Wie würdest du skalieren?

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

Kurzantwort

Finde heraus, was die CPU frisst, bevor du irgendetwas kaufst. Wenn eine Handvoll Queries dominiert, indizier oder schreib sie um. Wenn es echtes Lesevolumen ist, nimm Replicas dazu und route lesenden Traffic dorthin, und cache dann die heißesten Ergebnisse mit kurzer Time to Live. N-plus-1-Muster zu entfernen und Seitengrößen zu begrenzen bringt oft mehr als Hardware. Skalier die Instanz hoch, um Zeit zu kaufen, und reparier das Query-Muster danach richtig.

Warum Interviewer das fragen

Interviewer wollen sehen, ob du misst, bevor du Geld ausgibst. Replicas zu einer Workload hinzuzufügen, die von einer einzigen nicht indizierten Query dominiert wird, verbrennt Geld und versteckt das Problem. Sie prüfen außerdem, ob du weißt, dass Replikation asynchron ist, dass verlagerte Reads also Veraltung einführen, die du einplanen musst, und dass Caching Korrektheitskosten hat. Starke Antworten sortieren die Fixes nach Kosten, Risiko und Umsetzungszeit.

So baust du deine Antwort auf

  • Miss, welche Queries dominieren, bevor du irgendetwas änderst.
  • Reparier Query- und Indexprobleme zuerst, sie sind am billigsten.
  • Nimm Replicas oder Caching für echtes Volumen dazu.
  • Sprich Replikationslag an und wie du damit umgehst.

Beispielantwort

Gesprochenes Beispiel, erste Person

Bevor ich irgendetwas dazunehme, will ich wissen, was die CPU tut, ich hole mir also die Top-Queries nach Gesamtzeit aus pg_stat_statements oder dem Äquivalent. Nach meiner Erfahrung richtet eine kleine Zahl von Queries den meisten Schaden an, und oft ist eine davon ein N plus 1 aus einem ORM, das mit dem Wachstum eines Kunden schlimmer wurde. Das zu reparieren ist gratis im Vergleich zum Betrieb von Replicas. Wenn das Profil wirklich gleichmäßiges Lesevolumen zeigt, ergeben Replicas Sinn, und ich route lesende Endpoints dorthin. Der Haken ist Replikationslag, alles was direkt nach einem Write liest geht also an den Primary, sonst sieht ein User sein eigenes Update verschwinden. Danach cache ich die heißesten Endpoints mit kurzer Time to Live. Parallel würde ich die Instanz vertikal hochskalieren, weil das eine Änderung von fünfzehn Minuten ist, die Zeit kauft, um den Rest sauber zu machen. Ich sage dem Team dabei bewusst deutlich, dass Hochskalieren eine Stoppuhr ist und kein Fix.

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 Reads und Writes im Anwendungscode routen?
  • Wie gehst du mit einem User um, der direkt nach dem Schreiben liest?
  • Ab welchem Punkt würdest du stattdessen sharden?

Weitere Fragen für Softwareentwickler

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