Коллега подставил меня перед начальством, чтобы забрать премию. Но он забыл, что в моем кабинете всегда ведется запись.

Коллега подставил меня перед начальством, чтобы забрать премию. Но он забыл, что в моем кабинете всегда ведется запись.

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

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

И главным моим соперником в этой войне был Вадим.

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

Все началось в пятницу, за неделю до финального дедлайна. Офис уже почти опустел. За окном сгущались сумерки, по стеклу барабанил осенний дождь. Я сидел в своем кабинете, погруженный в глубокую отладку ядра системы. На моем столе, помимо трех мониторов, стояла профессиональная веб-камера и студийный микрофон на кронштейне. Я использовал их не для стримов, а для работы. У меня была профессиональная привычка: когда я охотился за «плавающими» багами, я всегда включал запись экрана вместе со звуком и видео из кабинета. Иногда баг проявлялся на долю секунды, и проще было пересмотреть запись, чем пытаться воспроизвести его снова. Камера писала все на отдельный жесткий диск в циклическом режиме.

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

— Макс! Макс, мы горим! — выпалил он, тяжело дыша.

Я свернул окно компилятора и посмотрел на него.
— Что случилось? Только не говори, что ты опять полез в базу данных на продакшене.

Вадим нервно сглотнул, подошел к моему столу и буквально рухнул в кресло для посетителей.
— Я… я случайно запустил тестовый скрипт миграции не на том сервере. Я затер часть клиентских профилей за последний месяц. Макс, если Виктор Петрович узнает, он меня уволит. С волчьим билетом!

Я почувствовал, как по спине пробежал холодок. Затереть боевую базу за неделю до релиза — это катастрофа.
— Как ты умудрился? Я же закрыл тебе права на запись!

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

Я тяжело вздохнул. Мне было плевать на его проблемы, но проект был моим детищем. Я не мог позволить «Авангарду» рухнуть из-за идиотизма менеджера.

— Хорошо, — процедил я. — Я восстановлю данные. Это займет часов десять. Иди домой, Вадим. И чтобы я тебя здесь не видел до понедельника.

— Макс, ты святой! — Вадим вскочил, схватил мою руку и потряс ее. В его глазах блестели слезы облегчения. — Я твой должник навеки!

Он выскочил из кабинета, а я, хрустнув пальцами, приступил к спасательной операции. Я просидел в офисе до раннего утра субботы. Глаза слезились, спина ныла, но к рассвету база была полностью восстановлена, а логи аккуратно подчищены, чтобы не вызывать панику у службы безопасности.

Утро понедельника началось с экстренного совещания. В переговорной с панорамными окнами собрался весь топ-менеджмент. Во главе стола сидел Виктор Петрович — человек жесткий, не терпящий ошибок, с холодным, пронзительным взглядом.

— Доброе утро, коллеги, — начал генеральный директор, хотя тон его не предвещал ничего доброго. — Сегодня ночью служба безопасности предоставила мне отчет. В пятницу вечером произошел масштабный сбой в базе данных «Авангарда». Система была на грани полного уничтожения.

Я спокойно сидел на своем месте, ожидая, что сейчас Вадим, как и обещал, возьмет слово, извинится за инцидент и объяснит, что все уже исправлено. Я перевел взгляд на него. Вадим сидел неестественно прямо, его лицо выражало глубокую озабоченность.

— Вадим, — обратился к нему босс. — Вы руководитель проекта. Объясните, как это произошло.

Вадим встал. Он поправил безупречный галстук, обвел присутствующих тяжелым взглядом и, остановив его на мне, произнес:

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

В переговорной повисла мертвая тишина. Я не поверил своим ушам. Мой мозг на секунду отказался обрабатывать информацию.

— Что ты несешь? — вырвалось у меня. Я вскочил. — Виктор Петрович, это ложь! Вадим сам…

— Сядьте, Максим! — рявкнул генеральный директор. Его голос ударил как хлыст. — Я не закончил. Вадим, продолжайте.

— Когда я увидел, что система падает, — голос Вадима дрогнул, изображая искреннее переживание, — я отменил свои планы на выходные. Я провел в офисе всю ночь с пятницы на субботу, вручную восстанавливая данные из теневых копий. Мне удалось спасти проект. Но я считаю своим долгом доложить, что архитектурные решения Максима ставят под угрозу всю нашу компанию.

Я стоял, хватая ртом воздух. Это было настолько нагло, настолько виртуозно исполнено, что я на мгновение онемел. Он украл не просто мою работу. Он украл мое алиби, мое время и сделал меня крайним.

— У вас есть доказательства, Вадим? — спросил босс.

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

— Максим, — Виктор Петрович посмотрел на меня с ледяным презрением. — Я не потерплю безответственности. Вы отстранены от должности ведущего разработчика. Вы остаетесь в проекте как рядовой кодер до релиза, после чего мы обсудим ваше дальнейшее пребывание в компании. О годовой премии можете забыть.

— Виктор Петрович, дайте мне слово! — попытался я защититься.

— Совещание окончено! — отрезал босс. — Вадим, отличная работа в кризисной ситуации. Премиальный фонд проекта переходит в ваше полное распоряжение. Вы это заслужили.

Когда все начали расходиться, Вадим прошел мимо меня. Он не смотрел мне в глаза, но я заметил, как уголок его губ дернулся в самодовольной ухмылке.

Я вернулся в свой кабинет, плотно закрыв дверь. Внутри все кипело от ярости. Хотелось разбить монитор, швырнуть стул в стеклянную стену, уволиться прямо сейчас. Я подошел к столу и бездумно уставился на свои экраны.

