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

Вопросы на собеседовании

Вопросы на собеседовании Go-разработчика

25 вопросов на собеседовании Go-разработчика: горутины и каналы, интерфейсы, ошибки, context, микросервисы, профилирование pprof и поведенческие вопросы.

Поделиться:TGVKWA
Go CoreГорутины и каналыИнтерфейсыОбработка ошибокcontextМикросервисы на GoПрофилирование (pprof)

📈 Готовитесь к собеседованию? Получайте свежие вакансии Go-разработчик на почту или в Telegram — и откликайтесь, пока подготовка свежая.

бесплатно
Бесплатно, без регистрации

Мини-собеседование: Go-разработчик

Прочитать вопросы мало — на интервью придётся говорить. Ответьте на один вопрос своими словами, 2–3 предложений хватит, и ИИ разберёт ответ по четырём критериям: структура, конкретика, релевантность, убедительность.

123
HR-вопросДля всех уровней

Почему вы выбрали Go и как развиваетесь в нём?

2–3 предложения достаточно · ещё 20 симв.

Типовые вопросы и подсказки к ответам

Используйте подсказки как каркас ответа: добавьте свои проекты, метрики, ограничения и выводы. Любой вопрос можно тут же проговорить — кнопка «Ответить и получить разбор ИИ» отправит его в мини-собеседование выше.

HR-вопрос

Вопрос 1Для всех уровней

Почему вы выбрали Go и как развиваетесь в нём?

Показать подсказку ▾

Как отвечать: Свяжите ответ с реальным интересом к конкурентности и backend-инфраструктуре: проекты, open-source, чтение changelog релизов, участие в Golang-сообществе.

Вопрос 2Для всех уровней

Почему вы хотите работать Go-разработчиком именно у нас?

Показать подсказку ▾

Как отвечать: Изучите компанию заранее: свяжите ответ с их стеком, нагрузками, продуктом и инженерной культурой, покажите, где ваш опыт даст результат быстрее всего.

Резюме открывают раньше, чем зовут на собеседование. Соберите версию под «Go-разработчик» с ИИ — около 10 минут, начать можно бесплатно.

Резюме под эту роль

Технический вопрос

Вопрос 1Для всех уровней

Чем горутина отличается от потока ОС и почему их можно запускать тысячами?

Показать подсказку ▾

Как отвечать: Объясните планировщик Go (GMP-модель), маленький растущий стек, multiplexing на потоки ОС и дешёвое переключение контекста.

Вопрос 2Middle

В чём разница между буферизованным и небуферизованным каналом и когда какой выбрать?

Показать подсказку ▾

Как отвечать: Разведите синхронную передачу против очереди, влияние на блокировки отправителя и получателя, риски утечек при неверном размере буфера.

Вопрос 3Для всех уровней

Как устроены интерфейсы в Go и чем неявная реализация отличается от явной в других языках?

Показать подсказку ▾

Как отвечать: Расскажите про структурную типизацию, маленькие интерфейсы из одного-двух методов, пустой interface{} и type assertion.

Вопрос 4Для всех уровней

Почему в Go нет исключений и как правильно обрабатывать ошибки?

Показать подсказку ▾

Как отвечать: Покажите философию «ошибка — это значение»: возврат error, явная проверка, обёртывание через fmt.Errorf с %w и когда уместен panic.

Вопрос 5Middle

Как работают defer, panic и recover и в каком порядке выполняются defer-функции?

Показать подсказку ▾

Как отвечать: Объясните LIFO-порядок, захват аргументов, recover только внутри defer и типичное применение: закрытие ресурсов, разблокировка мьютексов.

Вопрос 6Middle

Как сборщик мусора в Go влияет на производительность сервиса и что такое escape analysis?

Показать подсказку ▾

Как отвечать: Упомяните concurrent GC, STW-паузы, уход переменных в кучу при анализе выхода за область видимости и как снижать аллокации в горячих путях.

Вопрос 7Для всех уровней

Зачем нужен context.Context и как с его помощью отменять операции?

Показать подсказку ▾

Как отвечать: Покажите сквозную передачу дедлайна и отмены по цепочке вызовов: WithCancel, WithTimeout, WithValue и почему context передают первым аргументом.

