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

Собеседование на Go-разработчика, System Design

Публичное мок-интервью, в котором кандидат проектирует сервис коротких постов уровня Twitter/X и получает разбор своего решения. В конце обсуждаются подготовка к System Design-интервью и формат менторской программы.

Источник: Эйч Навыки — менторская программа

Открыть на YouTube

Таймлайн

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

Это публичное мок-интервью по System Design для Go-разработчика: кандидат проектирует аналог Twitter/X с публикацией постов, подписками и лентой. Участники последовательно собирают требования, оценивают нагрузку и объём данных, рисуют сервисную архитектуру, обсуждают Cassandra, Redis, репликацию, шардирование, очереди и наблюдаемость. После разбора интервьюер даёт кандидату обратную связь, а ведущие объясняют формат менторской программы и отвечают на вопросы зрителей о подготовке и собеседованиях.

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

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

  • На System Design-интервью сначала зафиксируйте границы задачи и задайте вопросы о функциональности, нагрузке, доступности, хранении и задержках; не проектируйте авторизацию, фронтенд и другие компоненты вне поставленной задачи.
  • Явно разделяйте общее число аккаунтов и DAU, записи, чтения постов и обновления ленты: в учебном кейсе использовались 250 млн аккаунтов, 150 млн дневных пользователей, один пост на пользователя, около 50 чтений и 10–15 запросов ленты в день.
  • Проверяйте порядок величин и единицы при расчётах: 200 символов по 4 байта — около 800 байт на пост; ошибку в расчёте объёма данных заметили и исправили прямо во время интервью.
  • Не делайте неподтверждённых предположений о ранжировании или ML: для кейса нужно было уточнить модель ленты, после чего договорились о хронологической выдаче 25 постов с подгрузкой следующих.
  • Покажите путь от верхнеуровневой схемы к масштабированию: отдельные сервисы постов, пользователей и ленты, хранилище отношений подписок, горизонтально масштабируемое хранилище постов и предрасчёт ленты через очередь.
  • Подготовьтесь объяснить эксплуатационные детали: кэш горячих лент и популярных авторов, получение старых постов после вытеснения из Redis, репликацию, балансировку, метрики ошибок и бизнес-метрики.

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