Ερωτήσεις Συνέντευξης για Backend Developer: Τι Ρωτάνε

Από Aaron Cao · Ενημερώθηκε

Ερωτήσεις Συνέντευξης για Backend Developer: Τι Ρωτάνε
Οι συνεντεύξεις backend συγκεντρώνονται γύρω από πέντε τομείς: σχεδιασμός API, βάσεις δεδομένων και μοντελοποίηση δεδομένων, caching και απόδοση, concurrency και αξιοπιστία, και έναν γύρο system design, συνήθως μαζί με μια άσκηση coding. Οι συνεντευκτές ενδιαφέρονται λιγότερο για το ποια εργαλεία θα αναφέρεις και περισσότερο για το αν μπορείς να εξηγήσεις trade-off και να περιγράψεις ένα πρόβλημα παραγωγής που έλυσες με debugging.

Οι συνεντεύξεις backend συγκεντρώνονται γύρω από πέντε τομείς: σχεδιασμός API, βάσεις δεδομένων και μοντελοποίηση δεδομένων, caching και απόδοση, concurrency και αξιοπιστία, και έναν γύρο system design, συνήθως μαζί με μια άσκηση coding. Οι συνεντευκτές ενδιαφέρονται λιγότερο για το ποια εργαλεία θα αναφέρεις και περισσότερο για το αν μπορείς να εξηγήσεις trade-off και να περιγράψεις ένα πρόβλημα παραγωγής που έλυσες με debugging.

Τι καλύπτουν οι συνεντεύξεις για backend developer;

Οι αγγελίες για backend θέσεις αναφέρουν μια ντουζίνα τεχνολογίες, και είναι δύσκολο να ξέρεις ποιες θα εξεταστούν πραγματικά στη συνέντευξη. Αυτή η ενότητα χαρτογραφεί τα θεματικά πεδία ερωτήσεων που επαναλαμβάνονται στις διαδικασίες backend. Το stack αλλάζει από εταιρεία σε εταιρεία, αλλά τα υποκείμενα θέματα παραμένουν σταθερά.

  • Σχεδιασμός API. REST έναντι RPC, versioning, pagination, απαντήσεις σφαλμάτων, authentication και idempotency keys.
  • Βάσεις δεδομένων και μοντελοποίηση δεδομένων. Επιλογή σχεσιακής ή document αποθήκευσης, indexes, joins, transactions, isolation levels, ερωτήματα N+1 και ασφαλής εκτέλεση schema migrations.
  • Caching και απόδοση. Ακύρωση cache, λήξη, cache stampede, και πώς θα έκανες profiling σε ένα αργό endpoint.
  • Concurrency και αξιοπιστία. Race conditions, locks, ουρές, timeouts και retries με backoff.
  • System design. Σενάρια όπως ένας URL shortener, ένας rate limiter ή μια υπηρεσία ειδοποιήσεων.
  • Coding. Δομές δεδομένων και ένα πρακτικό πρόβλημα, συνήθως στη γλώσσα της επιλογής σου.

Οι γύροι γλώσσας και framework μπαίνουν πιο βαθιά σε συγκεκριμένες λεπτομέρειες· ο κόμβος τραπεζών ερωτήσεων συγκεντρώνει σετ για Go, Java, Spring Boot, microservices και άλλα.

Ποιες ερωτήσεις βάσεων δεδομένων και API εμφανίζονται πιο συχνά;

Αυτές οι ερωτήσεις εμφανίζονται με κάποια μορφή στις περισσότερες διαδικασίες backend. Εξασκήσου να απαντάς σε καθεμία φωναχτά σε λιγότερο από δύο λεπτά:

  • Τι συμβαίνει όταν προσθέτεις ένα index σε μια στήλη, και πότε ένα index βλάπτει;
  • Ποια είναι η διαφορά μεταξύ read committed και serializable isolation, και πότε θα πλήρωνες για το πιο αυστηρό επίπεδο;
  • Πώς θα έβρισκες και θα διόρθωνες ένα ερώτημα N+1 σε ένα ORM;
  • Πώς κάνεις ένα endpoint πληρωμής ασφαλές για retry από έναν client;
  • Πώς κάνεις pagination σε ένα μεγάλο σύνολο αποτελεσμάτων που αλλάζει ενώ ο χρήστης κάνει scroll;
  • Πότε θα επέλεγες ένα document store αντί για μια σχεσιακή βάση δεδομένων;
  • Πώς θα μετονόμαζες μια στήλη χωρίς downtime;

Μια δυνατή απάντηση ακολουθεί κάθε φορά την ίδια μορφή: δήλωσε την προεπιλεγμένη επιλογή σου, ονόμασε το κόστος αυτής της επιλογής και περιέγραψε την κατάσταση όπου η απάντησή σου θα άλλαζε. Οι συνεντευκτές ρωτούν ακριβώς για αυτή την περίπτωση αλλαγής, οπότε κράτα ένα πραγματικό παράδειγμα έτοιμο.

Πώς απαντάς στις ερωτήσεις system design και debugging;