Вопрос 8Middle

Что такое race condition в Go, как её найти и как предотвратить?

Показать подсказку ▾

Как отвечать: Назовите флаг -race в тестах и рантайме, общее изменяемое состояние, защиту мьютексами или передачу владения через каналы.

Вопрос 9Middle

Когда использовать sync.Mutex, sync.RWMutex и atomic-операции?

Показать подсказку ▾

Как отвечать: Сравните сценарии: RWMutex при преобладании чтений, atomic для простых счётчиков и флагов, обычный Mutex как понятный выбор по умолчанию.

Вопрос 10Middle

Как работает select и какие конкурентные паттерны вы применяли: worker pool, fan-in, fan-out?

Показать подсказку ▾

Как отвечать: Опишите неблокирующее чтение из нескольких каналов, default для poll, и приведите пример паттерна из своего проекта с ограничением числа воркеров.

Вопрос 11Senior

Как возникают утечки горутин и как вы их обнаруживаете?

Показать подсказку ▾

Как отвечать: Назовите причины: блокировка на канале без читателя, забытая отмена context; обнаружение через pprof goroutine profile и рост числа горутин в метриках.

Вопрос 12Middle

Чем sync.WaitGroup отличается от errgroup и когда какой инструмент выбрать?

Показать подсказку ▾

Как отвечать: Сравните ожидание завершения без обработки ошибок против errgroup с возвратом первой ошибки и отменой остальных задач через context.

Вопрос 13Middle

Как вы строите микросервис на Go: REST или gRPC, и почему?

Показать подсказку ▾

Как отвечать: Сравните производительность и контракты Protobuf, стриминг в gRPC, простоту отладки REST, совместимость с фронтендом и инфраструктурой компании.

Вопрос 14Senior

Как вы профилируете Go-сервис через pprof в продакшене?

Показать подсказку ▾

Как отвечать: Опишите net/http/pprof или runtime/pprof, снятие CPU- и heap-профилей, анализ через go tool pprof, goroutine-дампы и осторожность с overhead.

Вопрос 15Middle

Что дают дженерики в Go и где вы применяли их на практике?

Показать подсказку ▾

Как отвечать: Приведите примеры обобщённых коллекций и утилит, ограничения type constraints, и объясните, почему не стоит заменять ими интерфейсы повсюду.

Вопрос 16Middle

Как организовать обработку ошибок в многослойном сервисе: repository, service, handler?

Показать подсказку ▾

Как отвечать: Расскажите про sentinel-ошибки и кастомные типы, errors.Is/As на границах слоёв, обёртывание с контекстом и маппинг доменных ошибок в HTTP-коды.

Вопрос 17Senior

Сервис под нагрузкой стал отвечать медленнее: как локализуете узкое место?

Показать подсказку ▾

Как отвечать: Пройдите по цепочке: метрики и трейсинг, CPU/heap/goroutine-профили pprof, блокировки мьютексов, GC-паузы, запросы к базе — и проверка гипотезы измерением.

Кейс

Вопрос 1Middle

Кейс: воркеры пишут результаты в канал быстрее, чем их читают, и сервис разрастается по памяти. Как поступите?

Показать подсказку ▾

Как отвечать: Предложите ограничить конкурентность, добавить backpressure через размер буфера или rate limiting, отменять задачи через context при переполнении очереди.

Вопрос 2Senior

Кейс: после релиза число горутин в сервисе растёт и не падает. Ваши действия?

Показать подсказку ▾

Как отвечать: Опишите: goroutine-профиль pprof, поиск зависших стеков, проверку отмены context и закрытия каналов, откат или хотфикс и тест на утечку в CI.

Поведенческий вопрос

Вопрос 1Для всех уровней

Расскажите о самой сложной конкурентной задаче, которую вы решали на Go.

Показать подсказку ▾

Как отвечать: Ответьте по STAR: система и нагрузка, ваша конкурентная модель, как отлаживали гонки и утечки, измеримый результат в latency или throughput.

Вопрос 2Middle

Как вы реагируете, если на код-ревью критикуют ваше решение в пользу более простого кода?

Показать подсказку ▾

