— Ты вообще собираешься выходить в таком виде?
Ольга стояла у зеркала в прихожей. Она только что поправила серёжку и ещё не успела убрать руку, когда услышала этот вопрос. Не риторический. Настоящий, с ожиданием ответа. Владимир смотрел на неё из дверного проёма, уже в костюме, с галстуком, уложенными волосами. Сорок два года, и он умел выглядеть так, словно жизнь складывалась именно так, как он всегда и планировал.
— Я никуда не собираюсь, — сказала Ольга. — Ты же сам сказал, что не нужно.
— Я сказал, что подумаю. — Он поправил запонку. — Я подумал.
— И?
— И нет. — Он произнёс это очень ровно, без интонации, как диктует короткое деловое письмо. — Там будет Соколов. И Харченко с женой. И инвестор из Москвы. Я не могу прийти с... — Пауза была аккуратной и очень длинной. — С тобой в нынешнем виде. Это испортит весь вечер.
Ольга не отвела взгляд от зеркала. Она смотрела на своё отражение вместе с его отражением за спиной, и это было похоже на какую-то театральную мизансцену, в которой роли распределили без её участия. Тридцать восемь лет. Лишние двенадцать килограммов, которые прилипли к ней за два года гормональной терапии и никуда не торопились уходить. Круглое лицо, в котором она с трудом узнавала себя прежнюю.
— Понятно, — сказала она.
— Не дуйся. Это не личное. Это рабочее мероприятие.
— Я не дуюсь.
— Оля. — В его голосе появилось что-то, что она когда-то принимала за нежность, а теперь просто называла про себя «интонацией переговоров». — Ты же понимаешь ситуацию. Сегодня я представляю «Авалон» Соколову и инвестору. Это полтора года работы. Мне нужно, чтобы всё было безупречно.
— Езжай, — сказала она. — Всё будет безупречно.
Он взял ключи. Потом пиджак. Потом остановился у двери и, не оборачиваясь, добавил:
— Закажи себе что-нибудь поесть. Не жди меня.
Дверь закрылась. Ольга ещё секунд десять смотрела в зеркало. Потом отвернулась.
В квартире стало очень тихо. Этот вид тишины она знала хорошо. Не успокаивающей, не уютной. Тишины, в которой слышно, как работает холодильник и где-то за окном сигналит машина, а ты стоишь посреди прихожей и не можешь сразу решить, куда идти.
Ольга прошла на кухню. Налила воды, выпила половину стакана. Поставила стакан на стол рядом с ноутбуком. С ноутбуком Владимира, который он почему-то оставил. Его рабочий ноутбук, который он никогда не забывал, всегда брал с собой, охранял, как что-то очень ценное.
Она смотрела на него секунды три. Потом подошла и открыла крышку.
Экран не был заблокирован. На нём висела открытая презентация. Пауэрпоинт, слайды с корпоративным логотипом компании, где работал Владимир. Название проекта на первом слайде было крупным и синим. «Авалон. Система предиктивной аналитики для финансовых рынков. Автор концепции и разработки. В. А. Сорокин».
Ольга взяла стул и села.
Она листала слайды медленно. Не потому что плохо понимала. Потому что хотела убедиться, что понимает правильно. На пятом слайде появилась блок-схема алгоритма. На седьмом. структура базы данных. На девятом. фрагменты кода с комментариями.
Комментарии были на русском. Её комментарии. Её манера писать, которую она давно знала: никогда не «функция», всегда «блок». Никогда «массив», всегда «вектор». Она писала так три года подряд, пока работала дата-саентистом в аналитическом стартапе, пока по вечерам разрабатывала этот самый алгоритм в их тогдашней маленькой квартире, за их тогдашним деревянным столом, и Владимир приносил ей чай и говорил «ты умница» и «расскажи, как это работает».
Она рассказывала.
Он слушал. Оказывается, очень внимательно.
Ольга закрыла глаза. Потом открыла. Потом дочитала презентацию до конца.
На последних слайдах был раздел с тестированием. Графики нагрузки, метрики производительности, прогнозируемые результаты. Всё выглядело убедительно. Всё выглядело так, как должно выглядеть в презентации для инвестора.
Кроме одного.
Ольга снова открыла слайд с кодом. Нашла нужный блок. Прочитала. Потом ещё раз.
Она помнила этот фрагмент. Помнила, потому что именно здесь, в обработчике пиковых нагрузок, у неё был черновик, который она так и не доработала. Она знала, что алгоритм работает стабильно при стандартных условиях. Она знала, что при резком одновременном всплеске запросов выше определённого порога. этот блок ломается. Не красиво, не с предупреждением. Просто перестаёт считать правильно и начинает выдавать данные с накапливающейся погрешностью, которая при финансовых расчётах означает одно: потери. Не сразу заметные. Очень болезненные потом.
Она не успела это исправить, потому что в тот период начались первые попытки. Врачи, анализы, протоколы. Она ушла из стартапа «на время», и время это затянулось. А алгоритм. алгоритм остался в ноутбуке, к которому у Владимира был доступ, потому что они тогда ещё делились паролями и считали это нормальным.
Ольга встала. Прошла в комнату. Открыла шкаф.
На дальней вешалке висело изумрудное платье. Бархатное, с корсетом, с широкой юбкой до пола. Она купила его восемь месяцев назад на распродаже, в один из тех дней, когда ненадолго решила, что возьмёт себя в руки и начнёт жить по-другому. Потом передумала. Потом забыла. Потом вспоминала иногда с лёгким стыдом: ну куда ей такое, в каком состоянии, с какой фигурой.
Она взяла платье в руки. Подержала. Повесила обратно.
Пошла в ванную, включила воду и долго стояла под душем. Очень долго, почти неподвижно, просто позволяя воде быть горячей.
Потом вышла. Вытерлась. Встала перед зеркалом в ванной, которое было меньше, чем в прихожей, и поэтому показывало только лицо и плечи.
Лицо было усталым. Но не таким, каким она его видела в последние месяцы. В нём что-то изменилось. Не внешне. Просто взгляд стал другим. Не потухшим. Не смирившимся. Чем-то, что она не сразу опознала, а когда опознала, немного удивилась.
Злостью. Спокойной и очень ясной.
Она вернулась к шкафу и снова взяла платье.
Корсет застёгивался сзади, и ей пришлось повозиться. Молния шла туго. Она дышала ровно и затягивала застёжку сантиметр за сантиметром. Потом встала и снова посмотрела в зеркало. Большое, в полный рост, то самое, в прихожей.
Платье сидело. Не идеально, не так, как на манекене. Но оно сидело на ней, на её теле, которое было именно таким, каким было, и это тело в изумрудном бархате выглядело. по-другому. Не так, как она ожидала.
Ольга сделала макияж. Она помнила, как это делается. Руки вспомнили сами. Контур, тени, помада. Тёмно-красная, которую она не открывала года полтора.
В коробке из-под обуви, на верхней полке, лежала венецианская маска. Они привезли её из Венеции пять лет назад, в последний раз, когда ездили вместе куда-то, и Ольга тогда сказала, что маска красивая, а Владимир ответил «ну купи, если хочешь». Белая, с золотым орнаментом, закрывающая верхнюю часть лица. Она надела её и посмотрела в зеркало.
Потом сняла. Взяла телефон. Вызвала такси.
Пока ждала, открыла приложение с картой. Отель был в центре, двадцать минут езды. Бал-маскарад, корпоративное мероприятие крупной айти-компании. Она знала название отеля, потому что слышала его от Владимира несколько раз за последний месяц. «В «Гранд Палас»», «там, в «Гранд Палас»», «Соколов забронировал весь банкетный зал в «Гранд Палас»».
Такси пришло. Водитель, немолодой мужчина с внимательными глазами, посмотрел на неё в зеркало заднего вида, когда она садилась, и ничего не сказал. Просто спросил адрес и поехал.
За окном мелькал город. Фонари, витрины, силуэты прохожих. Ольга смотрела в окно и думала о коде. Не о Владимире. О конкретном блоке, о конкретной ошибке, о том, как именно она проявит себя при пиковой нагрузке. Она думала об этом так же, как думала раньше, когда работала. Чётко, пошагово, без эмоций.
Маска лежала у неё в сумочке.
В холле отеля было людно. Дамы в вечерних платьях, мужчины в костюмах, несколько человек в масках. Корпоратив предполагал маскарадный дресс-код, хотя, судя по всему, не все его соблюли. Ольга надела маску ещё в такси, поправила её в зеркале на телефоне и вошла в холл уже в ней.
Регистрация гостей была у входа в банкетный зал. Женщина со списком посмотрела на Ольгу вопросительно.
— Добрый вечер, — сказала Ольга. — Я приглашена от компании «ТехноСфера».
— Фамилия?
— Сорокина.
Женщина нашла в списке. Посмотрела, чуть дольше, чем нужно.
— Ольга Сорокина?
— Да.
— Проходите, пожалуйста.
Банкетный зал был большим. Круглые столы со свечами, живая музыка, негромкая, почти фоновая. Ольга остановилась у входа и начала методично осматривать зал. Владимира она нашла быстро. Он сидел за столиком ближе к дальней стене, в хорошей компании. Мужчина лет пятидесяти с короткой седой бородой. это, судя по всему, был Соколов, генеральный директор. Рядом с ним. мужчина моложе, лет сорока, в дорогом пиджаке без галстука, с телефоном в руке. Инвестор.
Владимир что-то рассказывал. Жестикулировал. Смеялся в нужных местах.
Ольга взяла бокал с подноса проходящего официанта. Воды. Прошла через зал. Остановилась у соседнего столика, который был наполовину свободен, и села так, чтобы видеть их, но быть немного в тени. Маска делала своё дело. Под ней она была никем. Точнее. никем конкретным.
Она слушала.
Владимир говорил об «Авалоне» легко, уверенно, с той интонацией, которую Ольга хорошо знала. Он умел говорить о сложных вещах просто. Не потому что понимал их глубоко, а потому что умел подбирать слова, которые звучали убедительно для людей, которые не занимались этим предметно. Это был настоящий талант. Отдельный от понимания. Ольга это знала давно.
— Алгоритм работает на трёхуровневой нейросетевой архитектуре, — говорил Владимир. — Нижний уровень. сбор и нормализация данных в реальном времени. Средний. предиктивный блок, собственно ядро системы. Верхний. интерфейс принятия решений с настраиваемым порогом риска.
— И сколько вы тестировали в реальных условиях? — спросил инвестор.
— Шесть месяцев. На данных прошлых периодов и в параллельном режиме с реальными транзакциями. Расхождение с эталоном. не более двух процентов.
— При каких нагрузках тестировали?
— При стандартных рыночных. — Владимир чуть помедлил. — Плюс стресс-тест при двукратном превышении.
Соколов кивал. Инвестор смотрел в телефон. Ольга поставила бокал на стол.
Она встала. Подошла к их столику. Владимир посмотрел на неё как на постороннего человека, которого вдруг нет смысла игнорировать.
— Простите за вмешательство, — сказала Ольга. — Я случайно услышала часть разговора. Вы говорите об «Авалоне»?
— Да, — сказал Соколов. — А вы имеете отношение к айти?
— Аналитика данных. — Она улыбнулась. Маска скрывала половину лица, но улыбку скрыть не может никакая маска, она меняет всё остальное. — Не могу не спросить. Вы упомянули стресс-тест при двукратном превышении нагрузки. А при трёхкратном проверяли?
Владимир смотрел на неё. В его взгляде не было узнавания. Было лёгкое раздражение от вторжения.
— Трёхкратное превышение. это крайне редкий сценарий, — сказал он.
— Редкий, — согласилась Ольга. — Но не невозможный. В августе двадцать первого, например, на нескольких торговых площадках зафиксировали одновременный всплеск запросов почти в три с половиной раза выше нормы. На фоне геополитических новостей. Длился около сорока минут. Для системы предиктивной аналитики это критическое окно.
Инвестор убрал телефон.
— Интересное замечание, — сказал он. — Владимир Александрович, как система поведёт себя в таком сценарии?
— Архитектура предусматривает буферизацию запросов, — сказал Владимир. Теперь в его голосе появилась лёгкая напряжённость, которую знала только Ольга, потому что слышала её достаточно раз. Это была напряжённость человека, которого спросили о том, чего он не знает, но который не собирается этого показывать. — Пиковые нагрузки обрабатываются через очередь приоритетов.
— Через какую именно очередь? — спросила Ольга.
— Стандартную приоритетную очередь с весовым распределением.
— Понятно. — Она чуть наклонила голову. — То есть в блоке обработчика пиков используется взвешенное распределение по классической модели. А таймаут в этом блоке какой?
Пауза. Короткая, но ощутимая.
— Настраиваемый.
— По умолчанию?
Ещё одна пауза. Инвестор смотрел на Владимира. Соколов смотрел на Владимира.
— Стандартный, — сказал Владимир. — Там есть несколько режимов.
— Нет, — сказала Ольга. — Там нет нескольких режимов. Таймаут в этом блоке жёстко прошит. Он составляет триста миллисекунд. При трёхкратном всплеске запросов очередь переполняется раньше, чем обработчик успевает сбросить накопленный буфер. Это не приводит к падению системы. Система продолжает работать. Но расчётные данные начинают расходиться с реальными, причём накопительно. Каждую минуту погрешность растёт примерно на ноль целых восемь десятых процента. За сорок минут пиковой нагрузки это даёт около тридцати двух процентов ошибки в выходных данных. Для системы, которая используется в финансовых расчётах, это означает прямые потери. Не теоретические.
В зале играла музыка. Где-то смеялись. За их столиком было очень тихо.
— Откуда вы знаете структуру кода? — спросил Соколов. Он спросил это спокойно, почти академически.
— Потому что я её писала, — сказала Ольга.
Она подняла руки и сняла маску.
Владимир смотрел на неё. Впервые за вечер, впервые за долгое время он смотрел на неё так, что в его взгляде не было ничего привычного. Ни раздражения, ни снисхождения, ни той усталой отстранённости, которая стала его обычным выражением лица при разговоре с ней.
Там был только страх.
— Ольга? — произнёс Соколов. Он сказал это так, как говорят, когда вдруг вспоминают что-то важное.
— Вы меня знаете? — спросила она.
— Я знаю вашу работу. — Он чуть помедлил. — Вы работали в «Аналитик Про» в двадцать первом году. У вас была статья в «Журнале прикладной аналитики». Про предиктивные модели для нестабильных рынков. Я её читал.
— Читали, — повторила Ольга. Не вопросительно.
— Владимир Александрович, — сказал Соколов, и голос его изменился не резко, а именно так, как меняется температура воды, когда добавляют холодную. — Вы можете объяснить?
— Это. — Владимир начал. Остановился. Начал снова. — Мы работали над проектом вместе. Это семейный.
— Нет, — сказала Ольга. — Это не семейный проект. Я разработала алгоритм самостоятельно. Я могу это доказать. У меня есть черновики с временными метками, переписка с коллегами из стартапа, где я работала, и исходные файлы с историей коммитов. Весь алгоритм. включая ту ошибку в обработчике пиков, которую я не успела исправить.
Инвестор убрал телефон. Теперь он смотрел не на экран, а на Ольгу.
— Ошибку можно исправить? — спросил он.
— Да, — сказала она. — Я знаю как.
Это была долгая пауза. Один из тех моментов, когда всем за столом понятно, что сейчас происходит что-то значимое, и никто не торопится его нарушить.
Владимир встал. Он не сказал ничего. Просто встал, одёрнул пиджак, и Ольга впервые за очень долгое время увидела его таким. не в роли успешного менеджера среднего звена в крупной айти-компании, не в роли человека, который всегда знает, что говорить. Просто мужчиной, который только что дошёл до края чего-то и заглянул вниз.
— Владимир Александрович, — сказал Соколов, — мне понадобится ваше присутствие в офисе в понедельник утром. В девять.
Владимир взял свой бокал. Поставил его обратно. Пошёл через зал к выходу. Ольга смотрела ему вслед. Ровно, без спешки. Спина у него была прямой до самой двери, а потом дверь закрылась.
Соколов налил воды в свой бокал. Потом повернулся к Ольге.
— Присядьте, пожалуйста, — сказал он. — Если вы не против.
Она села. Официант принёс меню. Она отказалась от меню и попросила кофе.
— Мне неловко, что этот разговор происходит в таких обстоятельствах, — сказал Соколов. — Но у меня будет к вам предложение. Если вы готовы выслушать.
— Я готова.
— Мы давно ищем человека для руководства отделом инновационных разработок. Там не нужен просто технарь. Нужен человек, который понимает аналитику глубоко, видит архитектурные решения стратегически и умеет объяснять сложное просто. — Он чуть улыбнулся. — То, что вы сделали сегодня за пять минут, это именно то.
— Я несколько лет не работала по специальности, — сказала Ольга.
— Знаю. И это не проблема. Методология не устаревает так быстро, как принято думать. А инструменты осваиваются.
Инвестор кивнул. Не вмешиваясь, просто подтверждая.
Ольга посмотрела на свой кофе. Потом на маску, которую держала в руках всё это время.
— Мне нужно подумать, — сказала она.
— Разумеется, — сказал Соколов. — Возьмите столько времени, сколько нужно. Моя помощница свяжется с вами в начале недели, если вы дадите контакт.
Она дала. Записала его номер в телефон. Допила кофе.
Потом встала, поблагодарила их обоих, надела пальто в гардеробе и вышла через стеклянные двери отеля на улицу.
Было прохладно. Не по-зимнему, но с той ранней осенней свежестью, которая напоминает, что тепло заканчивается. Ольга остановилась на ступенях и некоторое время просто дышала. Не потому что плохо с ней. Потому что хотелось дышать. Нарочно, внимательно, зная, что дышишь.
Машин у отеля было много. Она достала телефон, чтобы вызвать такси. Пока ждала, пришло сообщение от Владимира. Одно слово. «Зачем».
Она убрала телефон. Такси приехало через восемь минут.
В машине она смотрела в окно. Город был тот же. Фонари, витрины, силуэты. Всё как двадцать минут назад, когда она ехала в другую сторону. И всё-таки что-то было не так, как раньше, или наоборот, именно так, как должно быть, и она просто не умела это назвать.
Маска лежала у неё на коленях. Белая, с золотым орнаментом, Венеция, пять лет назад. Она провела пальцем по краю.
Квартира была такой, какой она её оставила. Стакан воды на кухонном столе. Открытый ноутбук Владимира. Ольга закрыла его крышку. Не захлопнула, а именно закрыла, аккуратно. Поставила на полку.
Она сняла платье, повесила его на вешалку. Аккуратно, хотя раньше никогда особенно не церемонилась с одеждой. Потом переоделась в домашнее. Поставила чайник.
Пока он грелся, она открыла свой ноутбук. Старый, который она почти не включала последние полтора года. Он загружался медленно, долго. Она ждала. Когда загрузился, открыла папку с рабочими файлами. Нашла нужную. Открыла исходник алгоритма.
Там всё было. Именно так, как она помнила.
Она нашла блок обработчика пиков. Прочитала. Написала рядом, в отдельном файле, короткий комментарий о природе ошибки и наметила решение. Три строчки. Это заняло пять минут. Не потому что это было просто. Потому что она три года не думала об этом, и оказалось, что за три года ничего не исчезло.
Чайник закипел.
Ольга заварила чай, принесла кружку к ноутбуку, села и начала читать дальше. Не для кого-то. Просто так.
За окном город постепенно успокаивался. Становилось тише, хотя не совсем тихо, это был крупный город, он никогда не бывает совсем тихим. Ольга читала код и пила чай, и это было совершенно обычным занятием, она делала так тысячу раз, но сейчас что-то в этой обычности было другим. Каким. она ещё не решила.
Около полуночи она закрыла ноутбук и пошла спать. Легла. Смотрела в потолок несколько минут.
Потом перестала думать и заснула.
Утром она встала раньше обычного. Приготовила яичницу. Выпила кофе. Владимир не возвращался. Она не знала, где он. Это было первый раз в их двенадцатилетнем браке, когда она не знала, где он ночует, и не испытывала по этому поводу ничего похожего на тревогу. Это было не потому что ей было всё равно. Это было потому что она не понимала ещё, как именно ей не всё равно, и эта неопределённость была честнее любого заготовленного чувства.
Она открыла контакты. Нашла имя Аллы Николаевны. Её подруги, с которой они не разговаривали месяца четыре. Дольше, может. Набрала.
Долгие гудки. Потом:
— Оль? — Удивлённо, немного осипшим голосом. — Ты чего так рано?
— Извини. Ты не спишь?
— Уже нет. — Шорох, судя по всему, Алла садилась в кровати. — Что случилось?
— Ничего страшного. — Ольга помолчала. — Я просто хотела поговорить.
— В воскресенье в половину восьмого утра.
— Ну да.
Пауза. Потом Алла сказала:
— Давай. Говори.
И Ольга начала рассказывать. Не с начала, не с того, как они познакомились с Владимиром, не с первых попыток и первых врачей. Она начала со вчерашнего вечера. С фразы «в таком виде» в прихожей, с ноутбука на кухонном столе, с кода на экране. Рассказывала спокойно, почти сухо, иногда останавливалась, подбирая слова.
Алла не перебивала. Только раз спросила:
— Он тебя видел? Там, в отеле?
— Да.
— И ушёл?
— Ушёл.
Тишина в трубке.
— Оль, — сказала наконец Алла. — Ты сейчас как?
— Не знаю, — честно ответила Ольга.
— Это нормально.
— Наверное.
— Нет, я серьёзно. — В голосе Аллы появилась та конкретность, которая всегда отличала её от людей, которые говорят правильные вещи. — Ты только что сделала что-то очень большое. И не обязательно сразу понимать, что с этим делать.
— Я знаю.
— Ты поела?
— Яичница.
— Хорошо. — Алла помолчала. — Я сегодня приеду. Часов в двенадцать, хорошо? Возьму то пирожное, которое ты любишь.
— Трубочки с кремом?
— Трубочки с кремом. Три штуки.
— Аль, не надо.
— Оля.
— Что?
— Я приеду в двенадцать.
Ольга усмехнулась.
— Хорошо. Приезжай.
Она положила трубку. Допила кофе. Поставила чашку в раковину. Посмотрела в окно. Снаружи было серое утреннее небо, листья на дереве напротив уже начинали желтеть по краям, и по улице шёл мужчина с собакой, большой рыжей собакой, которая тащила его вперёд с явным намерением успеть везде.
Ольга смотрела на них, пока они не скрылись за углом.
Потом пошла умываться.
Алла приехала ровно в полдень. С трубочками и с тем выражением лица, которое сочетало в себе «я не буду ни о чём спрашивать» и «я буду спрашивать обо всём», причём честным было и то, и другое. Они сели на кухне. Поставили чайник.
— Покажи платье, — сказала Алла.
— Зачем?
— Хочу видеть.
Ольга принесла его из комнаты и держала на вытянутых руках.
Алла долго смотрела.
— Господи, — сказала наконец. — Ты это надевала вчера?
— Да.
— Это изумрудное.
— Я знаю.
— Оль, это просто. — Алла покачала головой. — Это очень красиво.
— Алл.
— Нет, я серьёзно. Ты понимаешь, как ты выглядела?
— Я видела себя в зеркало.
— И что?
Ольга повесила платье на спинку стула.
— И ничего, — сказала она. — Надела и поехала.
Алла смотрела на неё долго. Потом взяла трубочку.
— Расскажи мне ещё раз, как ты задавала ему вопросы, — попросила она. — Подробнее.
И Ольга рассказала. Подробнее. С интонациями, с паузами, с тем, как менялось лицо Владимира. Она рассказывала и замечала, что ей не больно рассказывать об этом. Не потому что не больно вообще. Просто сейчас, в этот момент, на этой кухне, это было скорее похоже на точную хирургическую процедуру, а не на открытую рану.
Алла слушала.
— А инвестор что? — спросила она.
— Убрал телефон и начал слушать.
— Это хороший знак. Инвесторы убирают телефон только когда им по-настоящему интересно.
— Ты откуда знаешь?
— Я работаю с ними четыре года.
Ольга взяла свою трубочку. Крем был правильным. Не слишком сладким.
— Алл, — сказала она. — Соколов предложил мне должность.
— Какую?
— Руководитель отдела инновационных разработок.
Алла замерла с чашкой на полпути.
— Что?
— Примерно так же я отреагировала.
— Ты согласилась?
— Сказала, что подумаю.
— Оля. — Алла поставила чашку. — Ты понимаешь, что это значит?
— Понимаю.
— Нет, я не уверена, что ты понимаешь в полной мере. — Алла говорила быстро, как всегда, когда что-то её захватывало. — Это «ТехноСфера». Это один из трёх крупнейших айти-холдингов в стране. Руководитель отдела разработок там. это не просто должность. Это.
— Алла.
— Что?
— Я понимаю.
Пауза.
— Ты напугана? — спросила Алла, уже тише.
— Немного. — Ольга помолчала. — Я три года не работала по-настоящему. Полтора из них почти не открывала ноутбук. Я не знаю, что из меня сейчас.
— Ты вчера за пять минут публично разложила по полкам ошибку в коде, которую не заметил никто из тех, кто якобы с этим кодом работал. — Алла смотрела на неё прямо. — Это «что-то из тебя сейчас», Оль.
Ольга ничего не ответила. Смотрела в стол.
— Про Владимира думаешь? — спросила Алла.
— Думаю.
— Что именно?
— Не знаю ещё. — Это было правдой. — Я двенадцать лет с ним. Из них три последних. плохо. Но двенадцать.
— Да, — сказала Алла. Она не добавила ничего. Это было правильно.
За окном прошёл короткий дождь. Не настоящий, просто несколько минут равномерного шелеста по стеклу, а потом снова облака без дождя. Ольга встала, подошла к окну. Дерево напротив чуть блестело от влаги.
— Он написал ночью, — сказала она. — Одно слово. «Зачем».
— И ты?
— Ничего. Я не ответила.
Алла кивнула.
— Он вернётся, — сказала она. — Или не вернётся. Но в любом случае это будет уже другой разговор.
— Знаю.
— Ты готова к нему?
Ольга смотрела в окно.
— Пока нет, — сказала она. — Но буду.
Алла уехала к четырём. Они договорились увидеться на следующей неделе. Ольга вымыла чашки, убрала остатки трубочек в холодильник. Прибралась в кухне. Потом пошла в комнату.
Там, на ночном столике, лежала маска.
Она взяла её. Подержала. Потом поставила на полку в шкафу. Рядом с венецианскими сувенирами, которые они привезли давно и которые стояли там, потому что никто не знал, куда их ещё поставить.
Потом открыла свой ноутбук и нашла вчерашний файл с комментарием об ошибке. Перечитала. Дописала ещё несколько строк. Набросала структуру исправленного блока.
Работа шла легко. Не потому что было легко. Потому что голова думала именно так, как умела думать, и это было. приятно. Просто приятно, как бывает, когда делаешь что-то, что получается.
Около восьми вечера пришло сообщение. Не от Владимира. От незнакомого номера с подписью «Секретарь Соколова А. В.». В сообщении было: «Добрый вечер, Ольга Михайловна. Андрей Викторович просил передать, что ждёт вашего решения в удобное для вас время. Если захотите встретиться, можем организовать встречу в любой день на этой неделе».
Ольга прочитала. Отложила телефон.
Потом взяла снова. Написала: «Спасибо. Давайте в среду, если удобно».
Ответ пришёл через три минуты. «Среда, 11:00, офис на Садовой. Пропуск будет на ресепшн».
Она убрала телефон. Закрыла ноутбук. Встала, потянулась. Прошлась по квартире. Квартира была их с Владимиром, они купили её семь лет назад, они вместе выбирали обои и спорили о диване. Всё это было здесь. всё это продолжало существовать.
Ольга остановилась у окна в гостиной. Город внизу был обычным воскресным вечером. Люди, машины, свет в чужих окнах.
Дверной замок щёлкнул.
Она не обернулась сразу. Слышала, как Владимир входит, как снимает обувь. Долгая пауза. Потом шаги в коридоре. Потом он остановился в дверях гостиной.
Ольга обернулась.
Он выглядел плохо. Не потому что злился или был расстроен. Просто выглядел человеком, который не спал ночь и большую часть дня. Костюм был тот же, что вчера, галстук снят, верхняя пуговица расстёгнута.
Они смотрели друг на друга.
— Соколов позвонил мне сегодня, — сказал он наконец.
— Я знаю, — сказала она. Хотя не знала. Но это было предсказуемо.
— Меня отстраняют от проекта. До выяснения обстоятельств.
— Понятно.
— Оля. — Он произнёс её имя так, как не произносил его долго. Без интонации переговоров. Просто её имя. — Зачем ты это сделала?
Она смотрела на него. Думала о том, что правильный ответ на этот вопрос зависит от того, о чём именно он спрашивает. О вчерашнем вечере. О коде. О «Авалоне». Или о чём-то другом, о чём он, может быть, даже не умеет спросить напрямую.
— А ты зачем это сделал? — спросила она.
Он не ответил сразу. Прошёл в комнату, сел на диван. Не рядом с ней. На свою обычную сторону дивана. Она осталась стоять у окна.
— Я думал, ты не будешь использовать этот алгоритм, — сказал он. — Ты ушла. Три года. Я не знал.
— Ты не спрашивал.
— Нет.
— Ты мог спросить.
— Да. — Он смотрел в пол. — Мог.
Ольга помолчала.
— Ты сказал вчера, что стыдишься показываться со мной на людях, — сказала она.
Он не ответил.
— Владимир.
— Слышал, — сказал он. Тихо. — Я слышал.
— Ты это думаешь?
Долгая пауза. Не та, которую делают, когда собираются солгать. Та, которую делают, когда пытаются быть честными, но не уверены, получится ли.
— Нет, — сказал он. — Не думаю. Я. это было нехорошо. Я не должен был так говорить.
— Много чего не должен был, — сказала Ольга.
— Да.
Они снова помолчали. За окном стемнело окончательно. Город светился.
— Что теперь? — спросил Владимир.
— Не знаю, — сказала она.
— Ты уйдёшь?
Она не ответила сразу. Думала. Не о том, уйти или остаться. О том, что этот вопрос, заданный так, в этот момент, на самом деле содержит в себе другой вопрос, и она пока не знала, готов ли он к тому другому вопросу. И была ли она готова к нему сама.
— Я не знаю, — сказала она снова. — Мне нужно время.
— Хорошо, — сказал он. И замолчал.
В тишине было слышно, как где-то внизу хлопнула дверь подъезда. Потом тишина снова стала ровной.
Ольга подошла к дивану. Не к нему. Просто к дивану. Взяла с подлокотника книгу, которую читала несколько недель назад и оставила страницами вниз. Нашла место, где остановилась.
Владимир сидел рядом. Не говорил ничего.
Она читала несколько минут. Потом закрыла книгу.
— В среду у меня встреча, — сказала она. — С Соколовым.
Владимир не пошевелился.
— По поводу должности, — добавила она.
— Знаю, — сказал он. — Он мне сказал.
— Ты как к этому?
Пауза.
— Это твоё дело, — сказал он. Это прозвучало не равнодушно. Скорее. точно. Как человек, который впервые произносит что-то правильное не потому что так нужно, а потому что иначе не получается.
Ольга кивнула. Встала. Пошла на кухню.
— Оля, — сказал он ей вслед.
Она остановилась.
— Что?
Пауза.
— Ничего. — Голос был странным. — Просто.
— Что?
Он долго не отвечал. Потом сказал очень тихо, почти не слышно:
— Прости.
Она стояла спиной к нему. Смотрела в стену. Думала о том, что это слово произнесено, и оно существует теперь в воздухе этой квартиры, и что с ним делать. пока непонятно. Может быть, этого слова слишком мало. Может быть, оно первое из многих. Может быть, оно последнее из последних.
Она не знала.
— Слышала, — сказала она.
И пошла на кухню ставить чайник.
Среда наступила быстро, как это бывает, когда ждёшь чего-то и одновременно не хочешь торопить. Ольга встала рано. Выбрала одежду долго, серьёзно, как выбирают перед чем-то важным. Остановилась на тёмно-синем жакете и прямых брюках. Сдержанно. Но не скромно.
Офис «ТехноСфера» находился в современном здании. Стекло, металл, ресепшн с молодым человеком, который встретил её профессионально и вежливо. Пропуск действительно был готов.
Соколов оказался в жизни более сдержанным, чем в пятницу, но столь же внимательным. Его кабинет был рабочим, не представительским. Много бумаг, несколько экранов, хорошее кресло с точки зрения эргономики, а не дизайна.
— Я рад, что вы пришли, — сказал он.
— Я думала, — сказала она.
— И?
Ольга посмотрела на него прямо.
— У меня есть несколько условий.
Он кивнул. Взял ручку.
— Слушаю.
— Первое. Я хочу начать с исправления «Авалона». Не потому что это моя разработка. А потому что я знаю эту ошибку лучше кого бы то ни было, и её нужно закрыть до того, как система уйдёт в продакшн. Это в ваших интересах.
— Согласен. — Он записал.
— Второе. Мне нужен испытательный период без формальной фиксации позиции. Три месяца. Я хочу понять команду, структуру, задачи. Потом мы вернёмся к разговору о должности.
Он поднял взгляд.
— Большинство людей на вашем месте хотели бы скорее.
— Я знаю, — сказала она. — Но я предпочитаю принимать решения, в которых уверена.
Он помолчал секунду.
— Хорошо, — сказал он. — Три месяца.
— И третье. — Она сделала паузу. — Я хочу понять, как именно был принят в компанию проект, который числился за Сорокиным. Не для того чтобы поднять разбирательство. Чтобы понять, как устроены процессы верификации авторства. Это системная вещь, она касается не только меня.
Соколов смотрел на неё.
— Справедливо, — сказал он наконец.
— Тогда я готова начать.
Они ещё час обсуждали детали. Ольга слушала, задавала вопросы, иногда не торопясь. Когда вышла из здания, было почти два.
Она дошла до ближайшего сквера. Нашла скамейку, села. Достала телефон. Входящий от Аллы: «Ну?». Она написала: «Три месяца испытательный. Потом посмотрим». Алла ответила через несколько секунд одним символом. Восклицательным знаком, который в её исполнении означал ровно столько, сколько нужно.
Потом Ольга убрала телефон. Посмотрела на деревья. Листья дожелтели за эти дни. На одном конце сквера играли дети, на другом сидел пожилой мужчина с газетой, которую явно не читал, просто держал.
Всё это было обычным. Совершенно обычным городским вторником. Или средой. Или как угодно.
Ольга сидела и думала о том, что вечером придёт домой. Что Владимир, скорее всего, будет там. Что этот разговор, который надо провести, ещё не провели. Что она не знала, чем он закончится.
Она думала о коде. О том, что через несколько дней, возможно, откроет его снова, но уже в другом контексте. О том, что ошибку можно исправить. Не всегда. Не любую. Но эту. точно.
И о том, что одни ошибки исправляются чистотой кода, а другие. чем-то другим, что у неё пока не было слов для этого, и, может быть, это было нормально.
Она ещё немного посидела. Потом встала.
И пошла.
Владимир был дома. Она услышала это ещё в прихожей. Он был на кухне, из кухни доносился звук воды.
Ольга разулась, повесила пальто. Зашла.
Он стоял у плиты. Что-то варил. Это было редкостью. В их семейном распорядке кухня была её территорией, не по договорённости, а просто по умолчанию, которое никто не выбирал.
Он обернулся.
— Как прошло? — спросил он.
— Нормально, — сказала она.
— Ты согласилась?
— На испытательный срок.
Он кивнул. Отвернулся к плите. Помешал что-то.
— Я сварил суп, — сказал он. — Если хочешь.
— Хочу.
Она села за стол. Он поставил перед ней тарелку. Сел напротив, со своей. Они ели. Суп был простым, с овощами, немного пересоленным. Она не сказала об этом.
— Меня официально отстранили от проекта, — сказал он. — Сегодня пришло письмо. Дисциплинарная комиссия в следующий понедельник.
— Знаю, — сказала она. — Это было предсказуемо.
— Да.
Ели снова молча.
— Оля, — сказал он.
— Что?
— Я хочу понять. Ты. ты планируешь. — Он не договорил.
Она подняла взгляд.
— Что именно ты хочешь понять?
— Мы. что с нами.
Она смотрела на него. На его лицо напротив. Сорок два года. Она знала это лицо двенадцать лет, и всё равно сейчас, в этот момент, оно казалось ей незнакомым. Не потому что изменилось. Потому что она смотрела на него иначе.
— Я не знаю, — сказала она. — Честно. Не знаю ещё.
— Это честно, — сказал он.
— Да.
Пауза.
— Я не прошу тебя ничего решать прямо сейчас, — сказал он.
— Знаю.
— Просто. я хочу, чтобы ты знала, что я. — Он снова остановился. — Что мне жаль. По-настоящему.
— Слышу тебя, — сказала Ольга.
Это был не ответ. Это не было ни «верю», ни «не верю». Это было именно то, чем являлось. Тем, что она сказала. Что слышала его.
Она доела суп. Отнесла тарелку к раковине.
— Я немного поработаю вечером, — сказала она. — Нужно дописать кое-что.
— Хорошо, — сказал он.
Она взяла ноутбук и ушла в комнату. Открыла файл. Нашла блок обработчика пиков. Начала писать.
За дверью было тихо. Потом была слышна вода, потом звук убираемой посуды, потом тишина снова.
Ольга писала код. Строчка за строчкой. Она не думала о том, что будет дальше. Ни о Владимире, ни о должности, ни о том разговоре, который всё ещё впереди. Она думала только о том, что было перед ней на экране. О структуре, о логике, о том, как именно нужно переписать этот блок, чтобы система работала правильно при любой нагрузке.
Это было то, что она умела. Что она всегда умела.
Где-то через час, ближе к ночи, она дописала и откинулась на спинку кресла.
Ошибка была исправлена.
Она сохранила файл. Закрыла ноутбук.
Посмотрела на маску на полке. Белую, с золотым орнаментом.
Потом встала и вышла из комнаты.
Владимир сидел в гостиной. Не смотрел телевизор. Просто сидел.
Ольга остановилась у двери.
— Ты не спишь? — спросила она.
— Нет, — сказал он.
— Я закончила.
— Хорошо.
Пауза.
— Я пойду спать, — сказала она.
— Спокойной ночи.
Она уже шла к спальне, когда он сказал:
— Оль.
— Что?
— Ты помнишь, как рассказывала мне про этот алгоритм в первый раз? Тогда, на старой квартире.
Она остановилась. Подумала.
— Помню.
— Ты так горела этим. — В его голосе не было привычной интонации. Просто что-то, что она не сразу смогла опознать. — Я тогда думал. что это здорово. Что у тебя это есть.
Она стояла спиной к нему. Смотрела в стену.
— А потом? — спросила она.
Долгая пауза.
— Не знаю, — сказал он. — Потом я, наверное, перестал думать об этом.
Она кивнула. Он не видел кивка.
— Спокойной ночи, Владимир, — сказала она.
И пошла спать.