От URL-shortener до News Feed: 15 промтов для системного дизайна, которые заменят репетитора

Собеседование по системному дизайну — это не про знание алгоритмов. Это про умение мыслить архитектурно, видеть компромиссы и защищать свои решения перед скептически настроенным интервьюером. Когда я готовился к интервью в Amazon, я перечитал десятки статей, но настоящий прорыв случился, когда я начал использовать промты для AI-наставника. Они позволили мне отрепетировать сценарии, которые я не мог найти в книгах: неожиданные вопросы, каверзные trade-off, стресс-тесты на масштабирование. В этой статье я собрал 15 промтов, которые сэкономили мне месяцы подготовки и помогли пройти интервью в three из пяти FAANG-компаний.

Почему это работает? Промты — это не просто вопросы. Это симуляция реального интервью, где AI выступает в роли интервьюера, который задает уточняющие вопросы, копает вглубь и заставляет вас обосновывать каждое решение. Вы учитесь не только проектировать, но и коммуницировать свои идеи — а это 50% успеха на собеседовании.

Базовые промты: фундамент для новичков

1. Проектирование URL-shortener

Задача: Отработать базовые навыки проектирования распределенной системы: оценка нагрузки, выбор хранилища, обработка редиректов.

Промт:

Ты — интервьюер по системному дизайну в Google. Попроси меня спроектировать URL-shortener (как bit.ly). Начни с требований, затем переходи к оценке нагрузки, выбору базы данных, API, обработке коллизий и редиректов. Задавай уточняющие вопросы, если я что-то упускаю. В конце дай развернутую обратную связь по моим ответам.

Пример результата:

AI начинает задавать вопросы: «Какая ожидаемая нагрузка? Сколько новых URL в день? Какой трафик на редиректы?». Вы отвечаете, и AI корректирует ваши оценки, предлагает использовать base62 для генерации коротких кодов, обсуждает выбор между SQL и NoSQL (например, DynamoDB или Cassandra), рассматривает кэширование на CDN. В финале AI резюмирует: «Вы хорошо оценили нагрузку, но забыли про rate limiting и аналитику переходов. В следующий раз включите эти аспекты». Это дает вам немедленную обратную связь и помогает заполнить пробелы.

2. Проектирование News Feed (как в Facebook)

Задача: Научиться проектировать ленту новостей с учетом кастомизации, кэширования и push/pull моделей.

Промт:

Спроектируй News Feed для социальной сети с миллионами пользователей. Учти: генерация ленты, хранение постов, доставка (push vs pull), ранжирование и кэширование. Задавай вопросы, как настоящий интервьюер, и требуй обоснования каждого решения. В конце оцени мои ответы по шкале от 1 до 10 и дай советы по улучшению.

Пример результата:

AI спрашивает: «Как вы будете доставлять ленту — push или pull?». Вы предлагаете pull, объясняя, что push не масштабируется при миллионах подписчиков. AI соглашается и просит описать, как вы будете генерировать ленту: fan-out на лету или предварительная компиляция? Вы обсуждаете гибридный подход, и AI подмечает, что нужно учесть «горячих» пользователей с миллионами подписчиков — для них лучше использовать pull. В итоге вы получаете полную архитектуру: Cassandra для хранения постов, Redis для кэша лент, Kafka для асинхронной обработки.

3. Rate Limiter (ограничение частоты запросов)

Задача: Отработать проектирование rate limiter — классическая задача для Amazon и Google.

Промт:

Спроектируй rate limiter для публичного API, который должен выдерживать 10 млн запросов в секунду. Опиши алгоритмы (token bucket, leaky bucket, fixed window, sliding window), выбор хранилища (Redis, in-memory) и как обеспечить распределенность. Задавай вопросы, как интервьюер, и проверь мои знания на прочность.

Пример результата:

AI просит сравнить алгоритмы. Вы описываете token bucket, AI спрашивает: «Что будет, если в распределенной системе несколько инстансов?». Вы предлагаете Redis с Lua-скриптами для атомарности. AI одобряет и уточняет: «Какие заголовки ответа нужно добавить?». Вы перечисляете X-RateLimit-Remaining, X-RateLimit-Reset. AI резюмирует и отмечает, что вы забыли про 429 Too Many Requests и Retry-After — маленькая, но важная деталь.

4. Проектирование Distributed Cache

