Перейти к содержимому

МВД РФ (Паспортно-визовый сервис)

Актуальность: 4 кв 2025

  • На каких проектах вы работали, какие технологии применяли? hr-behavioral/about-you
  • Писали ли вы самостоятельно запросы? hr-behavioral/about-you
  • Какой у вас опыт работы с базами данных? hr-behavioral/about-you
  • Есть ли опыт проектирования с нуля? hr-behavioral/about-you
  • Опишите алгоритм действий при инциденте в продакшене. Вы приходите на работу и узнаете, что система упала. С чего начнете, как будете действовать? Расскажите обобщенно. algorithms/general
  • Есть ли опыт работы с Docker? На каком уровне? containers/docker
  • Представьте, что у вас есть Dockerfile, который использует Ubuntu в качестве базового образа. Пришла задача - мигрировать на Arch Linux. С чего вы начнете, какие глобальные изменения потребуются в Dockerfile и смежных файлах и как вы будете проверять, что миграция прошла успешно? containers/docker
  • Вам приходит задача. Что бы вы сделали перед ее выполнением и в процессе? linux-os/processes
  • Почему вы начали изучать Go? hr-behavioral/motivation
  • Назовите три самых главных преимущества Go на ваш взгляд. go/stdlib-tooling
  • Что такое планировщик в Go? go/concurrency
  • Что такое модель GMP? Для чего она? go/concurrency
  • Что такое горутина? Почему ее «бесплатно» переключать? go/concurrency
  • Предположите, возможна ли такая ситуация, что появляется столько горутин, что они начинают друг другу мешать? Как бы вы исправляли эту проблему? go/concurrency
  • Работали ли вы с профайлингом и что это такое? go/perf-profiling
  • Представим ситуацию: CI-пайплайн зеленый, все тесты проходят успешно, но в продакшене периодически возникают проблемы, вызванные состоянием гонки. Как можно обнаружить гонки данных на этапе тестирования в CI? Что делать, если стоит задача постоянно отслеживать, есть ли в коде гонка? go/sync
  • Что вы знаете о транзакциях в базах данных? sql/transactions
  • Вы работаете с деньгами, и нужно, чтобы со счета списалось определенное количество денег, и чтобы никакая другая транзакция не смотрела на данные, которые вы меняете. Что произойдет, если одновременно придет 1000 запросов на изменение одного и того же счета? Как можно решить эту проблему? sql/transactions
  • Как работает алгоритм Mark and Sweep? algorithms/general
  • Что такое замыкание в Go? Как будет себя вести GC в таком случае? go/memory-gc
  • Обобщенно расскажите про Go в ООП и как оно реализуется. go/stdlib-tooling
  • Как добавление публичных геттеров и сеттеров к полям класса влияет на связность между модулями: она повысится или понизится? go/stdlib-tooling
  • Почему русские символы занимают два, а не один байт? Для чего это сделано? go/strings-runes
func concat(str []string) string {
}

Доп. вопросы: Какая сложность у этой функции

Заголовок раздела «Доп. вопросы: Какая сложность у этой функции»

Задача: Написать программу, которая реализует трехэтапный конвейер для обработки чисел. go/basics

Заголовок раздела «Задача: Написать программу, которая реализует трехэтапный конвейер для обработки чисел. go/basics»
  • Генератор (gen): Функция, которая принимает срез целых чисел nums и возвращает канал, в который она отправляет эти числа;
  • Обработчик (sq): Функция, которая принимает канал чисел, умножает каждое число на 2 и отправляет результат в новый выходной канал;
  • Вывод (main): Функция main должна соединить эти этапы: gen → sq и напечатать все результаты из канала sq.
func gen(nums ...int) <-chan int {
// код генератора
}
func sq(in <-chan int) <-chan int {
// код обработчика
}
func main() {
// соединение этапов и вывод результатов
}