1967 вопросов для подготовки на позицию Backend-разработчик
1967 вопросов1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
Подборка помогает системно подготовиться к интервью на позицию Backend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: backend, api, database.
Укажите, какую метрику сравнивали: среднее, медиану или p95/p99, для каких endpoint и на какой нагрузке. Сокращение на 30–50% должно подтверждаться сопоставимыми измерениями до и после.
Создайте один общий asyncio.Lock для защищаемого состояния и поместите всю проверку и изменение внутрь async with lock. Новый Lock на каждый запрос не защитит ничего, потому что запросы не будут разделять блокировку.
Выберите конкретный сервис из своего опыта и кратко объясните его назначение, границы и путь до production. Отдельно назовите, что проектировали и реализовали лично.
Объясните реальные причины разделения: характер нагрузки, библиотеки, компетенции команды и стоимость сопровождения. Python мог быть удобен для ML-интеграций, Go — для определённых сетевых или конкурентных сервисов.
Микросервисы взаимодействуют синхронно через API, например HTTP/gRPC, и асинхронно через сообщения или события. Выбор зависит от того, нужен ли ответ сразу и насколько допустима временная несогласованность.
Метрики показывают агрегированные числовые показатели, логи — отдельные события, а traces — путь конкретного запроса через сервисы. Для поиска задержки связывают spans всех пяти сервисов общим trace context.
Сначала проверю, не вызывается ли блокирующий HTTP-клиент внутри async def, а затем — ограничения пула соединений, timeouts и лимиты внешнего API. Две секунды I/O не должны последовательно блокировать весь event loop.
Выберите реальные проекты и разделите свою роль: проектирование REST API, интеграция модели, подготовка данных или эксплуатация. Наличие HTTP API и работа с LLM — разные части опыта, их лучше описывать отдельно.
await может передать управление другой задаче между чтением и записью. Оба запроса прочитают прежний баланс, а затем один результат затрёт другой; атомарной должна быть вся проверка и изменение состояния.
Разделите загрузку на ограниченные части и записывайте поток сразу в временное или объектное хранилище. Backend хранит метаданные upload-сессии и частей, а не весь файл в RAM.
Снимите SQL с реальными параметрами и сравните план на production-объёме. Отсутствие подходящего индекса проверяют в схеме; последовательное сканирование в плане само по себе ещё не доказывает его отсутствие.
Используйте TLS и подписывайте запрос вместе с timestamp, уникальным nonce, методом, адресом и телом. Сервер проверяет подпись, допустимый возраст и атомарно запрещает повторное использование nonce.