Подготовка по специальности
Собеседование backend-разработчика:
вопросы и ответы.
Backend-интервью держится на четырёх темах: базы данных, проектирование API, конкурентность и отказоустойчивость. Язык — Go, Java, Python или другой — задаёт форму вопросов, но проверяют одни и те же инженерные основы.
Не пытайтесь выучить все ответы: интервьюеры проверяют понимание, а не память. Разберите темы ниже, прорешайте типичные вопросы вслух и свяжите каждый ответ с примером из собственного опыта.
01 · Процесс
Как обычно проходит интервью
Типичный процесс: скрининг, техническая секция по языку и базам данных, live coding или тестовое задание, секция системного дизайна для уровня middle и выше, финальный разговор про опыт. На системном дизайне ждут не «правильную» схему, а умение обсуждать компромиссы.
02 · Темы
Что нужно знать перед интервью
Базы данных
- индексы: как устроены, когда не работают
- транзакции, уровни изоляции, блокировки
- нормализация и осознанная денормализация
- N+1, EXPLAIN, оптимизация медленных запросов
- SQL против NoSQL: критерии выбора
API и сервисы
- REST: идемпотентность, версионирование, коды ответов
- аутентификация: сессии, JWT, OAuth
- gRPC и очереди сообщений: когда что уместно
- пагинация, rate limiting, таймауты и ретраи
Конкурентность и надёжность
- гонки данных и способы синхронизации
- пулы соединений и горутины/потоки/воркеры
- graceful shutdown и обработка отказов зависимостей
- кеширование: инвалидация, stampede, источник истины
03 · Вопросы
Реальные вопросы с разбором ответов
Пометка у вопроса — как часто он встречается на реальных интервью: почти всегда часто иногда
01. Как работает индекс в базе данных и когда он не помогает?
почти всегдаB-tree ускоряет поиск по диапазону и равенству. Не помогает: функции над колонкой в WHERE, ведущий % в LIKE, низкая селективность, несоответствие порядку составного индекса. Упомяните цену — замедление записи — и привычку смотреть EXPLAIN.
02. Объясните уровни изоляции транзакций.
почти всегдаИдите от аномалий: грязное чтение, неповторяющееся чтение, фантомы — и какой уровень какую закрывает. Скажите, какой уровень по умолчанию в вашей СУБД (в PostgreSQL — Read Committed) и когда реально нужен Serializable.
03. Что такое идемпотентность и зачем она в API?
частоПовторный вызов даёт тот же результат — критично при ретраях и сетевых сбоях. Пример: ключ идемпотентности при создании платежа. GET, PUT, DELETE идемпотентны по семантике, POST — нет, и это надо проектировать.
04. Как бы вы спроектировали эндпоинт, который отправляет письмо после оплаты?
частоЛовушка про распределённую согласованность: нельзя слать письмо внутри транзакции БД. Правильное направление — transactional outbox: сохранить событие в той же транзакции, отправить асинхронно с ретраями. Проговорите дедупликацию на случай повторной доставки.
05. Гонка данных: что это и как найти?
почти всегдаДва потока пишут в общее состояние без синхронизации — результат недетерминирован. Инструменты: race detector в Go, санитайзеры, код-ревью критических секций. Решения: мьютексы, атомарные операции, каналы, а лучше — избегать разделяемого состояния.
06. Чем кеш может навредить и как это предотвратить?
частоУстаревшие данные, рассинхронизация с источником истины, cache stampede при массовом протухании. Меры: TTL с джиттером, инвалидация по событиям, request coalescing. Главное — назвать источник истины и поведение при недоступности кеша.
07. Очередь сообщений против синхронного HTTP-вызова: когда что?
частоОчередь — когда допустима асинхронность и нужна устойчивость к пикам и сбоям потребителя. Синхронный вызов — когда ответ нужен сразу. Обязательно упомяните последствия очереди: дубликаты доставки, порядок, идемпотентность обработчика.
08. Как ограничить нагрузку на внешний API, который вы вызываете?
иногдаRate limiter (token bucket), таймауты, ретраи с экспоненциальной задержкой и джиттером, circuit breaker при деградации. Подчеркните: ретраи без backoff при сбое усиливают нагрузку и роняют сервис окончательно.
09. Системный дизайн: спроектируйте сокращатель ссылок.
почти всегдаКлассика. Пройдите по шагам: оценка нагрузки, схема данных, генерация короткого кода (счётчик против хеша), кеширование горячих ссылок, редирект 301 против 302. Важен не финальный ответ, а явные компромиссы на каждом шаге.
10. Поведенческий: расскажите про инцидент в проде и вашу роль.
почти всегдаСтруктура: симптом, как локализовали, что оказалось причиной, как чинили, что изменили после. Завершите выводом про процесс: алерты, постмортем, защита от повторения. Это показывает зрелость сильнее, чем безаварийная история.
04 · Практика
Live coding и тестовые задания
Частые форматы: написать HTTP-эндпоинт с валидацией и работой с БД, обработать данные конкурентно с ограничением параллелизма, спроектировать структуру таблиц под задачу, отладить кусок кода с гонкой или утечкой.
В тестовых заданиях смотрят на структуру проекта, обработку ошибок, тесты и README. Аккуратная обработка граничных случаев и понятные коммиты весят больше, чем лишние абстракции «на вырост».
Общая подготовка — резюме, техника, звук и демонстрация экрана — разобрана в чек-листе подготовки к онлайн-собеседованию. Как осознанно использовать AI-подсказки во время звонка — в гайде «Как использовать AI на собеседовании».
05 · FAQ
Частые вопросы
Насколько глубоко спрашивают алгоритмы на backend-интервью?
В российских продуктовых компаниях чаще проверяют практику: базы данных, API, конкурентность. Алгоритмические секции с задачами на сложность типичны для крупных экосистемных компаний и международного найма. Уточните формат у рекрутера заранее — это нормальный вопрос.
Что спрашивают про Go на собеседовании?
Горутины и каналы, планировщик, устройство слайсов и map, интерфейсы и их внутреннее представление, context и отмена, race detector, особенности GC. Почти всегда просят найти проблему в коде с горутинами — утечку или гонку.
Как готовиться к секции системного дизайна?
Разберите пять–семь классических задач: сокращатель ссылок, лента новостей, чат, загрузка файлов, нотификации. Тренируйте структуру ответа: требования и нагрузка, схема данных, узкие места, масштабирование. Проговаривайте вслух — на интервью оценивают именно рассуждение.
Тренировка перед интервью
Репетируйте ответы вслух с Mira
Mira слышит вопрос и подсказывает опору для ответа прямо во время звонка. 30 минут бесплатно каждый месяц, банковская карта не нужна.
Mira