Взгляд скользнул по микрофону. Затем по камере.

Маленький зеленый светодиод на веб-камере не горел — сейчас запись была выключена. Но в пятницу… В пятницу, когда я сидел и ловил тот проклятый баг в ядре, перед тем как ворвался Вадим…

Сердце екнуло и забилось где-то в горле. Мои руки дрогнули, когда я схватился за мышку. Я открыл скрытую папку на локальном диске «D», куда OBS Studio складывала архивы.

Сортировка по дате.
Пятница. 19:42.
Файл: debug_session_14_11.mp4
Вес: 12 Гигабайт.

Я кликнул по файлу. Запустился плеер. На экране было мое лицо, сосредоточенно смотрящее в монитор. Справа в углу — захват экрана с кодом. Было слышно, как я тихо ругаюсь себе под нос и щелкаю клавиатурой.

Я перемотал вперед. 20:15.
Дверь на видео резко распахивается. Влетает Вадим. Звук пишется идеально, студийный микрофон улавливает каждый вздох.

«Макс! Макс, мы горим!» — звучит из колонок панический голос Вадима.
Я смотрю, как он падает в кресло. Лицо бледное, галстук сбит.
«Я… я случайно запустил тестовый скрипт миграции не на том сервере… Я попросил сисадминов открыть на пять минут… мы с ребятами в ресторане засиделись… Вся слава твоя, весь бонус твой…»

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

У меня в руках была не просто бомба. У меня была ядерная боеголовка.

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

Вторник. Конференц-зал был забит до отказа. Помимо Виктора Петровича, здесь присутствовали инвесторы и руководители всех отделов. В воздухе пахло дорогим парфюмом и крепким кофе.

Вадим стоял у огромного экрана. Он был в своей стихии. Он блистал. На слайдах мелькали красивые графики, показатели отказоустойчивости и диаграммы роста.

— …и таким образом, несмотря на критическую ошибку, допущенную на уровне разработки, — Вадим сделал драматичную паузу и скорбно посмотрел в мою сторону, — моя команда смогла стабилизировать ядро. Мы внедрили новые протоколы безопасности. Проект «Авангард» готов к запуску!

Зал разразился аплодисментами. Виктор Петрович довольно кивал.

— Отличная работа, Вадим, — произнес генеральный директор. — Вы продемонстрировали выдающиеся лидерские качества. Как мы и договаривались, приказ о вашей премии уже у меня на столе. Есть ли у кого-то вопросы перед тем, как мы завершим?

Я медленно поднял руку.

Вадим напрягся, но быстро нацепил снисходительную улыбку.
— Да, Максим? Хочешь добавить что-то в свое оправдание?

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

Виктор Петрович нахмурился, глядя на часы.
— Максим, мы уже все обсудили.

— Это касается уязвимости, которая все еще может быть в системе, — твердо сказал я.

Слово «уязвимость» всегда действует на начальство магически.
— Хорошо. Две минуты, — сдался босс.

Я подошел к трибуне. Вадим нехотя уступил мне место, прошипев сквозь зубы так, чтобы слышал только я:
— Не позорься, Макс. Прими поражение как мужик.

Я ничего не ответил. Я вставил флешку в ноутбук, подключенный к главному экрану. На огромной плазме, занимавшей всю стену, появилось окно медиаплеера.

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

Я нажал кнопку на кликере.

На восьмидесятидюймовом экране появилось видео в кристальном 4K разрешении. Звук из мощных потолочных динамиков заполнил зал.

Дверь в мой кабинет распахивается. Влетает растрепанный Вадим.
«Макс! Макс, мы горим!» — разносится по конференц-залу.

Лицо реального Вадима, стоящего в двух шагах от меня, мгновенно потеряло все краски. Он дернулся к ноутбуку, но я преградил ему путь, жестко выставив плечо.

На экране Вадим падает в кресло.
«Я случайно запустил тестовый скрипт миграции не на том сервере… Я попросил сисадминов открыть права… мы с ребятами в ресторане засиделись на обеде… Вся слава твоя, весь бонус твой. Только вытащи меня из этого дерьма».

Видео продолжало идти. Зал превратился в восковые фигуры. Инвесторы сидели с открытыми ртами. Виктор Петрович застыл, его глаза сузились, превратившись в две ледяные щели.

На видео я соглашаюсь помочь, и экранный Вадим вскакивает:
«Макс, ты святой! Я твой должник навеки!»

Я нажал на паузу. Кадр замер на счастливом, плачущем от облегчения лице Вадима.

В переговорной стояла такая тишина, что было слышно гудение проектора. Я повернулся к совету директоров.
— Как видите, коллеги, баг был успешно локализован и устранен мной в субботу к 6 утра. Отчет окончен. Спасибо за внимание.

Я вытащил флешку из ноутбука.

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

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

Виктор Петрович медленно встал. Он подошел к Вадиму вплотную.
— В ресторане засиделся? — переспросил босс. — Затер боевую базу? А потом пришел сюда и, глядя мне в глаза, обвинил человека, который спасал твою шкуру?

— Виктор Петрович, я… я могу все объяснить…

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

Затем он повернулся ко мне. В его взгляде читалась сложная смесь эмоций: гнев на ситуацию, уважение к моей хитрости и легкий страх перед моим уровнем паранойи.

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

— Благодарю, Виктор Петрович, — кивнул я.

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

Я вернулся в свой кабинет, налил себе остывший кофе и сел в кресло. Тихо гудели серверы. За окном светило солнце. Я посмотрел на веб-камеру, подмигнул ей и стер видео с жесткого диска. Баг был исправлен. Система работала идеально.

Laisser un commentaire