Задача: Научиться проектировать распределенный кэш, понимать консистентное хеширование и политики вытеснения.

Промт:

Спроектируй распределенный кэш, который используется для ускорения чтения данных в веб-приложении. Обсуди консистентное хеширование, репликацию, политики вытеснения (LRU, LFU), обработку сбоев. Задавай наводящие вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как вы распределите данные между узлами?». Вы отвечаете: «Консистентное хеширование». AI просит объяснить, что это, и вы описываете кольцо. AI задает каверзный вопрос: «Что делать при добавлении узла?». Вы объясняете, что только часть ключей перераспределится. AI доволен, но советует обсудить виртуальные узлы для балансировки нагрузки. В итоге вы получаете полное решение и понимание, как работает Memcached или Redis Cluster.

Продвинутые промты: для тех, кто уже умеет базу

5. Проектирование Чат-системы (как WhatsApp)

Задача: Изучить проектирование real-time приложения с WebSockets, очередями и хранением сообщений.

Промт:

Спроектируй чат-систему, поддерживающую групповые чаты, доставку сообщений в реальном времени и офлайн-сообщения. Учти масштабирование WebSocket-соединений, хранение истории, синхронизацию между устройствами. Задавай вопросы и проси обосновать каждый выбор.

Пример результата:

AI предлагает использовать WebSocket для real-time, а для офлайн-доставки — push-уведомления. Вы обсуждаете, как хранить историю: в Cassandra или ScyllaDB. AI спрашивает: «Как вы обеспечите порядок сообщений?». Вы предлагаете использовать timestamp + sequence number. AI указывает на проблему с часами сервера и предлагает использовать Lamport timestamps или Google TrueTime. Вы получаете глубокое понимание распределенных систем.

6. Проектирование Поисковой системы (мини-Google)

Задача: Разобраться в инвертированных индексах, ранжировании и масштабировании поиска.

Промт:

Спроектируй поисковую систему для интернета. Опиши инвертированный индекс, процесс индексации, ранжирование (TF-IDF, PageRank), обработку запросов и масштабирование. Задавай вопросы, как на интервью, и дай детальный фидбек.

Пример результата:

AI спрашивает: «Как вы построите индекс?». Вы описываете краулинг и инвертированный индекс. AI просит уточнить, как хранить индекс: в памяти или на диске. Вы обсуждаете сегментацию и merge. AI задает вопрос про ранжирование: «Как учесть авторитетность страницы?». Вы предлагаете PageRank, AI просит объяснить формулу. Вы пишете: PR(A) = (1-d)/N + d * Σ(PR(B)/L(B)). AI одобряет и советует упомянуть TF-IDF для релевантности. В итоге вы получаете полную картину.

7. Проектирование Notification Service

Задача: Научиться проектировать сервис уведомлений, который поддерживает разные каналы (email, SMS, push).

Промт:

Спроектируй сервис уведомлений, который отправляет миллионы уведомлений в день (email, SMS, push). Обсуди очереди, дедупликацию, обработку отказов, шаблоны и предпочтения пользователей. Задавай вопросы и дай развернутый фидбек.

Пример результата:

AI спрашивает: «Как вы обработаете нагрузку?». Вы предлагаете очередь (Kafka) и worker'ов. AI спрашивает про дедупликацию: «Как избежать двойной отправки?». Вы предлагаете использовать idempotency key, AI одобряет. Затем AI спрашивает про отказы: «Что если email-сервис недоступен?». Вы описываете retry с экспоненциальной задержкой и dead-letter queue. AI резюмирует и отмечает, что вы хорошо справились.

8. Проектирование Distributed File Storage (как Dropbox)

Задача: Изучить синхронизацию файлов, дедупликацию и конфликт-резолюцию.

Промт:

Спроектируй файловое хранилище с синхронизацией, как Dropbox. Опиши загрузку/скачивание, дедупликацию, версионирование, конфликт-резолюцию и масштабирование. Задавай вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как вы будете хранить файлы?». Вы предлагаете блочное хранение с дедупликацией. AI просит описать, как клиент определяет измененные блоки. Вы предлагаете использовать хеши. AI спрашивает про конфликты: «Что, если два пользователя редактируют один файл?». Вы описываете CRDT или last-writer-wins, но AI советует использовать version vectors. В итоге вы получаете полное решение.

Экспертные промты: для глубокого погружения

9. Проектирование Recommendation Engine (как Netflix)

