Будильник прозвенел в семь утра, но я проснулась задолго до него. Лежала на жёсткой койке и смотрела в потолок, где паук методично плёл паутину в углу. Сегодня предстояло доказать, что я не пустое место. Что восемь лет моей жизни, потраченные на создание «Хроноса», чего-то да стоят.
В общей ванной умылась холодной водой, прогоняя остатки тревожного сна. В зеркале отражалась женщина с решительным взглядом и морщинкой между бровями. Сегодня я иду на войну. И должна выглядеть соответственно.
Из чемодана достала строгие чёрные брюки, белую рубашку и тёмно-синий пиджак. Деловой костюм, который не кричит о статусе, но говорит о профессионализме. Волосы собрала в низкий пучок, минимум косметики. Образ серьёзного технического специалиста.
Дорога до офиса заняла час. TechDrive располагался в современном бизнес-центре на Ленинградском проспекте. Закрытая лаборатория находилась на восьмом этаже, доступ только по специальным пропускам.
Даниил встретил меня в холле. Лично. И это, если честно, приятно удивило. Поздоровавшись, он повёл меня к лифтам.
– Готовы познакомиться с командой?
– Более чем, – кивнула я.
Лаборатория поразила. Открытое пространство с десятками мониторов, стеклянные переговорные, современные эргономичные кресла. На стенах интерактивные доски с диаграммами и схемами. Пахло кофе и той особой атмосферой творческого хаоса, которая всегда сопровождает серьёзную разработку.
– Ребята, знакомьтесь, – громко объявил Даниил. – Арина, наш новый технический консультант по архитектуре систем.
Ко мне подошёл мужчина лет тридцати пяти, худощавый, в потёртой футболке с логотипом GitHub. Длинные волосы небрежно собраны в хвост, усталые глаза за очками в тонкой оправе.
– Максим Петров, тимлид, – представился он без особого энтузиазма. – Ещё одного консультанта? Серьёзно?
В его голосе читалось плохо скрытое раздражение.
– Сколько можно, – продолжил бормотать он, хмуро глядя на Даниила. – Мы и так завалены работой, а тут очередной теоретик будет учить нас жизни.
– Макс, какая муха тебя укусила? Не с той ноги встал? Выскажешь мне все свои претензии наедине, сейчас это неуместно, – начал было Даниил, недовольно прищурившись, но я его остановила жестом.
– Понимаю ваш скептицизм, Максим, – спокойно сказала я. – Консультанты обычно много говорят, часто весьма красиво, но и только. Правильно?
Тимлид удивлённо поднял брови, явно не ожидая такой прямоты и спокойствия. Он видел, что его слова меня вовсе не задели, напротив, я едва заметно усмехнулась. Нетипичная реакция на его подначивание.
– Ну… в общем-то да. Не обижайтесь, но у нас был печальный опыт. И не раз.
– Не обижаюсь. Предлагаю простое решение: дайте мне задачу. Любую техническую проблему, которая у вас есть. Если справлюсь, значит, не зря сюда пришла.
Максим обменялся взглядами с коллегами. В их глазах читался интерес, смешанный с недоверием и щедрой щепоткой скептицизма.
– Хорошо, – сказал он и провёл меня к одному из рабочих мест. – Видите этот модуль интеграции с внешними API? Он тормозит всю систему. Мы бьёмся над оптимизацией уже три недели. Время отклика неприемлемо медленное, а нагрузка растёт.
Я посмотрела на экран. Код был написан грамотно, но неоптимально. Классическая проблема синхронных запросов и отсутствия кэширования.
– Можно час времени? – спросила я.
– Конечно. Удачи, – в голосе Максима прозвучала плохо скрытая ирония. – Но, думаю, часа мало будет, потому сколько угодно времени в вашем распоряжении.
– Шестидесяти минут вполне хватит, – повторила я и села за компьютер. Вскоре работа увлекла, я погрузилась в неё с головой, позабыв об окружающем мире. Знакомое состояние концентрации, где есть только логика, алгоритмы и элегантность решений.
Проблема была в том, что система делала отдельный запрос к каждому API последовательно. Я переписала модуль, внедрив асинхронную обработку и многоуровневое кэширование. Добавила пул соединений и оптимизировала работу с памятью.
Через сорок минут я откинулась в кресле.
– Готово, – объявила я.
Максим подошёл, недоверчиво покачивая головой.
– Так быстро? Сомневаюсь, что…
Он посмотрел на экран и замолчал. Потом склонился ближе, изучая код.
– Чёрт возьми, – пробормотал он. – Асинхронный пул… кэширование на трёх уровнях… Это же… это должно дать прирост производительности в разы!
– Запустим тесты? – предложила я.
Он кивнул, всё ещё, как загипнотизированный, рассматривая мои изменения. Команда собралась вокруг, наблюдая за результатами нагрузочного тестирования.
Цифры на экране говорили сами за себя. Время отклика сократилось с восьми секунд до полутора. Пропускная способность выросла в четыре раза.
– Блин, – выдохнул один из разработчиков. – Мы месяц голову ломали…
Тимлид выпрямился и посмотрел на меня совершенно другими глазами.
– Ладно, – сказал он, и в его голосе не осталось и следа скептицизма. – Возможно, я поторопился с выводами. Добро пожаловать в команду!
И протянул мне раскрытую ладонь для пожатия.
– Только не обижайтесь за эту проверку. Приходилось иметь дело со… специалистами, которые красиво говорили, но на деле оказывались пустышками.
– Понимаю, – улыбнулась я. – Я бы на вашем месте тоже проверила.
Остаток утра прошёл в обсуждении технических деталей будущего проекта. Команда оказалась сильной: восемь опытных разработчиков, каждый эксперт в своей области. Они слушали мои идеи с растущим энтузиазмом.
В час дня Даниил пригласил меня в свой кабинет.
– Впечатления? – спросил он, закрывая дверь.
– Прекрасная команда. С такими людьми можно творить самые настоящие чудеса.
– Отлично! Тогда мой следующий вопрос: каковы ваши ожидания по оплате?
Я пожала плечами. Я ас в написании программ. Вся моя жизнь всегда сводилась к работе. И я мало на что обращала внимания за пределами своей зоны комфорта. Сейчас, оказавшись за бортом из-за предательства мужа, начала осматриваться и замечать то, чего раньше просто не видела. И узнавать. В том числе озаботилась поиском информации по уровню зарплат у профессионалов моего уровня.
– Рыночная ставка для таких специалистов как вы – шестьсот-семьсот тысяч в месяц.
Не солгал, не преуменьшил. Ещё один плюсик ему в карму.
– Я готов предложить шестьсот пятьдесят плюс бонусная программа по результатам проекта. Устроит?
– Более чем, – я замешкалась на секунду и всё же зачем-то поддалась порыву и добавила: – В «Romanov Motors» я получала сто двадцать как «технический директор».
Даниил изумлённо поднял брови:
– Серьёзно? Романов ещё и недоплачивал вам… Никак в голове не укладывается.
– Я была женой, а не наёмным работником, – передёрнула плечами я.
– Тогда добро пожаловать в TechDrive Solutions!
Первый этап был скреплён крепким рукопожатием.
– Договор будет готов завтра, тогда и оформим всё на бумагах, – не скрывая довольства, улыбнулся Смерчев.
***
Интерлюдия
В тот же день, в половине десятого утра, в офисе «Romanov Motors» царила атмосфера плохо скрытой паники. Константин Романов стоял у панорамного окна своего кабинета и смотрел на Москву, пытаясь справиться с нарастающим раздражением.
За спиной его, за массивным столом из чёрного дерева, сидел Илья Семёнов – двадцативосьмилетний программист, которого неделю назад назначили исполняющим обязанности технического директора. Молодой человек выглядел так, словно не спал несколько суток подряд. Его обычно аккуратная рубашка была помята, галстук сдвинут набок, а под глазами залегли тёмные круги.
– Константин Георгиевич, – голос Ильи дрожал от усталости, – я не могу один тянуть всю архитектуру системы. «Хронос» даёт критические сбои каждый день. Система не выдерживает растущей нагрузки – архитектура изначально не была рассчитана на такие объёмы. Модуль интеграции с банковскими системами встал намертво, пользователи жалуются на постоянные зависания…
– И что ты предлагаешь? – холодно спросил Костя, не оборачиваясь.
– Арина Михайловна знала каждый модуль, каждую строчку кода, – выпалил Семёнов. – Она держала в голове всю архитектуру. Я был только её заместителем, я не понимаю половины решений, которые она принимала…
– Арины Михайловны здесь больше нет, – резко оборвал его Романов. – Ты теперь технический директор, вот и директорствуй!
– Но я не успеваю! – в голосе программиста прорезались нотки отчаяния. – IPO через два месяца, а система разваливается. Клиенты требуют обновления, которые я не знаю, как реализовать. Арина Михайловна оставила документацию, но там только общие схемы, а детали реализации были у неё в голове.
Романов развернулся, и Илья невольно сжался под его пронизывающим взглядом.
– Ты хочешь сказать, что моя бывшая жена была настолько незаменима?
– Константин Георгиевич, вы не понимаете… Она создавала «Хронос» в течение многих лет. Каждый алгоритм, каждое структурное решение проходило через неё. Я знаю свой участок работы, но не всю систему целиком.
В кабинет без стука вошла Елена Викторовна Краснова, HR-директор компании, элегантная женщина лет сорока пяти в безупречном костюме. В руках у неё была папка с документами.
– Константин Георгиевич, у нас проблема, – сказала она без предисловий. – За неделю мы лишились трёх ключевых разработчиков: двое уволились сами, одного переманили конкуренты. Команда разваливается.
– Причины?
– Отсутствие технического лидерства. Люди не понимают, в каком направлении развивается проект. Семёнов, – она кинула холодный взгляд на замершего мышкой Илью, – Илья, прошу прощения, вы – хороший специалист, но далеко не уровня Арины Михайловны.
Константин сел в своё кресло, массируя виски. Впервые за много лет он чувствовал, что ситуация выходит из-под контроля.
– До IPO семь недель, верно? – спросил он.
– Да, семь недель, – кивнула Елена. – И если технические проблемы не будут решены, инвесторы могут отказаться от размещения.
– Варианты решения?
HR-директор раскрыла папку:
– Я связалась с рекрутинговыми агентствами. Нам нужен супер-специалист международного уровня. Архитектор систем с опытом масштабирования крупных проектов.
– Есть кандидаты?
– Несколько. Алексей Воронин из Яндекса, готов рассмотреть предложение за полмиллиона в месяц. Дмитрий Кузнецов из Сбертеха – за миллион. Есть также зарубежные кандидаты.
Константин нахмурился:
– Миллион за программиста?
– За архитектора уровня вашей бывшей супруги, – спокойно поправила Елена Викторовна. – Люди такого класса на дороге не валяются.
– А сколько мы платили Арине?
– Сто десять в месяц, – Елена Викторовна не смогла удержать осуждения в голосе. – При том, что рыночная стоимость её экспертизы составляла не менее пятисот тысяч.
Константин почувствовал, как внутри него растёт глухое раздражение.
– Пусть так, – чуть ли не прорычал он после долгой паузы. – Бюджет до полутора миллионов рублей. Найдите мне подходящего программиста.
– Хорошо, – не стала спорить Елена Викторовна. – Начну переговоры немедленно.
Оставшись один, Константин даже не шевельнулся. Он, не мигая, глядел на небольшую фотографию в серебряной рамке, стоявшую справа от монитора: он и Арина на корпоративе три года назад. Она улыбалась, обнимая его за плечи, счастливая и доверчивая.
Романов взял рамку в руки, продолжая всматриваться в лицо женщины, которую предал. Впервые за прошедшую неделю в груди шевельнулось что-то похожее на сожаление.
«Может быть, я совершил ошибку?», – мелькнула крамольная мысль.
Но она тут же была подавлена. Слишком поздно для сожалений. Слишком много сказано и сделано. Яна ждёт предложения руки и сердца, её отец готов инвестировать триста миллионов долларов, а IPO должно состояться любой ценой.
Константин положил фотографию в ящик стола лицом вниз.
– Я найду лучшего специалиста в мире, – сказал он в пустоту. – И докажу всем, что Константин Романов может обойтись без кого угодно. Мой гений неоспорим.