Ответ
Сейчас я работаю в [название компании], где занимаюсь разработкой на Go. В мои обязанности входит создание высоконагруженных микросервисов, оптимизация производительности и работа с распределёнными системами.
Пример кода, который я недавно писал:
func ProcessRequests(ctx context.Context, requests []Request) ([]Response, error) {
var wg sync.WaitGroup
responses := make([]Response, len(requests))
errChan := make(chan error, 1)
for i, req := range requests {
wg.Add(1)
go func(idx int, r Request) {
defer wg.Done()
resp, err := handleSingleRequest(ctx, r)
if err != nil {
select {
case errChan <- err:
default:
}
return
}
responses[idx] = resp
}(i, req)
}
wg.Wait()
select {
case err := <-errChan:
return nil, err
default:
return responses, nil
}
}
Работаю с Kubernetes, gRPC, PostgreSQL и Kafka.
Видео-ответы
▶
▶
▶