Неофициальное зеркало публичных страниц Telegram. Контент загружается с t.me. Оригинал: t.me
Листала Reddit и нашла подборку из 45 вопросов для подготовки к System Design интервью, которые задают в международных топ-компаниях.

А от меня — самое важное: как развернуто комментировать свои решения на таком собеседовании:

1️⃣ Начало обсуждения — уточняем задачу

🔸 Let’s clarify the requirements first.
➡️ Давайте сначала уточним требования.
🔸 What scale are we designing for?
➡️ Для какого масштаба мы проектируем?
🔸 Do we need strong consistency or eventual consistency?
➡️ Нам нужна строгая согласованность или eventual consistency?

2️⃣ Описание системы в целом

🔸 At a high level, the system will consist of…
➡️ На высоком уровне система будет состоять из…
🔸 We can break this into several components.
➡️ Мы можем разделить это на несколько компонентов.
🔸 Let’s start with a basic working solution…
➡️ Давайте начнем с простой работающей версии…

3️⃣ Обсуждаем ключевые части архитектуры

На этом собеседовании вопросы могут быть про многое: кэширование, очереди, лимитеры, распределённые очереди, аналитические системы и т.д. Убедитесь до встречи, что вы знаете, как называется и звучит каждый термин на английском. Иногда произношение может подвести сильнее, чем архитектура.

🔸 We should use caching here to reduce load.
➡️ Нам стоит использовать кэш здесь, чтобы уменьшить нагрузку.
🔸 We can introduce a message queue for asynchronous processing.
➡️ Мы можем ввести очередь сообщений для асинхронной обработки.
🔸 Load balancers help distribute traffic across instances.
➡️ Балансировщики нагрузки помогают распределять трафик между инстансами.

4️⃣ Говорим о масштабировании

🔸 Horizontal scaling will allow us to handle more traffic.
➡️ Горизонтальное масштабирование поможет нам обрабатывать больше трафика.
🔸 The trade-off here is between simplicity and performance.
➡️ Здесь компромисс между простотой и производительностью.
🔸 If we optimize for latency, we might increase complexity.
➡️ Если мы оптимизируем задержку, мы можем увеличить сложность.

5️⃣ Когда не уверены или думаете вслух

Даже если вы не уверены, важно проговаривать рассуждения.

🔸 Let me think this through.
➡️ Дайте подумать.
🔸 I’m not 100 % sure, but one option could be…
➡️ Я не полностью уверен, но одним из вариантов может быть…
🔸 We could iterate on this design based on constraints.
➡️ Мы можем доработать этот дизайн с учётом ограничений.

Теперь вопрос к вам, коллеги: я подумываю включить тренировку live coding interview и system design interview в курс «Английский для собеседований» (версия для разработчиков).

Как считаете, нужно? Сделаю, если наберём 50 реакций! 👍

Назад