Middle из бигтеха проходит собеседование на Backend разработчика
🎓 Курс по Backend разработке, на котором я готовлю востребованных разработчиков. Начинай бесплатно или записывайся на экскурсию: https://clck.ru/3UtukQ ☘️ Готовься к собеседованиям бесплатно на Солвит: https://solvit.space/l/pcabma Забрать памятку с вопросами и ответами с собеседования: https://clck.ru/3UtumQ (включи BПH) Мой телеграм-канал, где я пишу о своем стартапе и работе разработчиком: https://t.me/artemshumeiko 0:00 О чем видео и знакомство с собеседуемым 4:48 Почему был выбран брокер сообщений Kafka, а не сделан монолит 7:08 Какой технологический стек использовался на основном сервисе с основной нагрузкой 8:06 Что такое идемпотентность 9:34 Какая нагрузка была на core-сервис: CPU или I/O 10:07 Как выглядело взаимодействие с прокси: HTTP, брокер, вебхуки 10:23 Что такое webhook 10:39 В чем отличие webhook от обычного endpoint, вызываемого клиентом. Когда оправдано использование webhook 16:20 Что надо учесть при проектировании базы данных 17:41 Что такое нормальные формы и когда имеет смысл их нарушать 19:02 Был ли у тебя опыт нарушения нормальных форм, который дал выигрыш по скорости 23:24 Что такое индексы в базе данных 24:22 Какие минусы у индексов 25:20 Бывают ли кейсы, когда поиск по столбцу через where есть, но индекс на него не нужен 25:43 На какие типы данных в столбцах не стоит накидывать индекс 27:59 В чем разница между explain и explain analyze 28:32 Что такое вьюшка и материализованная вьюшка? Был ли у тебя опыт работы с ними 32:34 Какое у тебя мнение насчет выноса логики приложения в базу данных, например, через триггеры для обновления updatedAt 36:27 Как реализовать запрос, который обновляет сущность, если она есть, или вставляет, если нет 37:51 Сколько SQL-запросов выполняется под капотом при такой операции 38:01 Бэкэнд обращается к базе один или два раза при использовании on conflict 41:10 Какие способы параллельного или почти параллельного запуска кода в Python существуют 44:05 С какими сущностями в async.io ты работал 44:53 В чем разница между coroutine и task в Python 45:46 Опиши свой опыт работы с тасками. Для чего они нужны 47:47 Есть ли смысл в синхронной функции с несколькими await подряд 50:25 Какую архитектуру ты используешь в своих Python-сервисах 51:47 Есть ли какие-то названия паттернов или слоев 52:27 Как называются файлы, где лежит роут, где работа с базой и где промежуточная звена 53:34 Если нужно объединить данные пользователя и его чатов, куда класть этот код 54:44 В каком стиле пишешь работу с базой: ORM или Core 55:49 Как называется паттерн для обертки над базой, чтобы работать с разными источниками данных одинаково 57:18 Как обрабатываешь ошибки от SQLAlchemy, например нарушение уникальности 58:40 Что нужно учесть при интеграции внешней API и куда в проекте поместить эту интеграцию в плане архитектуры 1:00:58 Как бы ты работал с ошибкой превышения лимита запросов к внешней API, например 60 запросов в минуту 1:02:47 Какие технологии для тестирования и что нужно учесть в приложении, чтобы было легко тестировать 1:06:52 Если ограничено время, что приоритизировать: тесты базы данных или тесты API, с которым работают пользователи 1:10:00 В чем ключевое отличие стабов и моков 1:11:36 Назвать пример алгоритма с алгоритмической сложностью n log n 1:11:55 Назвать пример алгоритма с алгоритмической сложностью n в пятой степени 1:12:04 Пример алгоритма с алгоритмической сложностью O 1:12:18 Как реализовать аутентификацию и авторизацию в сервисе 1:14:45 Что за пара токенов в JWT 1:16:08 Почему refresh токен хранится более безопасно и где 1:16:45 Какие способы есть достать refresh токен из HTTP-only cookie 1:17:18 Какие минусы у JWT токенов по сравнению с сессиями 1:19:38 Как работает аутентификация в микросервисах с использованием JWT 1:21:49 Как валидировать, что токен не фишинговый 1:22:39 Как валидировать токен в микросервисах, если секретный ключ не доступен 1:24:49 Есть ли способы снизить нагрузку на сервис авторизации при проверке токенов 1:26:44 Как работает проверка JWT токена с использованием публичного и приватного ключей 1:30:35 Расскажи про Airflow: зачем нужен этот инструмент, почему он появился, как его использовать 1:35:44 Задача на код-ревью 1:55:16 Задача на словари в Python 2:00:47 SQL-задача 2:13:56 Фидбек по собеседованию
🎓 Курс по Backend разработке, на котором я готовлю востребованных разработчиков. Начинай бесплатно или записывайся на экскурсию: https://clck.ru/3UtukQ ☘️ Готовься к собеседованиям бесплатно на Солвит: https://solvit.space/l/pcabma Забрать памятку с вопросами и ответами с собеседования: https://clck.ru/3UtumQ (включи BПH) Мой телеграм-канал, где я пишу о своем стартапе и работе разработчиком: https://t.me/artemshumeiko 0:00 О чем видео и знакомство с собеседуемым 4:48 Почему был выбран брокер сообщений Kafka, а не сделан монолит 7:08 Какой технологический стек использовался на основном сервисе с основной нагрузкой 8:06 Что такое идемпотентность 9:34 Какая нагрузка была на core-сервис: CPU или I/O 10:07 Как выглядело взаимодействие с прокси: HTTP, брокер, вебхуки 10:23 Что такое webhook 10:39 В чем отличие webhook от обычного endpoint, вызываемого клиентом. Когда оправдано использование webhook 16:20 Что надо учесть при проектировании базы данных 17:41 Что такое нормальные формы и когда имеет смысл их нарушать 19:02 Был ли у тебя опыт нарушения нормальных форм, который дал выигрыш по скорости 23:24 Что такое индексы в базе данных 24:22 Какие минусы у индексов 25:20 Бывают ли кейсы, когда поиск по столбцу через where есть, но индекс на него не нужен 25:43 На какие типы данных в столбцах не стоит накидывать индекс 27:59 В чем разница между explain и explain analyze 28:32 Что такое вьюшка и материализованная вьюшка? Был ли у тебя опыт работы с ними 32:34 Какое у тебя мнение насчет выноса логики приложения в базу данных, например, через триггеры для обновления updatedAt 36:27 Как реализовать запрос, который обновляет сущность, если она есть, или вставляет, если нет 37:51 Сколько SQL-запросов выполняется под капотом при такой операции 38:01 Бэкэнд обращается к базе один или два раза при использовании on conflict 41:10 Какие способы параллельного или почти параллельного запуска кода в Python существуют 44:05 С какими сущностями в async.io ты работал 44:53 В чем разница между coroutine и task в Python 45:46 Опиши свой опыт работы с тасками. Для чего они нужны 47:47 Есть ли смысл в синхронной функции с несколькими await подряд 50:25 Какую архитектуру ты используешь в своих Python-сервисах 51:47 Есть ли какие-то названия паттернов или слоев 52:27 Как называются файлы, где лежит роут, где работа с базой и где промежуточная звена 53:34 Если нужно объединить данные пользователя и его чатов, куда класть этот код 54:44 В каком стиле пишешь работу с базой: ORM или Core 55:49 Как называется паттерн для обертки над базой, чтобы работать с разными источниками данных одинаково 57:18 Как обрабатываешь ошибки от SQLAlchemy, например нарушение уникальности 58:40 Что нужно учесть при интеграции внешней API и куда в проекте поместить эту интеграцию в плане архитектуры 1:00:58 Как бы ты работал с ошибкой превышения лимита запросов к внешней API, например 60 запросов в минуту 1:02:47 Какие технологии для тестирования и что нужно учесть в приложении, чтобы было легко тестировать 1:06:52 Если ограничено время, что приоритизировать: тесты базы данных или тесты API, с которым работают пользователи 1:10:00 В чем ключевое отличие стабов и моков 1:11:36 Назвать пример алгоритма с алгоритмической сложностью n log n 1:11:55 Назвать пример алгоритма с алгоритмической сложностью n в пятой степени 1:12:04 Пример алгоритма с алгоритмической сложностью O 1:12:18 Как реализовать аутентификацию и авторизацию в сервисе 1:14:45 Что за пара токенов в JWT 1:16:08 Почему refresh токен хранится более безопасно и где 1:16:45 Какие способы есть достать refresh токен из HTTP-only cookie 1:17:18 Какие минусы у JWT токенов по сравнению с сессиями 1:19:38 Как работает аутентификация в микросервисах с использованием JWT 1:21:49 Как валидировать, что токен не фишинговый 1:22:39 Как валидировать токен в микросервисах, если секретный ключ не доступен 1:24:49 Есть ли способы снизить нагрузку на сервис авторизации при проверке токенов 1:26:44 Как работает проверка JWT токена с использованием публичного и приватного ключей 1:30:35 Расскажи про Airflow: зачем нужен этот инструмент, почему он появился, как его использовать 1:35:44 Задача на код-ревью 1:55:16 Задача на словари в Python 2:00:47 SQL-задача 2:13:56 Фидбек по собеседованию
