What is important to you in a new job?
Golang
What is idempotency? For NoSQL databases — what are their differences and where to choose what?
How does DELETE differ from TRUNCATE? How would you reset a table?
Is Go an object-oriented or a structural language? Go through the main principles of OOP (encapsulation, polymorphism, inheritance, abstraction) and show how they are implemented in Go.
Task: What will the code output? ```go package main import "fmt" func main() { a := []int{1, 2, 3, 4, 5} b := a[:2] b = append(b, 100) fmt.Println(a, b) } ```
How to test the printNumber function without waiting a second?
What will work faster — generics or empty interfaces?
Who used the search service?
A new SKU (meat grinder) appears in the Postgres master system — should it or should it not appear in Redis?
Have you encountered Common Table Expression (CTE)? Tell about them, including recursive CTE.
Are you currently in Moscow? What work format do you consider?
What are you interested in right now, what are you looking for?
Task: "Parallel URL processing with timeout limit" Write a function fetchAll(urls []string, maxParallel int, timeout time.Duration) map[string]string, which: 1. Performs an HTTP GET request for each URL (using http.Get). 2. Returns a map[string]string where the key is the URL, and the value is the response body (as a string) or an empty string on error/timeout. 3. Executes no more than maxParallel requests simultaneously. 4. The total runtime of the function should not exceed timeout. If the timeout expires, all unfinished requests are interrupted, and the function returns what it has. 5. Use context for cancellation.
Why is data normalization needed in SQL?
What behavioral pattern do message brokers like Kafka implement? Describe how this pattern (Pub/Sub) is structured and the relationships between entities.
Why do we need Docker? Why can't we just run a binary on the server?
If the first product was shown 1000 times, the second — 500 times, and the first had 50 clicks, the second 25 — how can they be compared?
Are there interesting nuances with GOMAXPROCS and cgroups in Linux?
How is a slice structured in Go?
package main import ( "fmt" "time" ) func main() { ch := make(chan int) go func() { ch <- 1 }() time.Sleep(time.Millisecond * 500) close(ch) for i := range ch { fmt.Println(i) } time.Sleep(time.Millisecond * 100) }