Откуда вам это известно, Кан Мёнджин? — страница 45 из 91

Лифт остановился, двери открылись, и мы шагнули в сердце «MetaSpace» — большой опенспейс, залитый светом из панорамных окон. Столы были расставлены группами, повсюду виднелись мониторы, доски с диаграммами, на полках стояли прототипы каких-то устройств.

И да, вот теперь, видя людей вживую, верю, что мы в обители программистов. На какой ещё офисной работе настолько же вольный дресс-код?

Пэ Суджи провела меня мимо нескольких рабочих зон. Я мельком ловил взгляды сотрудников — в основном выражающие мимолётное любопытство. Я же, идя за HR-специалистом, впитывал информацию. Вот группа из шести человек, оживлённо обсуждающих что-то у большой доски, испещрённой схемами баз данных и API [3] (что за проект «Chronos»?). Я кожей чувствовал их сплочённость. Вот чуть поодаль сидят двое мужчин постарше, сосредоточенно глядя в мониторы, на которых видны архитектурные диаграммы (это архитекторы или разработчики?). А вон в дальнем углу, почти изолированно, сидит человек, от которого исходит едва уловимое напряжение, смешанное с… тревогой?

[3. API (англ. application programming interface) — программный интерфейс, то есть описание способов взаимодействия одной компьютерной программы с другими.]

Всё это были лишь мимолётные наблюдения, первые штрихи к портрету компании. Детали предстояло выяснить во время собеседования.

— Вот здесь, — Пэ Суджи остановилась у входа в просторную переговорную комнату, отделённую от опенспейса стеклянной стеной. Внутри за столом уже сидели двое мужчин. — Ко Донмён-ши, Им Чхольмин-ши, это Кан Мёнджин-ши. Я оставлю вас. Удачи, Мёнджин-ши!

Она улыбнулась мне на прощание и ушла. Я сделал глубокий вдох и вошёл в переговорную.

Мужчины поднялись мне навстречу. Один, помоложе, лет тридцати с небольшим, с энергичным взглядом и модной стрижкой, — вероятно, Ко Донмён, разработчик. Второй — постарше, лет сорока пяти, со спокойным, немного усталым лицом и в очках — архитектор Им Чхольмин. Оба были одеты неформально: джинсы, футболки, толстовки. Типичный вид людей, чья работа связана с кодом, а не с деловыми встречами. На их фоне мой новый, идеально сидящий тёмно-серый костюм выглядел несколько чужеродно. Пожалуй, он даже мог вызвать недоумение.

Нужно было как-то разрядить эту неловкость.

— Добрый день, — сказал я, пожимая им руки по очереди. — Кан Мёнджин. Надеюсь, мой костюм не слишком выбивается из общей атмосферы? Я как-то привык, что на собеседования стоит одеваться построже. Хотя лично я считаю, что смокинги куда стильнее, просто не всегда уместны.

Шутка, кажется, достигла цели. На лицах обоих собеседников появились улыбки.

— Вовсе нет, что вы, — ответил тот, что помоложе. — У нас тут свобода самовыражения. Главное, чтобы код был хороший. Присаживайтесь. Я Ко Донмён, отвечаю за разработку основной платформы.

— Им Чхольмин, архитектор, — представился второй. — Рад познакомиться.

Мы расселись за столом. Передо мной стояла бутылка воды и чистый блокнот с ручкой — стандартный набор. Я решил, что сейчас стоит полностью сосредоточиться на разговоре с этими людьми. Конечно, мое сознание фоном продолжало сканировать окружение, улавливать их эмоциональное состояние, отмечать нюансы в их поведении, но основное внимание было направлено на диалог. А вот Зазеркалье… Оно работало на полную катушку, но незаметно для собеседников. Пока я слушал их или отвечал на вопрос, в десятках параллельных реальностей я уже задавал им совершенно другие вопросы, проверяя реакции, нащупывая слабые места, собирая информацию.

«Какая сейчас самая большая техническая проблема в проекте „Chronos“?» — спрашивал я у Донмёна в одной из развилок.

«Насколько сильно технические решения зависят от мнения… хм, скажем, руководства или конкретных лидеров?» — уточнял я у Чхольмина в другой.

«Есть ли в архитектуре какие-то унаследованные части, которые все боятся трогать?»

«Часто ли приходится адаптироваться к изменению требований?»

Эти «призрачные» вопросы помогали мне формировать общую картину, пока реальный разговор тёк по стандартному руслу интервью.

Я не сомневался в успехе. С моими способностями провалить техническое собеседование было попросту невозможно. Любой вопрос, любая задача — ответ или решение находились мгновенно, стоило лишь заглянуть в нужную развилку, где я уже искал информацию в сети или даже «видел» правильный ответ в недавнем прошлом этого же офиса — на доске, в чьём-то коде, в обрывке разговора.

Интервьюеры оказались именно такими, как я и ожидал, — крепкими профессионалами. Было видно, что они ищут не просто исполнителя, а человека, способного усилить их команду. Они не стали гонять меня по абстрактным алгоритмическим задачкам, которые так любят на Западе. Вместо этого разговор сразу пошёл о практических вещах.

