Вызов поступил не из ветхого особняка и не из проклятой деревни, а из сияющего небоскреба IT-кластера «Кремниевая Долина-на-Оке». Компания «AgileCats» терпела колоссальные убытки. Их новый мессенджер для котиков «MeowTalk» падал каждую ночь ровно в три часа.
Меня встретил техлид Артем с глазами, похожими на два пережаренных бифштекса.
«Виктор?Спасибо, что приехали. У нас... мистика. Каждую ночь в 3:03 сервера уходят в ребут. Логи чистые. Железо исправное. Но мониторы... они становятся зелеными и на них появляется одно слово...»
«Какое?» — поежился я, предчувствуя недоброе.
««ДЕПЛОЙТЕ»». И смайлик с подмигивающим чертиком».
В углу зрения замигало уведомление:
Новый квест: «Цифровой полтергейст».
Цель: Найти и нейтрализовать сущность, нарушающую рабочий процесс «AgileCats».
Награда: 20 000 кредитов, механическая клавиатура с RGB-подсветкой (легендарная), +50 к репутации «Техно-экзорцист».
«Хозяин, хозяин! Здесь пахнет кофе и выгоранием!» — Лыбик, невидимый для Артема, носился по офису с коворкинг-зонами и гамаками, пытаясь укусить за ауру надувного единорога.
«Ведите к серверной», — сказал я, чувствуя, как по спине бегут мурашки. С нечистью, которая дружит с кодом, я еще не сталкивался.
Серверная встретила нас гулом кулеров и ледяным воздухом. «Взгляд охотника» показал аномалию сразу. В углу, за стойкой с роутерами, клубилось облако статического электричества, пронизанное строками какого-то кода.
«Лыбик, сканируй».
Сущность рванула вперед и через мгновение вернулась, подергиваясь.
«Ой-ой-ой! Там сидит... прозрачный чел в худи! С ноутбуком! Уровень 22! Он что-то печатает и злобно хихикает! Пахнет редбулом и несбывшимися дедлайнами!»
Я подошел ближе. И увидел Его. Молодой парень, полупрозрачный, в очках с толстыми линзами. Его пальцы бежали по призрачной клавиатуре, и с каждым ударом по клавише в воздухе вспыхивали зеленые буквы: sudo rm -rf /*.
«Эй, товарищ! Прекрати заниматься вредительством!»
Призрак поднял на меня пустой взгляд.
«Кто ты? Ты не из нашей команды. Твой код не пройдет ревью».
«Я здесь, чтобы провести твоему коду финальное ревью. На постоянное удаление».
«Не мешай! — зашипел он. — Я почти закончил! Мой пет-проект «NeuroCat» должен жить! Они его задеплоили без тестирования! Без тестирования!» — его голос сорвался на истерику.
«Хозяин, он какой-то нервный!»
«Слушай, как тебя...»
«Максим. Я был тимлидом. Они задеплоили «NeuroCat» в прод в пятницу, в шесть вечера! В ПЯТНИЦУ!» — призрак вскочил, и от него повалил волнами леденящий душу ужас. «Атака: Бесконечный код-ревью!»
Со всех мониторов в серверной на меня посыпались тысячи строк кода, перемешанные с комментариями «можно лучше» и «refactor this». Я почувствовал, как мой мозг закипает.
«Лыбик! Контратака! Внедри баг!»
«А какой?»
«Любой!Сделай так, чтобы у него точка с запятой пропала!»
Лыбик сконцентрировался и выплюнул в призрака сгусток хаотичной энергии, похожий на синтаксическую ошибку.
Эффект был мгновенным. Код на мониторах поплыл, а призрак Максим схватился за голову.
«Что это? Uncaught SyntaxError? НЕТ! Этого не может быть! Я проверял!»
Пока он был в панике, я провел быстрое сканирование. Его ядро было привязано не к серверу, а к чему-то другому. Я обошел стойку и увидел на полу, в пыли, забытый пропуск с его фотографией. А рядом — смятый листок с нарисованным от руки котиком и подписью: «Папа, когда мы пойдем в зоопарк?».
Все стало на свои места.
«Максим», — сказал я тихо, поднимая пропуск. «Твой «NeuroCat» уже три года как почили. А вот зоопарк... твоя дочь все ждала».
Призрак замер. Его агрессия улетучилась, сменившись растерянностью.
«Катя... — прошептал он. — Я обещал... А потом был деплой...»
«Обещания нужно выполнять. Даже если для этого придется... выйти из системы».
Я подошел к его призрачному ноутбуку и аккуратно набрал команду: sudo shutdown -h now.
Призрак Максим посмотрел на меня, и в его глазах впервые появилось что-то человеческое — облегчение.
«Спасибо... — прошептал он. — Я так устал...»
Он посмотрел на смятый рисунок, улыбнулся и медленно растворился в воздухе вместе с ноутбуком.
В тот же миг мониторы серверов вернулись к нормальной работе. На главном экране замигал чат-бот: «MeowTalk v.1.1 успешно запущен! Мяу!».
Квест выполнен!
Опыт получен. Уровень повышен! 29.
Получено достижение: «Терминатор техно-призраков».
Получен предмет: «Лицензия на пожизненное использование «MeowTalk» (бесполезный хлам)».
В серверную вбежал Артем. «Невероятно! Все стабильно! Что это было?»
«Призрак тимлида, павшего жертвой плохого деплоя. Он просто хотел, чтобы его код был идеальным».
«Хозяин, а можно мы заберем эту штуку с огоньками?» — Лыбик уже сидел на механической клавиатуре, нажимая на кнопки и завороженно наблюдая, как меняется цвет подсветки.
«Это наша награда, Лыбик. Ты ее заслужил. Твоя синтаксическая ошибка была блестящей».
Мы вышли из офиса. Я нес легендарную клавиатуру, а Лыбик, сидя у меня на плече, пытался лизнуть прохожего таксиста, утверждая, что у того «аура пахнет заказным такси «Убер»».
«Хозяин, а теперь что? Мы богатые?»
«Богатые на опыт.И на одну чертовски крутую клавиатуру».
«А можно мы ее продадим и купим шаурмы? С самой злой колбасой!»
Я посмотрел на его сияющую, полную надежд пасть и на клавиатуру, которая переливалась всеми цветами радуги.
«Знаешь что? Давай оставим клавиатуру. А на шаурму я скинусь сам. Сегодня мы заслужили и то, и другое».
Лыбик радостно гикнул, и его пасть растянулась в подобии улыбки. А я ускорил шаг. Впереди был новый день, новые призраки и, возможно, даже работа без участия озорной сущности. Но я-то знал — с Лыбиком такое невозможно. И, черт возьми, это было даже к лучшему.