In highload scenarios: fewer allocations or better code readability?
Technical Writer
SQL or NoSQL? When do you choose what? Are migrations needed for MongoDB?
Explain what an interface is at a junior developer level.
The service slowly consumes memory. How to localize the problem?
What is a race condition?
Have there been cases where you intentionally did not use goroutines, even though you could? Why?
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) }
Mobile Payment System It is necessary to implement an architecture where a customer can pay for purchases at the checkout/self-service kiosk (self-checkout) using a mobile application. Payment is NOT made via SBP. The user, when purchasing goods, chooses to pay using the application. The checkout or self-service kiosk must identify the user and initiate the payment process through the customer's bank. Customer Journey Map (CJM): - Cashier/customer scans goods. - Proceeds to payment. - Identifies themselves at the checkout/self-service kiosk. - Chooses to pay via the Magnit app. - Opens the Magnit app. - Selects the bank installed on the phone from which the payment will be made. - Makes the payment within the bank's app. - Returns to the payment result screen in the Magnit app. - Receives a message about successful payment at the checkout/self-service kiosk. Non-functional requirements: - DAU = 1000 in the store - Number of stores = 500 - Number of checkouts = an average of 5 checkouts per store. - Payment should be completed within a maximum of 2 minutes. - The payment page should open within a maximum of 250ms.
Tell me about an interesting case in your last company, around which there is currently a bottleneck?
Tell me briefly about yourself.
What layers do you see in the application? How do they communicate?
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); } }
What patterns are suitable for data validation, object creation, and payment method selection?
Payment system via phone Design an architecture where a customer can pay for purchases at a checkout/self-service kiosk using a mobile app. Payment is NOT via SBP. When a user buys goods, they choose to pay via the app. The cashier or kiosk must identify the user and initiate the payment process through the bank. System: - Cashier/customer scans goods. - Proceed to payment. - Identifies at the checkout/kiosk. - Chooses to pay in the Magnit app. - Opens the Magnit app. - Selects the bank installed on the phone for payment. - Pays for the purchase in the bank app. - Returns to the payment result screen in the Magnit app. - Receives a message about successful payment at the checkout/kiosk. Non-functional requirements: - DAU = 1000 in the store - Number of stores 500 - Number of cash registers - about 5 on average. - Payment must be completed within 2 minutes. - Payment page should open within 250ms.
What reasons might prevent a microservice from scaling?
How to verify data integrity in a webhook? How to protect data at the transport level?
What approaches do you use for building a service? Name the main factors from the 12-factor app.
Tell me about distributed transactions. What is the difference between orchestration and choreography?
What are the types of exceptions in Java and how do they differ?
How do you choose the project structure in Go?