TGViewer
Кода кода Кода кода @kodakodacast · 3.87K subscribers
Post #453 1.35K
Радио «Виктор»: да чего хотят эти собеседующие?
Сегодня мой друг рассказал историю. Будучи молодым и неопытным, но толковым специалистом, он проходил систем-дизайн собеседование в крупную компанию. Речь зашла о том, сколько серверов нужно, чтобы держать миллион websocket‑коннектов. А про коннекты он тогда знал немного, опыта эксплуатации такой системы не было, да и собеседование казалось страшным.

Вот как он вспоминает тот диалог (от первого лица).
Он: Сколько серверов поставим?
Я (ну, выступлю за экономию, но и чтобы не падать одновременно всем сервисом): Пять.
Он: ТЫ УВЕРЕН???
Я (ни в чём, конечно, не уверен): Ну, тут же есть трейд‑офф: чем больше серверов, тем надёжнее, но и дороже…
Он (перебивает): ТАК СКОЛЬКО???
Я: Ну, в целом, двадцати серверов должно хватить: мы же умеем их хорошо настраивать и бэк напишем грамотно…
Он: ТО ЕСТЬ ДВАДЦАТЬ???
Я (ну какую цифру тебе надо сказать‑то?): Мы можем взять много дешёвых серверов, это может выйти даже выгоднее…
Он: ТАК ИТОГО СКОЛЬКО???
Я (ну надо уже на чём‑то остановиться, чтобы не выглядеть совсем жалко): Двадцать, на мой взгляд, разумная цифра.
Он: ТО ЕСТЬ ДВАДЦАТЬ???
Я: ДА!


Так чего хотел интервьюер?
Верно ли, что 22 его устроит, а 17 — нет? Я уверен, что нет. Если бы я задавал такой вопрос, я бы ждал от кандидата не «правильное число», а следующее.

Рассуждений
Мне важно, что человек может сделать пару логических ходов. Например:
- «Нам точно нужно больше одного сервера для отказоустойчивости.»
- «У нас, по условию, три датацентра, значит нам нужно число серверов кратное трём.»

Поиска ограничений
Мне важно, чтобы кандидат искал то, что станет узким горлышком. И не так важно, насколько реалистичное «горлышко» он найдёт — если нужно, я подскажу. Например:
- «Хм, наверное, с нашим паттерном нагрузки мы упрёмся в сеть. Вот мои расчёты, а ещё я знаю, что бывают 10GiB‑карты, значит…»
- «Ты спрашиваешь, сколько серверов нужно, чтобы держать миллион websocket‑коннектов. А во что мы упремся? Ну, каждый вебсокет — это открытый файловый дескриптор, а их не более 65k…»

Опыта эксплуатации
Если я ищу кандидата, который такие системы уже строил, то я хочу видеть реальный опыт. Например:
- «В нашем продукте всего 1000 соединений, и они нагружают не более одного ядра CPU. Значит здесь нужно примерно 1000 ядер…»
- «Однажды я посчитал, что один сервер держит 100 соединений, и мы купили 10 серверов, чтобы выдержать 1000. А оказалось, что мы не умеем балансировать нагрузку и получили перекос в 4 раза. Тогда мы поставили ещё L4…»

Планирования
Особенно если это тимлид, я хочу видеть, как человек добывает те знания, которых у него нет. Например:
- «Я сходу не знаю, сколько точно нужно серверов, но вот как я бы поставил эксперимент, чтобы это выяснить…»
- «Когда я сейчас планирую капасити, я действую вот так…»

А еще я могу задать этот вопрос, чтобы понять готов ли кандидат отстаивать свою точку зрения, если уверен в ней? Поменяет ли ее, если получит новые аргументы?

Мне кажется важным осознанно подходить к каждому вопросу на собеседовании и понимать что и зачем мы спрашиваем. Еще я часто после ответа кандадата рассказываю опыт нашей команды в этой области и так сразу знакомлю его с тем, чем придется заниматься. Например: «У нас в этой команде нет сервисов с вебсокетами, но есть gRPC стримы, и вот там...»
  • 👍 14
  • 🔥 11
  • ❤ 6
More from @kodakodacast
  1. Sep 9, 2026Как (не)читать книги и работать с информацией Читать умеют все, но не все знают, как делат…
  2. Aug 28, 2026Осень на пороге, а у нас в сообществе Менеджмент Хаб готово расписание встреч сообщников н…
  3. Aug 26, 2026Привет! Я узнал, что я менеджер примерно через три года после того, как им стал. У нас как…
  4. Aug 12, 2026Системы контроля версий 1.0 Пулл, пуш, мерж, конфликт — обычный вторник для тех, кто работ…
  5. Aug 7, 2026Привет! А я тут, на досуге, запилил еще один подкаст с профессиональным игроком в Го Савва…
  6. Jul 29, 2026Радио «Виктор»: философское Всем, кто пользовался LLM, знакомо пугающее чувство, что машин…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →