Мок-собеседование по System Design: мобильная маркетинговая атрибуция
Мок-собеседование по System Design: кандидат проектирует систему мобильной маркетинговой атрибуции, которая связывает клики по рекламе, установки приложения и покупки подписки. Обсуждаются функциональные и нефункциональные требования, расчёт нагрузки, API, модель событий, выбор Cassandra и ClickHouse, потоковое обогащение данных, Kafka, визуализация метрик, оценка сроков и применение AI в разработке.
Интервьюер в роли продуктового или бизнес-менеджера предлагает кандидату спроектировать систему маркетинговой атрибуции для мобильных приложений. Кандидат уточняет сценарии click → install → purchase, требования к воронке и срезам по странам, затем обсуждает нагрузку, доступность, задержки, сущности и API. В архитектурной части он предлагает Cassandra для приёма событий, ClickHouse и Grafana для аналитики, а также Kafka и сервис обогащения данных. Интервьюер уточняет ограничения решений и отдельно поправляет смешение аналитических и time-series хранилищ. В финале разбираются состав команды, оценка MVP и использование AI для рутинного кода и тестов.
Начинайте System Design с уточнения сценариев, метрик, границ системы и требуемых артефактов, а не с выбора технологий.
Для маркетинговой атрибуции заранее проектируйте надёжную связь между событиями click, install и purchase; повторные доставки событий и повторные действия пользователя — разные случаи.
Выбирайте хранилища по паттернам записи и чтения: аналитические запросы по воронкам и срезам требуют иной модели, чем мониторинговые time-series данные.
Обосновывайте Cassandra, ClickHouse и Kafka конкретными требованиями к пропускной способности, модели данных, задержке, отказоустойчивости и повторной обработке событий.
Оценка MVP должна учитывать интеграции, инфраструктуру, тестирование, аналитические витрины и неопределённости, а не только код обработчиков событий.
AI может ускорять написание шаблонного кода и тестов, но техническое задание, проверка результатов и решения в предметной области остаются ответственностью инженера.