Питання Співбесіди на Backend Developer: Що Запитують

Автор: Aaron Cao · Оновлено

Питання Співбесіди на Backend Developer: Що Запитують
Backend-співбесіди зосереджені навколо п'яти областей: проєктування API, баз даних і моделювання даних, кешування та продуктивності, конкурентності й надійності, а також раунду проєктування систем — зазвичай разом із завданням із кодування. Інтерв'юерів менше цікавить, які інструменти ви назвете, і більше — чи можете ви пояснити компроміси та розповісти про збій, який самостійно налагодили.

Backend-співбесіди зосереджені навколо п'яти областей: проєктування API, баз даних і моделювання даних, кешування та продуктивності, конкурентності й надійності, а також раунду проєктування систем — зазвичай разом із завданням із кодування. Інтерв'юерів менше цікавить, які інструменти ви назвете, і більше — чи можете ви пояснити компроміси та розповісти про збій, який самостійно налагодили.

Що охоплюють співбесіди на backend developer?

У вакансіях backend-розробника перелічено десятки технологій, і важко зрозуміти, які саме перевірятимуть на співбесіді. Цей розділ мапує теми питань, що повторюються в backend-процесах. Стек змінюється від компанії до компанії, але базові теми залишаються стабільними.

  • Проєктування API. REST проти RPC, версіонування, пагінація, відповіді на помилки, автентифікація та ключі ідемпотентності.
  • Бази даних і моделювання даних. Вибір реляційного або документного сховища, індекси, join'и, транзакції, рівні ізоляції, запити N+1 та безпечне виконання міграцій схеми.
  • Кешування та продуктивність. Інвалідація кешу, термін дії, cache stampede та як профілювати повільний ендпоінт.
  • Конкурентність і надійність. Race condition, блокування, черги, тайм-аути та повтори з backoff.
  • Проєктування систем. Завдання на кшталт скорочувача URL, rate limiter або сервісу сповіщень.
  • Кодування. Структури даних і практична задача, зазвичай мовою на ваш вибір.

Раунди з мови та фреймворку заглиблюються в деталі; хаб банків питань збирає набори для Go, Java, Spring Boot, мікросервісів та іншого.

Які питання про бази даних і API трапляються найчастіше?

Ці питання в тій чи іншій формі з'являються на більшості backend-співбесід. Потренуйтеся відповідати на кожне вголос менш ніж за дві хвилини:

  • Що відбувається, коли ви додаєте індекс до стовпця, і коли індекс шкодить?
  • У чому різниця між ізоляцією read committed і serializable, і коли варто платити за суворіший рівень?
  • Як би ви знайшли і виправили запит N+1 в ORM?
  • Як зробити ендпоінт оплати безпечним для повторного запиту клієнтом?
  • Як пагінувати великий набір результатів, що змінюється під час прокрутки користувача?
  • Коли ви обрали б документне сховище замість реляційної бази даних?
  • Як би ви перейменували стовпець без простою?

Сильна відповідь щоразу має однакову форму: назвіть свій вибір за замовчуванням, назвіть ціну цього вибору й опишіть ситуацію, у якій ваша відповідь змінилася б. Інтерв'юери уточнюють саме цей граничний випадок, тож тримайте напоготові реальний приклад.

Як відповідати на питання проєктування систем і дебагінгу?

Для проєктування системи почніть із уточнення вимог: хто викликає сервіс, що ніколи не можна втратити і які читання та записи домінують. Потім накидайте найпростіший дизайн, що працює, і додавайте кеші, черги чи шардинг лише тоді, коли можете сказати, яка вимога цього вимагає.

Питання з дебагінгу — це те місце, де проявляється реальний досвід. Backend-інженера, який проходив співбесіду на mid-level роль у платіжній компанії, запитали, чому затримка ендпоінта подвоїлася після релізу. Замість того, щоб гадати про причини, він описав свої кроки: перевірити, що змінилося в деплої, порівняти трейси для повільного шляху, прочитати query plan і підтвердити виправлення за тією ж метрикою затримки. Потім він пов'язав це з інцидентом повільного запиту з попередньої роботи, і решта розмови була про той інцидент, а не про інструменти.

Підготуйте дві виробничі історії перед будь-якою backend-співбесідою: баг, який ви відстежили, і рішення з проєктування, яке зараз прийняли б інакше.

Як тренуватися і де тут місце живого асистента?

Читати відповіді — не те саме, що вимовляти їх. Пройдіть список питань вище вголос із таймером або дозвольте інструменту для мок-співбесід ставити питання та уточнювати розпливчасті відповіді.

Для самої живої відеоспівбесіди SubcueAI транскрибує інтерв'юера і складає структуровані пункти відповіді в локальному оверлеї — або в десктопному застосунку на macOS чи Windows (Zoom, Google Meet, Microsoft Teams), або на Side Panel розширення браузера для дзвінків у вкладці Chrome чи Edge. До дзвінка не приєднується жоден бот. Найкорисніше це в розмовних раундах, як-от обговорення дизайну та питання про досвід. Раунди кодування на спільному екрані, проктор-оцінювання, записані односторонні співбесіди та керовані компанією пристрої виходять за межі того, що можна безпечно покрити, і все, що ви показуєте на екрані, видно. Налаштування описане на сторінці tutorial.

Часті запитання

Які поширені питання на співбесіді backend-розробника?

Питання про проєктування API, індекси й транзакції баз даних, кешування, конкурентність і повтори, завдання з проєктування систем на кшталт rate limiter або скорочувача URL, і зазвичай завдання з кодування.

Чи включають junior-співбесіди на backend проєктування систем?

Часто — у полегшеній версії. Junior-кандидатам частіше дають невелике завдання з дизайну, наприклад спроєктувати API для однієї функції, ніж повноцінну розподілену систему. Mid-level і senior процеси зазвичай включають окремий раунд проєктування.

Яку мову використовувати на backend-раунді кодування?

Ту, якою ви володієте найкраще, якщо вакансія не вимагає конкретної мови. Інтерв'юери оцінюють вирішення проблем і чіткість, а боротьба з незнайомим синтаксисом забирає час, потрібний для пояснень.

Як підготуватися до backend-співбесіди за короткий час?

Пріоритезуйте питання про бази даних і проєктування API, потренуйте вголос одне завдання з проєктування систем від початку до кінця та підготуйте дві виробничі історії: баг, який ви налагодили, і рішення з проєктування, яке б змінили.

Схожі запитання

← Докладніше: Питання для співбесід за роллю та темою