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

Банк вопросов с собеседований

Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.

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

Усильте резюме перед собеседованием

Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.

Анализ резюме
Сбросить

Каталог

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

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

Вы упомянули важность обратной совместимости и версионирования API. Можете привести пример, как вы реализуете контрактные интеграционные тесты для проверки таких изменений?

Зафиксируйте ожидания потребителя в контракте и проверяйте новую версию провайдера против него в CI. Интеграционный тест должен проверять не только JSON-схему, но и смысл полей и ошибок.

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

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

Независимость данных означает владение каждым сервисом своей моделью и запрет прямой записи в чужие таблицы. Обмен идёт через API или события с явными контрактами.

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

Новый публичный API должен отдавать каталог за 150 мс, но текущая выборка Django ORM тянет связанные объекты и иногда делает десятки запросов. Что выберешь первым: снять журнал SQL-запросов и подробный план выполнения запроса PostgreSQL, исправить загрузку связей в Django ORM или сразу добавить кеш — и почему?

Сначала измерьте число и длительность SQL-запросов, затем устраните подтверждённый N+1 через подходящую загрузку связей. Кеширование не должно маскировать необъяснённую дорогую выборку.

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

Как спроектировать асинхронный семафор (asyncio.Semaphore) для жёсткого ограничения RPS к внешнему API?

Semaphore ограничивает число одновременных запросов, а не RPS. Для жёсткого ограничения скорости нужен отдельный временной лимитер, который разрешает старт только в допустимый момент.

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

Зачем нужен health check в API?

Health checks позволяют системе понять, жив ли процесс и готов ли он принимать запросы. Liveness и readiness решают разные задачи и не должны проверять одно и то же без разбора.

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

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

Сервисы находят друг друга через service discovery: DNS, реестр или стабильную точку балансировки. Приложение обращается к имени сервиса, а не хранит случайные IP экземпляров.

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

Выбор WebSocket, SSE и gRPC для чата, котировок и сервисов

Для двустороннего live-чата обычно подходит WebSocket, для односторонней браузерной ленты — SSE, для типизированного межсервисного streaming — gRPC. Выбор меняется при других требованиях.

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

Почему threading.local() не подходит для передачи идентификатора запроса в асинхронном приложении на FastAPI? Какую проблему решает модуль contextvars?

threading.local() хранит состояние по потоку, а несколько async-запросов работают в одном потоке и могут перезаписать request_id друг друга. ContextVar разделяет значения по контексту задачи.

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

Атомарное уменьшение лимита в Redis или asyncio.Lock

Нужно атомарно проверить и уменьшить лимит в том месте, где он хранится: командой/скриптом Redis для общего состояния либо asyncio.Lock для одного процесса. Измерение ожидания полезно дополнительно.

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

Как внедрили событийную модель на Apache Kafka для отслеживания жизненного цикла заявлений, обеспечения консистентности между микросервисами и аудита изменений?

Опишите события переходов заявки, ключ partition по заявке, надёжную публикацию и идемпотентных потребителей. Консистентность между сервисами обычно достигается с задержкой, а не общей транзакцией Kafka и БД.

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

Если две синхронные ручки FastAPI с time.sleep(5) вызываются параллельно, за сколько они отработают?

Если это обработчики обычного def и в thread pool есть два свободных места, оба запроса завершатся примерно за 5 секунд, а не последовательно за 10. Точное время зависит от загрузки.

Читать ответ