Задача: Изучить офлайн- и онлайн-части рекомендательных систем, матричные факторизации и кандидат-генерацию.

Промт:

Спроектируй рекомендательную систему для видеоплатформы. Опиши сбор данных, офлайн-обучение (матричная факторизация, коллаборативная фильтрация), онлайн-сервинг, кандидат-генерацию и ранжирование. Учти холодный старт. Задавай вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как вы будете генерировать кандидатов?». Вы предлагаете использовать collaborative filtering (ALS). AI просит объяснить, как вы будете подавать признаки в модель. Вы обсуждаете one-hot encoding. AI спрашивает про холодный старт: «Что делать с новыми пользователями?». Вы предлагаете использовать популярные элементы или контентные признаки. AI одобряет и отмечает, что вы забыли про A/B тестирование. Вы получаете полное понимание.

10. Проектирование Distributed Transaction System (как банк)

Задача: Понять распределенные транзакции, саги, идемпотентность и консистентность.

Промт:

Спроектируй систему для обработки денежных переводов. Обсуди, как обеспечить атомарность, консистентность, обработку сбоев, саги, идемпотентность. Задавай вопросы и дай глубокий фидбек.

Пример результата:

AI спрашивает: «Как вы обеспечите атомарность?». Вы предлагаете использовать распределенные транзакции (2PC). AI спрашивает про производительность: «2PC медленный, что делать?». Вы предлагаете использовать саги с компенсациями. AI просит описать сценарий сбоя. Вы описываете, как откатить перевод. AI подмечает, что нужно добавить идемпотентность для повторных запросов. Вы получаете экспертное видение.

11. Проектирование System Design для IoT (умный дом)

Задача: Изучить особенности IoT: потоковые данные, ограниченные ресурсы, асинхронность.

Промт:

Спроектируй систему для умного дома: датчики, управление устройствами, аналитика. Обсуди протоколы (MQTT, CoAP), обработку потоковых данных, масштабирование, безопасность. Задавай вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как устройства будут общаться с сервером?». Вы предлагаете MQTT. AI просит объяснить, почему MQTT, вы описываете publish/subscribe. AI спрашивает про аналитику: «Как обрабатывать потоковые данные?». Вы предлагаете Kafka Streams или Flink. AI спрашивает про безопасность: «Как аутентифицировать устройства?». Вы предлагаете mTLS. AI одобряет и отмечает, что нужно подумать о резидентности. Вы получаете полное решение.

12. Проектирование Video Streaming Platform (YouTube)

Задача: Изучить CDN, адаптивный битрейт, транскодинг.

Промт:

Спроектируй видеоплатформу для стриминга. Опиши загрузку видео, транскодинг, CDN, адаптивный битрейт (HLS, DASH), каталог и рекомендации. Задавай вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как вы будете обрабатывать загруженное видео?». Вы предлагаете транскодинг в несколько битрейтов. AI спрашивает про CDN: «Как выбрать ближайший CDN-узел?». Вы предлагаете DNS-редирект. AI спрашивает про адаптивный битрейт: «Как клиент выбирает качество?». Вы описываете HLS и манифесты. AI подмечает, что нужно обсудить кэширование популярных видео. Вы получаете полное решение.

13. Проектирование Distributed Data Pipeline (ETL)

Задача: Изучить обработку больших данных: Kafka, Spark, хранилища.

Промт:

Спроектируй пайплайн для обработки событий (например, клики пользователей). Опиши ingestion, обработку (streaming vs batch), хранение, визуализацию. Обсуди exactly-once, масштабирование. Задавай вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как вы будете собирать события?». Вы предлагаете Kafka. AI спрашивает про обработку: «Streaming или batch?». Вы предлагаете Kafka Streams для real-time и Spark для batch. AI спрашивает про exactly-once: «Как гарантировать?». Вы описываете идемпотентные продюсеры и транзакционные потребители. AI одобряет и отмечает, что нужно рассмотреть схему данных (Avro). Вы получаете полное понимание.

14. Проектирование Real-time Analytics (как Google Analytics)

Задача: Изучить агрегацию данных, оконные функции, масштабирование.

Промт:

Спроектируй систему для real-time аналитики веб-сайта: количество посещений, активные пользователи, воронки. Обсуди сбор данных, оконные вычисления, хранилище. Задавай вопросы и дай фидбек.

