Have you worked with Docker, Kubernetes? Have you talked about building pipelines.
Golang
How did you determine that it's time to change something? Based on which metrics?
Implement a Worker Pool for log processing: read logs from a channel, process in parallel, count logs per service, return map[serviceName]count.
What is a channel in Go? What are channels used for?
What kind of inter-service interaction did you have in one of your recent projects?
How was cache consistency ensured in Redis? How did you understand that the cache needed to be updated?
What happens when writing to a closed channel, reading from a closed channel, writing/reading from a nil channel?
If a service consumes too much memory, what should be checked in the profiler? How to reduce allocations?
What is the purpose of context? How have you used it in practice?
What will happen to the outbox schema if Kafka becomes unavailable? How large can the outbox queue grow?
Is it necessary to write methods for creating, updating, and deleting articles? What exactly should your service do?
Tell me about database query optimization tasks, index creation, partitioning.
Why did you leave RocketDev?
func(d *Data)GetViews(key int, chechDay time.Time) (int, int, err) { d.mu.Lock() defer d.mu.Unlock() infoStr, ok := d.st[key] if !ok { return 0, fmt.Errorf("article not found") } return (infoStr.day, infoStr.count, nil) }
How to connect a profiler in Go? How to take profiles?
Tell about your experience with database query optimization: how did you find problematic queries and what did you do?
Is it possible to write to the same map from different goroutines simultaneously? What will happen?
If one of the services is unavailable during enrichment (for example, the service with the user's full name/data), what happens? Does the entire Kafka stop?
How did the services interact with each other?
Tell about gRPC: why choose it, advantages, limitations.