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