What databases have you worked with and at what level? More details about PostgreSQL, Redis, ClickHouse.
Golang
How to return an error type object in Go without using the standard library's errors package?
Design an SQL schema for a banking system with accounts and transactions tables. What constraints and indexes are necessary?
What happens after entering google.com in the browser and pressing Enter? Describe the entire process and participants.
Explain the structure of a rate limiter and the purpose of the Allow function. What configuration parameters are used and for what?
What is the difference between TCP and UDP? Where is each used?
Where and how to run the cleanup function? How to pass the context to the rate limiter?
Correct the cleanup implementation by using a regular for loop instead of range. Explain the final cleanup logic.
There is a microservice for deducting funds from a user's balance. When replicating the service, a race condition problem occurs. How to solve this problem?
Explain your implementation of the Allow function after the corrections. How is the case of the first request from the user handled?
Which protocol is used for DNS queries? Is it the only possible protocol?
How can the floating point problem be avoided without using NUMERIC? What is an alternative approach with the INT type?
Propose a status model for transactions in payment processing. How does a refund work?
Why is a mutex needed in a rate limiter? Can the problem be solved without a mutex, using sync.Map?
Is it possible to guarantee data delivery over UDP?
Explain the process of paying with a bank card through a terminal: who are the participants involved and how does the interaction occur between them?
Why did you choose NUMERIC(18,2) for amount? What alternatives exist and what are the issues with DOUBLE PRECISION?
Implement a cleanup function for periodic removal of outdated data from buckets. How to organize a background goroutine?
What is an index in PostgreSQL? How have you worked with indexes and what was your basis for creating an index?
Implement the logic of the Allow function for the rate limiter. How will you track events and check limits?