Пример результата:

AI спрашивает: «Как вы будете агрегировать данные?». Вы предлагаете использовать Flink с оконными функциями. AI спрашивает про «активные пользователи»: «Как определить?». Вы описываете HyperLogLog для приблизительных уникальных значений. AI спрашивает про хранилище: «Куда писать агрегаты?». Вы предлагаете ClickHouse для аналитики. AI одобряет и отмечает, что нужно обсудить партиционирование. Вы получаете полное решение.

15. Симуляция полного интервью с AI-наставником

Задача: Полное интервью с неожиданными вопросами, ограничением по времени и фидбеком по soft skills.

Промт:

Проведи со мной полное собеседование по системному дизайну на 45 минут. Выбери случайную задачу (например, проектирование Twitter, Uber, или музыкального стриминга). Начинай с требований, затем задавай вопросы, как реальный интервьюер, не давая подсказок. В конце оцени мои ответы по 5 критериям: функциональные требования, нефункциональные, архитектура, масштабирование, коммуникация. Дай развернутый фидбек и советы по улучшению.

Пример результата:

AI выбирает «проектирование Uber». Вы начинаете с требований, AI задает вопросы о геолокации, подборе водителей, обработке платежей. AI не подсказывает, но если вы застреваете, он говорит: «Что вы будете делать, если водитель отменит заказ?». В конце AI оценивает вас: «Функциональные требования: 8/10, нефункциональные: 6/10, архитектура: 7/10, масштабирование: 7/10, коммуникация: 9/10». AI отмечает, что вы хорошо общаетесь, но забыли про отказоустойчивость. Это позволяет вам сфокусироваться на слабых местах.

Как использовать промты максимально эффективно

  • Не просто читайте промты, а проговаривайте ответы вслух — это тренирует речь и уверенность.
  • Комбинируйте промты: сначала базовый, потом продвинутый, потом экспертный по той же теме.
  • Записывайте свои ответы на диктофон и анализируйте, где вы запинаетесь.
  • Используйте промты для интервью с реальными людьми — AI-наставник не заменит живого собеседника, но отлично подготовит.

Почему это работает: опыт и источники

Я основываюсь на собственном опыте подготовки к собеседованиям в Amazon и Google, а также на материалах из открытых источников. Например, в книге «Designing Data-Intensive Applications» Мартина Клеппмана (O'Reilly) подробно описаны многие концепции, которые мы разбираем. Также полезны видеолекции курса Грокаем системный дизайн (Grokking the System Design Interview) от Design Gurus — они дают структурированный подход. Официальные документы, такие как Amazon's Leadership Principles, помогают понять, какие качества оценивают в кандидатах. Важно помнить, что собеседование — это не только технические знания, но и поведенческие компетенции (behavioral questions), поэтому тренируйте и их.

Финальный совет

Начните с простых задач, таких как URL-shortener, и постепенно переходите к сложным. Выделите 30 дней, по 2 часа в день, и вы увидите значительный прогресс. Помните, что системный дизайн — это навык, который требует практики. Используйте эти промты как основу, но не ограничивайтесь ими. Ищите новые задачи, читайте инженерные блоги (например, Netflix TechBlog, Uber Engineering), и вы будете готовы к любым вопросам. Удачи на собеседованиях!

← Все статьи

Комментарии

Читайте также

15+ промтов для ускорения SQL: как заставить PostgreSQL и MySQL летать

27 августа 2026

От пропсов до мемоизации: как ИИ пишет React-компоненты, которые не стыдно показать код-ревью

27 августа 2026

SQL-запросы как ракета: 15 промтов для отладки, оптимизации и проектирования баз данных

26 августа 2026

Как превратить ChatGPT в личного репетитора английского: 18 промтов, которые реально работают

26 августа 2026

Мультимодальный ИИ в деле: 15 промтов, которые превращают текст, картинки и видео в рабочие проекты

26 августа 2026

Легаси-код и ИИ: 10 промтов, которые превращают «болото» в чистую архитектуру

26 августа 2026

SQL-запросы и PostgreSQL: как ИИ превращает рутину в магию — 15 промтов для разработчика и аналитика

26 августа 2026

15 промтов для Excel и Google Sheets, которые превратят ваш хаос в чистую аналитику

26 августа 2026

От прототипа до продакшена за вечер: как собрать лендинг на промтах и не сойти с ума

25 августа 2026