Как отвечать: Покажите зрелость: обсуждение по существу с бенчмарками и примерами, готовность принять простое решение и культуру «код читают чаще, чем пишут».

Вопрос 3Middle

Расскажите о случае, когда ваш код вызвал инцидент в продакшене. Что сделали и какие выводы?

Показать подсказку ▾

Как отвечать: Честно опишите инцидент, вашу роль в разборе, постмортем без поиска виноватых и конкретные изменения: тесты, метрики, алерты или ревью-практики.

Вопрос 4Senior

Приходилось ли вам убеждать команду переписать сервис на Go или, наоборот, отказаться от Go? Как аргументировали?

Показать подсказку ▾

Как отвечать: Покажите, что язык — инструмент: оперируйте требованиями по производительности, найму, экосистеме команды, а не личными предпочтениями.

Готовы отвечать — а резюме уже под эту роль?

До собеседования резюме ещё нужно открыть. Соберите адаптированное резюме для «Go-разработчик» за ~10 минут: ИИ сформулирует опыт, навыки и достижения под требования работодателей.

Собрать резюме под эту роль
PRO

Проверьте себя: первый разбор — бесплатно

Прочитать вопросы — это старт. Настоящая подготовка — проговорить ответ и услышать, что с ним не так. Первый разбор ИИ бесплатный и без регистрации, прямо на этой странице. Полная симуляция — в PRO или разово, без подписки.

  • Реальные вопросы по вашей роли
  • Разбор ответов с ИИ
  • Оценка и советы

План подготовки

  1. 1Повторите устройство рантайма Go: планировщик горутин, каналы, select, сборщик мусора и escape analysis.
  2. 2Освежите конкурентные паттерны: worker pool, fan-in/fan-out, errgroup, отмена через context и защита от утечек горутин.
  3. 3Подготовьте 2–3 истории о production-инцидентах: деградация под нагрузкой, утечка горутин, гонка — и как вы их находили через pprof.
  4. 4Вспомните идиоматичную обработку ошибок: обёртывание, errors.Is/As, кастомные типы ошибок и маппинг в HTTP/gRPC-коды.
  5. 5Потренируйтесь объяснять выбор gRPC против REST и архитектуру своего текущего микросервиса на доске или листе бумаги.
  6. 6Пройдите пробное интервью в тренажёре Rabota-Help и отработайте ответы на кейсы уверенно и по делу.

Частые ошибки

  • Знать синтаксис горутин, но не уметь объяснить планировщик и отличие от потоков ОС.
  • Игнорировать context: не передавать отмену и дедлайны по цепочке вызовов.
  • Писать «обрабатываю ошибки» без упоминания обёртывания, errors.Is/As и стратегии на границах слоёв.
  • Не иметь опыта с pprof — это первое, о чём спрашивают при слове «оптимизация».
  • Предлагать дженерики или atomic там, где достаточно простого мьютекса или интерфейса.
  • Не задать вопросов о нагрузке, SLO и архитектуре сервисов, над которыми предстоит работать.

Вы готовитесь к собеседованию. А работодатели уже ищут Go-разработчика.

Создайте анонимный публичный профиль — его найдут в Яндексе и Google, и предложения придут сами. Контакты скрыты, пока вы не решите иначе.

Создать анонимный профиль — бесплатно

Пройдите мини-собеседование, добавьте резюме на экране результата — профиль создадим за минуту, с вашего согласия.

Вы нанимаете Go-разработчика? Профили кандидатов и подбор для работодателей →

Практика интервью

От вопросов — к тренировке интервью

Прочитайте вопросы, выберите 5–7 самых сложных и пройдите пробное интервью. ИИ-интервьюер поможет структурировать ответы, проверить аргументацию и подготовиться к реальному разговору.

Открыть тренажёр для роли Go-разработчик
Навыки

Востребованные навыки Go-разработчика

Частота упоминания в вакансиях работодателей

Все навыки →
1
Redis7%
2
REST7%
3
PostgreSQL7%
4
ClickHouse7%
5
Kafka7%
6
gRPC7%
7
API7%
8
Go4%
Вакансии

Свежие вакансии Go-разработчика: 476

Откройте подходящие предложения и откликнитесь после подготовки к собеседованию.

Смотреть вакансии →