System Design с Валерием Бабушкиным | Собеседование | karpov.courses
Открытое mock-собеседование по проектированию глобальной системы сети заправок и ритейл-магазинов. Разбор охватывает требования, оценку масштаба, платежную архитектуру, базы данных и практику прохождения System Design-интервью.
- Опубликовано на YouTube:
- Просмотры на YouTube: 21 тыс.
- Лайки на YouTube: 364
Таймлайн
Коротко о видео
Это открытое mock-собеседование по System Design: после краткого рассказа кандидата о переходе в Data Science и опыте в Google он проектирует систему для сети из 25 000 заправок с магазинами. В основной части разбирают границы задачи, платежи, учёт топлива и выручки в разных валютах, расчёт нагрузки, высокоуровневую архитектуру, локальную работу точек при сбоях связи и выбор хранилищ. Ведущий постоянно возвращает решение к минимально необходимому объёму, а в финале обсуждают Google Spanner, Python и организацию файлов в ML-проекте.
Затронутые темы
Что взять на заметку
- В System Design-интервью сначала зафиксируй ключевой сценарий и пользователей: здесь это покупатель, который выбирает топливо или товар и оплачивает покупку, и сотрудник заправки, который принимает оплату и следит за остатками.
- Не превращай необязательные идеи в ядро решения: предзаказ, мойка, программа лояльности и мобильное приложение можно упомянуть как расширения, но явно вынести за текущий scope.
- Для платежей нужны подтверждение банка, завершённость операции и консистентность, а работа колонки не должна немедленно останавливаться из-за сбоя центрального сервера; полезны локальное сохранение и последующая синхронизация.
- До выбора технологий нужно сделать оценку: в разборе берут допущение о 1 000 машинах в день на станцию, проверяют объём одной транзакции и исправляют завышенную первоначальную оценку хранения.
- По мнению ведущего, при получившейся небольшой нагрузке для транзакционных данных достаточно реляционной БД вроде PostgreSQL; отдельные витрины агрегатов подходят для ежедневной выручки и аналитики.
- Карточки товаров и чеки стоит хранить без повторов: общие свойства товара отделять от региональных цены и названия, а в чеке использовать SKU или идентификатор вместо текстового названия.
- При выборе Spanner, Rust или другой новой технологии нужно показать конкретное преимущество относительно привычного стека и учитывать доступность специалистов для сопровождения.