Για το system design, ξεκίνα διευκρινίζοντας τις απαιτήσεις: ποιος καλεί την υπηρεσία, τι δεν πρέπει ποτέ να χαθεί, και ποιες αναγνώσεις και εγγραφές κυριαρχούν. Στη συνέχεια σκιαγράφησε τον απλούστερο σχεδιασμό που λειτουργεί, και πρόσθεσε caches, ουρές ή sharding μόνο όταν μπορείς να πεις ποια απαίτηση το επιβάλλει.

Οι ερωτήσεις debugging είναι εκεί όπου φαίνεται η πραγματική εμπειρία. Έναν backend engineer που συνεντευξιαζόταν για ρόλο mid-level σε εταιρεία πληρωμών τον ρώτησαν γιατί διπλασιάστηκε η latency ενός endpoint μετά από ένα release. Αντί να μαντέψει αιτίες, περιέγραψε τα βήματά του: έλεγξε τι άλλαξε στο deploy, σύγκρινε traces για το αργό μονοπάτι, διάβασε το query plan και επιβεβαίωσε τη διόρθωση με το ίδιο metric latency. Στη συνέχεια το συνέδεσε με ένα incident αργού query από προηγούμενη δουλειά, και η υπόλοιπη συζήτηση αφορούσε εκείνο το incident και όχι τα εργαλεία.

Ετοίμασε δύο ιστορίες παραγωγής πριν από οποιαδήποτε συνέντευξη backend: ένα bug που εντόπισες και μια απόφαση σχεδιασμού που τώρα θα έπαιρνες διαφορετικά.

Πώς πρέπει να εξασκείσαι, και πού ταιριάζει ένας βοηθός σε πραγματικό χρόνο;

Το να διαβάζεις απαντήσεις δεν είναι το ίδιο με το να τις λες. Τρέξε την παραπάνω λίστα ερωτήσεων φωναχτά με χρονόμετρο, ή άσε το εργαλείο εικονικής συνέντευξης να κάνει τις ερωτήσεις και να επιμένει σε ασαφείς απαντήσεις.

Για την ίδια τη ζωντανή βιντεοσυνέντευξη, το SubcueAI μεταγράφει τον συνεντευκτή και προετοιμάζει δομημένα σημεία απάντησης σε ένα τοπικό overlay, είτε στην εφαρμογή desktop σε macOS ή Windows (Zoom, Google Meet, Microsoft Teams) είτε στο Side Panel της επέκτασης browser για κλήσεις σε καρτέλα Chrome ή Edge. Κανένα bot δεν συμμετέχει στην κλήση. Είναι πιο χρήσιμο στους συνομιλιακούς γύρους, όπως συζητήσεις σχεδιασμού και ερωτήσεις εμπειρίας. Γύροι coding σε κοινή οθόνη, επιτηρούμενες αξιολογήσεις, καταγεγραμμένες μονόδρομες συνεντεύξεις και συσκευές διαχειριζόμενες από την εταιρεία βρίσκονται εκτός όσων μπορεί να καλύψει με ασφάλεια, και οτιδήποτε μοιράζεσαι στην οθόνη είναι ορατό. Η ρύθμιση βρίσκεται στη σελίδα tutorial.

Συχνές ερωτήσεις

Ποιες είναι οι συνηθισμένες ερωτήσεις συνέντευξης backend developer;

Ερωτήσεις για σχεδιασμό API, indexes και transactions βάσεων δεδομένων, caching, concurrency και retries, ένα σενάριο system design όπως rate limiter ή URL shortener, και συνήθως μια άσκηση coding.

Οι συνεντεύξεις backend για junior περιλαμβάνουν system design;

Συχνά μια πιο ελαφριά εκδοχή. Οι junior υποψήφιοι είναι πιο πιθανό να πάρουν μια μικρή εργασία σχεδιασμού, όπως τον σχεδιασμό του API για ένα μόνο feature, παρά ένα πλήρες κατανεμημένο σύστημα. Οι διαδικασίες mid-level και senior συνήθως περιλαμβάνουν ξεχωριστό γύρο σχεδιασμού.

Ποια γλώσσα πρέπει να χρησιμοποιήσω σε γύρο coding backend;

Αυτή στην οποία είσαι πιο άνετος, εκτός αν η αγγελία απαιτεί συγκεκριμένη γλώσσα. Οι συνεντευκτές αξιολογούν την επίλυση προβλημάτων και τη σαφήνεια, και η πάλη με άγνωστο syntax κοστίζει χρόνο που χρειάζεσαι για εξήγηση.

Πώς προετοιμάζομαι για μια συνέντευξη backend σε σύντομο χρόνο;

Δώσε προτεραιότητα σε ερωτήσεις βάσεων δεδομένων και σχεδιασμού API, εξασκήσου φωναχτά σε ένα σενάριο system design από την αρχή ως το τέλος, και ετοίμασε δύο ιστορίες παραγωγής: ένα bug που έλυσες με debugging και μια απόφαση σχεδιασμού που θα άλλαζες.

Σχετικές ερωτήσεις

← Περισσότερα για Ερωτήσεις συνέντευξης ανά ρόλο & θέμα