Перечисли базы данных и брокеры сообщений, с которыми работал, оцени себя
Вопросы к интервьюеру о компании и процессах
Представим, что наш микросервис должен ходить во внешнее API, например, платёжку, но оно внезапно начинает жёстко тормозить или вообще падает. Как обычно защищаешь своё приложение от таких соседей, чтобы не упал весь наш сервис?
Что можете рассказать про телеметрию, мониторинг, для чего это нужно и с какими инструментами работали?
Как написать запрос для получения пользователя с предпоследней зарплатой?
Что такое системный вызов (syscall)?
Почему вы решили выйти на рынок и искать новую работу?
Когда будет вызвана отложенная функция defer? (при выходе из локального блока / при выходе из функции / при завершении приложения)
Что такое интерфейсы в Go?
У вас был Keycloak для авторизации или своё решение?
Расскажите про уровни изоляции транзакций: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
func merge(chs ...<-chan int) <-chan int { ... } package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func(n int) { defer wg.Done() fmt.Println(i) }(i) } wg.Wait() }
Как можно наладить блокировки в запросе? Расскажи про виды блокировок (пессимистичные, оптимистичные, advisory locks).
Можешь привести пример автономной работы — какое максимальное время ты работал над одной задачей или проблемой?
Как шарить память между горутинами? В каких случаях лучше использовать Atomic, а в каких Mutex/RWMutex/SyncMap?
Расскажите весь флоу по данным и по товару — как происходит поставка на склад, как данные проходят по системам?
Насколько активны поиски? Может быть, есть уже какие-то офферы?
В какой момент вы даёте ACK? Сразу при получении или после обработки?
Расскажи про интерфейсы в Go: что это, из чего состоят, что такое nil-интерфейс?
Analyze the following Go code snippet and explain what will be printed by the program and why: ```go func main() { type User struct { Name string } m := map[string]User{ "a": {Name: "Alice"}, } u := m["a"] u.Name = "Bob" fmt.Println(m["a"].Name) } ```