Вернуться в видеотеку

System Design с Валерием Бабушкиным | Собеседование | karpov.courses

Открытое mock-собеседование по проектированию глобальной системы сети заправок и ритейл-магазинов. Разбор охватывает требования, оценку масштаба, платежную архитектуру, базы данных и практику прохождения System Design-интервью.

Источник: karpov.courses

Открыть на YouTube

Таймлайн

Коротко о видео

Это открытое mock-собеседование по System Design: после краткого рассказа кандидата о переходе в Data Science и опыте в Google он проектирует систему для сети из 25 000 заправок с магазинами. В основной части разбирают границы задачи, платежи, учёт топлива и выручки в разных валютах, расчёт нагрузки, высокоуровневую архитектуру, локальную работу точек при сбоях связи и выбор хранилищ. Ведущий постоянно возвращает решение к минимально необходимому объёму, а в финале обсуждают Google Spanner, Python и организацию файлов в ML-проекте.

Затронутые темы

Что взять на заметку

  • В System Design-интервью сначала зафиксируй ключевой сценарий и пользователей: здесь это покупатель, который выбирает топливо или товар и оплачивает покупку, и сотрудник заправки, который принимает оплату и следит за остатками.
  • Не превращай необязательные идеи в ядро решения: предзаказ, мойка, программа лояльности и мобильное приложение можно упомянуть как расширения, но явно вынести за текущий scope.
  • Для платежей нужны подтверждение банка, завершённость операции и консистентность, а работа колонки не должна немедленно останавливаться из-за сбоя центрального сервера; полезны локальное сохранение и последующая синхронизация.
  • До выбора технологий нужно сделать оценку: в разборе берут допущение о 1 000 машинах в день на станцию, проверяют объём одной транзакции и исправляют завышенную первоначальную оценку хранения.
  • По мнению ведущего, при получившейся небольшой нагрузке для транзакционных данных достаточно реляционной БД вроде PostgreSQL; отдельные витрины агрегатов подходят для ежедневной выручки и аналитики.
  • Карточки товаров и чеки стоит хранить без повторов: общие свойства товара отделять от региональных цены и названия, а в чеке использовать SKU или идентификатор вместо текстового названия.
  • При выборе Spanner, Rust или другой новой технологии нужно показать конкретное преимущество относительно привычного стека и учитывать доступность специалистов для сопровождения.

Рекомендуем посмотреть