Начали с основ — буквально несколько вопросов по базовым концепциям Java, по работе с базами данных, по сетевым протоколам. Просто чтобы убедиться, что перед ними не случайный человек. В основном я отвечал лаконично, идеально попадая в их ожидания, — Зазеркалье подсказывало, насколько следует углубляться в детали.

Затем перешли к опыту. И вот здесь я развернулся. Опираясь на ту информацию, которую я успел собрать удалённо и продолжал собирать прямо сейчас, заглядывая в недавнее прошлое этого этажа, я конструировал свой вымышленный опыт так, чтобы он идеально ложился на их текущие потребности. Я «вспоминал», как решал проблемы с отказоустойчивостью распределённой системы, очень похожей на ту, что обсуждали у них в коридоре полчаса назад. Я рассказывал о проектировании API для сложной интеграции, используя терминологию и подходы, которые явно были им близки (я видел похожие схемы на одной из досок). Я «делился опытом» работы с той самой специфической платформой для IoT-устройств [4], которую, как я уже понял, они активно использовали в проекте «Chameleon». Каждый мой ответ был не просто технически верным, он полностью соответствовал их реальности.

[4. Интернет вещей (Internet of things, IoT) — это реальные, физические устройства, подключённые к Интернету.]

Ко Донмён слушал меня с растущим интересом, кивая, иногда задавая уточняющие вопросы. Было видно, что мой «опыт» его впечатляет.

Но ещё больше впечатлён был архитектор, Им Чхольмин. Поначалу он слушал немного отстранённо, но по мере того, как я отвечал, его взгляд становился всё более внимательным и заинтересованным. Когда основная часть вопросов об опыте была исчерпана, он взял инициативу на себя.

— Мёнджин-ши, — начал он, поправляя очки, — позвольте задать пару вопросов несколько иного характера. Скорее, на видение… Как бы вы подошли к проектированию системы кэширования для обработки, скажем, миллиона запросов в минуту к какому-нибудь API статистики? Какие уровни кэша вы бы использовали?

Интересно, а какой уровень ожидаем для обычного разработчика? Один лишь вопрос, что такое уровни кэширования и какими они бывают, — это уже вызов для разработчика, если он не изучал тему целенаправленно. И даже если изучал — обычный программист без опыта работы с этим конкретным паттерном на подобный вопрос ответить не сможет.

Я, разумеется, мгновенно нашёл в Зазеркалье несколько оптимальных решений, выбрал наиболее элегантное и соответствующее тому уровню технологий, который я «ощущал» в компании, и подробно изложил его.

Чхольмин кивнул, явно удовлетворённый.

— Интересный подход. А если говорить об эволюции платформы… Представьте, что нам нужно открыть часть нашего API для сторонних разработчиков. Какие ключевые принципы безопасности и версионирования вы бы заложили в архитектуру такого публичного API?

Снова вопрос, который совершенно выбивается из всего, что ожидается от обычного программиста. Донмён вон вообще не представляет, что тут можно ответить, и ему самому интересно узнать ответ. Версионирование — с этим любой разработчик API сталкивался, а вот принципы безопасности — это что-то ну очень абстрактное. Опять-таки без изучения специальных курсов или литературы ответить невозможно. По крайней мере в деталях.

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

Наконец Им Чхольмин откинулся на спинку стула и обменялся взглядами с Ко Донмёном.

— Спасибо, Мёнджин-ши, — сказал Чхольмин. — Это было очень содержательно. У нас, пожалуй, больше нет технических вопросов. Коллега?

Донмён кивнул.

— Да, у меня тоже вопросов нет. Технически вы нам определённо подходите. Даже более чем, я бы сказал. Теперь, Мёнджин-ши, возможно, у вас есть вопросы к нам? О команде, проектах, условиях?

Настал мой черёд. Это был именно тот момент, которого я ждал. В реальности я задам пару стандартных, ожидаемых вопросов. Но в альтернативных мирах… там начнётся настоящий допрос.

Глава 24

Проклятый баг. Бэ Душик в очередной раз впился взглядом в строки кода на мониторе, чувствуя, как раздражение уже начинает медленно закипать где-то в глубине. Уже третий час он бился над этой ошибкой в модуле статистики «Chronos» — данные агрегировались некорректно при пиковых нагрузках, но в совершенно непредсказуемые моменты. Логи молчали, тесты проходили идеально. Это была одна из тех проблем, которые высасывают все соки, заставляя сомневаться в собственном здравомыслии. Вокруг привычно гудел опенспейс: стук клавиатур, тихие переговоры коллег у соседней доски, где Рю Джиэ снова что-то яростно доказывала, размахивая маркером, гул вентиляторов серверной стойки в дальнем конце зала. Обычный рабочий шум, который Душик давно научился игнорировать, но сегодня он словно царапал по нервам. Ему нужна была тишина и полная концентрация, а не вот это вот всё.