Библиотека вопросов
Вопросы с настоящих собесов. Любой можно отработать голосом за пару минут — с интервьюером, баллом и разбором.
Как бы вы спроектировали простой сервис сокращения ссылок — что-то вроде bit.ly?JuniorОбъясни разницу между репликацией и шардированием: какую проблему решает каждое, и с какими сложностями ты столкнёшься.MiddleОбъясни стратегию cache-aside: как читаются и пишутся данные, как ты решаешь проблему устаревания и что будет при массовом истечении ключей.MiddleОбъясни, как ты защитишь сервис от падения зависимостей: какие таймауты, ретраи и circuit breaker поставишь, и как поймёшь, что что-то пошло не так.MiddleОбъясни, почему для горизонтального масштабирования сервис должен быть stateless и как балансировщик распределяет нагрузку между экземплярами.MiddleОбъясни, что значит «доставка как минимум один раз» и как сделать обработчик сообщений идемпотентным, чтобы повтор не испортил данные.MiddleРасскажи, как ты строишь ответ на System Design собеседовании: с чего начинаешь, какие вопросы задаёшь, и как оцениваешь нагрузку.MiddleСпроектируйте rate limiter для публичного API: например, не больше 100 запросов в минуту на один API-ключ. Сервис работает на нескольких инстансах.MiddleСпроектируйте загрузку и обработку пользовательских фотографий: пользователь загружает изображение, сервис делает превью нескольких размеров и показывает их в ленте.MiddleСпроектируйте сервис коротких ссылок: пользователь отдаёт длинный URL и получает короткий, а переход по короткой ссылке перенаправляет на оригинал.MiddleСпроектируйте сервис уведомлений, который по событиям из других сервисов отправляет пользователям email, push и SMS, — до нескольких миллионов уведомлений в день.MiddleСпроектируйте ленту новостей для соцсети: пользователи подписываются друг на друга, лента должна открываться мгновенно, а у некоторых авторов миллионы подписчиков.SeniorСпроектируйте сервис выписок: клиент в приложении запрашивает выписку по счёту в PDF за произвольный период, вплоть до нескольких лет.SeniorСпроектируйте сервис загрузки и хранения пользовательских файлов размером до нескольких гигабайт, например видео.SeniorСпроектируйте сервис лимитов: у клиента есть дневные и месячные лимиты на переводы и снятия наличных, и каждую операцию нужно проверить до проведения.SeniorСпроектируйте сервис переводов по номеру телефона между клиентами банка: от нажатия кнопки «Перевести» до зачисления денег получателю.SeniorСпроектируйте сервис уведомлений: push, email и SMS, около пятидесяти миллионов уведомлений в сутки, с пиками во время маркетинговых рассылок.SeniorСпроектируйте систему антифрода для онлайн-переводов, которая должна вынести решение до того, как деньги уйдут со счёта.SeniorСпроектируйте систему продажи билетов на концерт, где в момент старта продаж приходят сотни тысяч человек на несколько тысяч мест.SeniorСпроектируйте строку поиска с автодополнением для крупного маркетплейса: от ввода символа до отображения подсказок.Senior