Подготовка к интервью

Вопросы для позиции «Backend-разработчик»

1967 вопросов для подготовки на позицию Backend-разработчик

1967 вопросов 1634 компании 353 технологии

Что проверяют на интервью

Как устроена подборка

Подборка помогает системно подготовиться к интервью на позицию Backend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: backend, api, database.

Каталог

Результаты поиска

Найдено: 1967
Теория

Если нужно построить высоконагруженный endpoint, выберете FastAPI или Django? Какой язык выберете для очень высокой нагрузки?

Выбор зависит от профиля нагрузки и инфраструктуры, а не только от скорости фреймворка. FastAPI удобен для async API, Django — для приложения с развитой встроенной функциональностью.

Читать ответ
Теория

Вы хорошо рассмотрели совместимость и надежность фоновых задач. А как бы вы реализовали проверку контракта API, чтобы избежать проблем с разными версиями клиентов?

Зафиксируйте API в машиночитаемой схеме и проверяйте совместимость изменений с поддерживаемыми клиентами в CI. Дополните проверку схемы контрактными тестами реальных запросов и ответов.

Читать ответ
System Design

Как обновить высоконагруженный микросервис на новую версию без потери запросов? Что делать если миграция БД ломает старую версию?

Используйте постепенную замену экземпляров, readiness-проверки и завершение активных запросов. Несовместимую миграцию разбейте на expand–migrate–contract, чтобы обе версии временно работали с одной схемой.

Читать ответ
Теория

Расскажите про опыт с FastAPI и Django: когда выбрали бы каждый из них?

Django удобен для продукта с ORM, миграциями, админкой и встроенными web-механизмами; FastAPI — для API с явными схемами и ASGI-подходом. Выбор зависит от задач и команды, не только от benchmark.

Читать ответ
Поведенческий

Все микросервисы были запущены в контейнерах? Как была организована структура сервисов?

Опишите фактическое развёртывание: какие сервисы контейнеризовали, где запускали и какие компоненты оставались вне контейнеров. Не смешивайте структуру кода с инфраструктурной топологией.

Читать ответ
Теория

За счёт чего переход с REST на gRPC дал прирост производительности и насколько удалось ускорить систему?

Возможный выигрыш gRPC связан с бинарной сериализацией, строгим контрактом, переиспользованием HTTP/2-соединений и streaming. Конкретный прирост нужно измерить; сам переход не гарантирует ускорения.

Читать ответ
Теория

В Django API список транзакций стал отвечать заметно медленнее после роста таблицы до 8 миллионов строк. Проведи по механизму: почему индекс может не помочь и что ты первым проверишь в плане выполнения запроса через `EXPLAIN ANALYZE`.

Сначала сравните ожидаемое и фактическое число строк, loops, сортировки и buffers. Индекс может не помочь при слабой селективности, несовместимом выражении, больших OFFSET или дорогих обращениях к таблице.

Читать ответ
System Design

ИИ предлагает сделать экспорт заказов в FastAPI фоновыми задачами и вернуть клиенту ссылку на файл сразу. В API уже есть клиенты старой версии, а один экспорт может занимать 10 минут. Где ты не доверишься этому решению и что выберешь первым?

Сначала проверьте контракт старых клиентов и требования к надёжности: ссылка на ещё не созданный файл вводит в заблуждение, а десятиминутная BackgroundTasks-задача может потеряться при рестарте.

Читать ответ
Лайвкодинг

Профилирование 35 запросов Django перед оптимизацией связей

Лучший первый шаг — снять профиль запросов и найти причину 35 обращений. После этого выборочно применяют select_related или prefetch_related к действительно нужным связям.

Читать ответ
Теория

Вы хорошо описали подход к тестированию разных версий API. А как вы проверяете, что изменения в API не нарушают работу клиентов, особенно при добавлении новых полей?

Проверяйте контракт на реальных ожиданиях клиентов, а не только серверной схеме. Даже добавление поля может сломать строгий parser, подпись payload или клиентскую бизнес-логику.

Читать ответ
Теория

Какие ограничения и проблемы есть у in-memory кэша, особенно при масштабировании микросервисов на несколько воркеров?

In-memory кеш отдельный у каждого процесса: данные дублируются, прогрев и инвалидирование расходятся, а при рестарте содержимое теряется. Рост числа workers увеличивает расход памяти.

Читать ответ
Теория

Как работает `Depends(get_db)` в контексте FastAPI-ручки и зачем нужен механизм dependency injection?

Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.

Читать ответ