Technical Writer
Τι είναι η κατάσταση αγώνα (race condition);
Υπήρξαν περιπτώσεις όπου δεν χρησιμοποίησες σκόπιμα goroutines, αν και θα μπορούσες; Γιατί;
public class Main { public static void main(String[] args) { Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a == b); System.out.println(c == d); } } package main import "fmt" func main() { x := 1 defer func() { fmt.Println("defer:", x) }() x = 2 fmt.Println("now:", x) }
SQL ή NoSQL; Πότε επιλέγετε το ένα ή το άλλο; Χρειάζονται μεταναστεύσεις για το MongoDB;
public class Main { public static void main(String[] args) { Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a == b); System.out.println(c == d); } }
Σύστημα πληρωμής μέσω τηλεφώνου Πρέπει να υλοποιηθεί μια αρχιτεκτονική όπου ο πελάτης μπορεί να πληρώνει αγορές στο ταμείο/KS (ταμείο αυτοεξυπηρέτησης) μέσω μιας κινητής εφαρμογής. Η πληρωμή ΔΕΝ γίνεται μέσω SBP. Όταν ο χρήστης αγοράζει προϊόντα, επιλέγει να πληρώσει μέσω της εφαρμογής. Το ταμείο ή το KS πρέπει να αναγνωρίσει τον χρήστη και να ξεκινήσει τη διαδικασία πληρωμής με την τράπεζα του πελάτη. CJM: - Ο ταμίας/πελάτης σκανάρει τα προϊόντα. - Πηγαίνει στην πληρωμή. - Αναγνωρίζεται στο ταμείο/KS. - Επιλέγει να πληρώσει στην εφαρμογή Magnit. - Μεταβαίνει στην εφαρμογή Magnit. - Επιλέγει την τράπεζα εγκατεστημένη στο τηλέφωνο από το οποίο γίνεται η πληρωμή. - Στην εφαρμογή της τράπεζας, πραγματοποιεί την πληρωμή. - Επιστρέφει στην οθόνη αποτελέσματος πληρωμής στην εφαρμογή Magnit. - Στο ταμείο/KS λαμβάνει μήνυμα για επιτυχημένη πληρωμή. Μη λειτουργικές απαιτήσεις: - DAU = 1000 στο κατάστημα - Αριθμός καταστημάτων 500 - Αριθμός ταμείων - κατά μέσο όρο 5. - Η πληρωμή πρέπει να ολοκληρώνεται σε το πολύ 2 λεπτά. - Η σελίδα πληρωμής πρέπει να ανοίγει σε το πολύ 250ms.
Πώς επιλέγετε τη δομή του έργου σε Go;
Ποια είναι τα διαφορετικά είδη εξαιρέσεων στη Java και πώς διαφέρουν;
Η υπηρεσία καταναλώνει μνήμη αργά. Πώς εντοπίζετε το πρόβλημα;
Πώς ελέγχετε την ακεραιότητα των δεδομένων σε ένα webhook; Πώς προστατεύετε τα δεδομένα σε επίπεδο μεταφοράς;
Πες μου συνοπτικά για τον εαυτό σου.
Όταν εργάζεστε με highload: λιγότερες κατανομές ή καλύτερη αναγνωσιμότητα κώδικα;
Ποια αμετάβλητα αντικείμενα γνωρίζετε στη Java;
Πες μου για μια ενδιαφέρουσα περίπτωση στην τελευταία σου εταιρεία, γύρω από τι υπάρχει τώρα bottleneck;
Για ποιους λόγους μπορεί ένα μικροϋπηρεσία να μην κλιμακώνεται;
Ποιες προσεγγίσεις χρησιμοποιείς για την κατασκευή της υπηρεσίας; Αναφέρεις τους βασικούς παράγοντες της 12-factor app
Ποια μοτίβα είναι κατάλληλα για επικύρωση δεδομένων, δημιουργία αντικειμένου και επιλογή μεθόδου πληρωμής;
Ποιες στρώσεις βλέπεις στην εφαρμογή; Πώς επικοινωνούν μεταξύ τους;
Πες μου για τις κατανεμημένες συναλλαγές. Ποια είναι η διαφορά μεταξύ ορχηστρωσίας και χορογραφίας;
Εξήγησε τι είναι μια διεπαφή σε επίπεδο junior προγραμματιστή