Часть 2
18 апреля 2025, 12:20 Первая неделя в офисе растворилась в потоке задач, багов и бесконечных чашек улуна. Дарья уже привыкла к джунглям из растений, к тому, как Катя появлялась словно из воздуха за её спиной, и даже к тому, что принтер работал только по чётным дням — «и то если попросить вежливо», как утверждал Шон.
Сегодня она застряла в дебаге race condition — той самой ошибки, которую все боялись трогать. Код мерцал на экране, словно живой организм. Временами Дарье казалось, что символы складываются в узоры, похожие на древние руны.
— Встреча через пять минут, — напомнил Майкл, проходя мимо. — Не забудь про демо.
Переговорка встретила их прохладой и запахом лаванды. Дарья открыла ноутбук, готовясь показать прогресс в отладке. Она начала говорить:
— Итак, проблема возникает когда два потока...
Внезапно что-то изменилось. Воздух словно сгустился, а затем...
— Встреча через пять минут, — сказал Майкл, входя в переговорку.
Дарья моргнула. Это же... Она только что это слышала? Те же люди заходили в комнату, садились на те же места. Катя достала тот же блокнот. Шон пробормотал тот же комментарий про кофе.
Она взглянула на часы — они показывали то же время, что и пять минут назад.
Никто не выглядел удивлённым. Все просто... продолжали, будто ничего не произошло. Дарья почувствовала, как по спине пробежал холодок.
— Итак, проблема возникает... — она запнулась, глядя на экран. Код на нём изменился. Теперь в нём мелькали строки, которых она точно не писала. Древние комментарии на немецком проступали сквозь её собственный код, как чернила сквозь промокашку.
Катя поймала её взгляд и едва заметно покачала головой — «не сейчас».
Дарья сглотнула и продолжила презентацию, стараясь не думать о том, что время только что свернулось само в себя, как лента Мёбиуса. И о том, что её код, кажется, жил собственной жизнью.
Дарья вылетела из переговорки, пробормотав что-то про bubble tea. Её руки дрожали, когда она хватала сумку. Пальцы нащупали телефон — время показывало 15:30. То же самое время, что было... до того как оно повторилось?
Духота Гонконга обрушилась на неё, как только она вышла из здания. Толпа на улице двигалась привычным потоком — туристы, офисные работники, старики с тележками полные картона. Всё казалось до боли нормальным, и от этого становилось только страшнее.
«Может, это пуэр от Майкла?» — подумала она, вспоминая терпкий вкус чая, который он притащил утром. — «Или недосып после ночного дебага?»
В небольшом магазинчике чая она механически заказала тайванскую версию чая с коричневым сахаром и молоком. Холодный стакан в руке немного успокаивал. Поднимаясь по узким улочкам SOHO, она свернула в проулок между антикварными лавками. Старые каменные ступени, изъеденные временем, вели куда-то вверх. Дарья опустилась на прохладный камень.
«Симптомы временной петли», — набрала она в поиске. Google выдал статьи про дежавю и квантовую физику. «Код, который меняется сам». Результаты про баги и усталость программистов.
— Дереализация... — пробормотала она, читая медицинский сайт. — Нарушение восприятия реальности, часто связано со стрессом...
Капли конденсата стекали по стакану с чаем, оставляя тёмные следы на камне. Где-то наверху ветер шевелил бельё на верёвках между домами, и тени от него плясали на ступенях как странные символы.
«Нужно взять больничный», — подумала Дарья, делая глоток остывшего чая. — «Или сходить к врачу. Это просто стресс от переезда и новой работы».
Но червячок сомнения грыз изнутри. Она вспомнила взгляд Кати, едва заметное покачивание головой. Будто та знала что-то. Будто предупреждала.
Телефон завибрировал — сообщение от Майкла: «Всё в порядке?»
Дарья уставилась на экран, не зная, что ответить. В отражении чёрного стекла на миг показалось, что её глаза мерцают, как звёзды.
***
Последний час в офисе тянулся как патока. Дарья Маркова пыталась сосредоточиться на коде, но строчки расплывались перед глазами. После странного происшествия в переговорке реальность казалась зыбкой, будто отражение в мутном стекле. Пальцы зависали над клавиатурой, не находя нужных клавиш, а мысли путались, словно нити в старом клубке. — Пошли в Pho Delicious? — Шон материализовался у её стола, рассеивая туман в её сознании. — Там бульон просто космос. В маленьком ресторанчике пахло базиликом и корицей. Запахи кружились вокруг, проникая сквозь одежду, оседая на коже. Старушка-вьетнамка, похожая на добрую ведьму из сказки, приняла заказ, улыбаясь морщинками-лучиками. Её узловатые пальцы двигались с неожиданной грацией, когда она записывала заказ. — ...и тут инструктор говорит — нет, Майкл, это не дрифт-трек! — Майкл размахивал палочками, изображая движения руля. Его глаза сверкали озорством, а голос поднимался и опускался как волны. — А я ему — простите, думал, вы оценили мой стиль Initial D! Бабушка-официантка широко улыбнулась, расставляя миски с дымящимся супом. От каждой поднимался пар, закручиваясь в причудливые фигуры. Шон согнулся от смеха, чуть не уронив очки в бульон, его плечи тряслись под тонкой рубашкой. — А вот у меня тоже история, — Катя отодвинула пустую чашку, звук фарфора по дереву отозвался внутри Дарьи странным эхом. — Представляете, соседи написали жалобу соседи по этажу, что я якобы в окна подглядываю. А у меня просто бонсай на подоконнике! Древний такой, причудливый... — Может, он сам подглядывает? — подмигнул Шон. — Деревья, они такие... Дарья улыбнулась, чувствуя, как натягиваются мышцы лица, будто отвыкшие от этого движения. Взгляд её невольно метнулся к окну, притянутый каким-то неосознанным импульсом. По улице шла женщина в красном платье-ципао, ткань струилась вокруг её фигуры как жидкий огонь. Через пару минут та же фигура, но уже в деловом костюме, прошла в обратном направлении. Дарья моргнула, ощущая сухость в глазах. Когда женщина появилась в третий раз — теперь в белом платье, похожем на саван — ложка дрогнула в руке Дарьи, ударившись о край миски с тихим, но отчётливым звоном. — Ты где живёшь? — спросил Майкл, не замечая её замешательства, его голос доносился будто сквозь толщу воды. — Уже освоилась? — В Шам Шуй По, — Дарья с трудом оторвала взгляд от окна, чувствуя, как немеют кончики пальцев. — Ищу соседку, если честно. Одной как-то... — Тебе нужно отдохнуть, — мягко перебила Катя, положив ладонь на её руку. Прикосновение было тёплым, почти горячим, как будто Катя носила в себе внутренний огонь. — День был длинный. Но глаза Кати говорили другое. В них мелькнуло что-то древнее и тревожное, как тени в глубине леса. Зрачки на мгновение стали вертикальными, как у кошки, или это просто игра света? Дарья почувствовала, как по коже пробежали мурашки, и это было не от кондиционера.***
Дарья сидела на подоконнике своей съёмной квартиры, глядя на неоновые огни Гонконга. Город пульсировал внизу, как живой организм из стекла и света. В отражении окна она видела своё усталое лицо и растрёпанные волосы — такие же неупорядоченные, как её мысли. Киев всплыл в памяти — тихий двор на Подоле, где каждый камень мостовой был знаком, где жизнь текла по понятным правилам. Она уехала оттуда именно поэтому — искала структуру, порядок, логику. Гонконг казался идеальным выбором с его небоскрёбами-ульями, чёткой системой метро и математически выверенными автобусными маршрутами. «И вот теперь», — Дарья провела пальцем по запотевшему стеклу, — «именно здесь реальность начала трещать по швам». Она достала телефон и открыла заметки. Странности последних дней выстроились в аккуратный список: «Господи, я схожу с ума», — она тряхнула головой и решительно открыла WhatsApp. — Лен, привет! — голос Дарьи дрогнул от облегчения, когда на экране появилось знакомое лицо подруги. — Дашка! Мне скоро выходить, если что! — Лена показала свою новый маникюр через камеру широко улыбаясь. На заднем плане мелькнул пушистый хвост. — Мисси, фу! Дай маме поговорить. — Прости, все нормально, давай просто чуть-чуть поболтаем... — Дарья прикусила губу. — Знаешь.... Тут происходит что-то странное. Она начала рассказывать — сперва о работе, о команде, о том, какой Гонконг невероятный. А потом, осторожно подбирая слова, о странностях. — Погоди-погоди, — Лена подалась к камере. — Ты серьёзно думаешь, что время повторилось? А может, это просто дежавю? У меня такое бывает, когда не высплюсь. — Но код... — Даш, ты же программист. Сколько раз ты сама говорила про баги в IDE? — Лена почесала за ухом прыгнувшую к ней на колени собаку. — А женщина... Слушай, это же Гонконг! Там наверняка куча близняшек ходит. Дарья помолчала, глядя на город за окном. Логика Лены была безупречной. — А глаза? — тихо спросила она. — Линзы! — рассмеялась Лена. — Ты не видела, какие у нас тут модницы ходят? Кошачьи глаза — это ещё цветочки. Вот Мисси недавно... Следующие десять минут Лена рассказывала, как их лабрадор умудрился стащить целую пачку пельменей с верхней полки холодильника. История была такой нелепой и домашней, что Дарья почувствовала, как напряжение последних дней начинает отпускать. — ...и представляешь, эта морда довольная сидит, а по всей кухне следы от лап! — Лена утирала слёзы от смеха. — Боже, как я скучаю по этой холерной псине, — улыбнулась Дарья. — Она тоже скучает. Вчера нашла твою старую футболку и притащила в свою лежанку. За окном пролетел вертолёт, его огни отразились в стекле как падающие звёзды. Дарья вдруг поняла, что улыбается — впервые за день по-настоящему. — Знаешь что, — сказала она, — ты права. Я просто перегружаю себя. Новая страна, новая работа... — И ты всегда была той ещё параноидальной перфекционисткой, — подмигнула Лена. — Помнишь, как в универе решила, что препод по матану — робот, потому что он никогда не моргал? — А оказалось, у него просто синдром сухих глаз, — фыркнула Дарья. — Ладно, я поняла. Двадцать первый век на дворе, какая магия? — Вот именно! Оставь чудеса Гарри Поттеру. После разговора Дарья ещё долго сидела у окна. Город внизу жил своей жизнью — спешащие люди, мигающие светофоры, запах жареной лапши из ресторана напротив. Всё было... нормальным. Обычным. Логичным. «Хватит искать чёрную кошку в тёмной комнате», — подумала она, потягиваясь. Особенно если этой кошки там нет. В отражении окна её глаза на мгновение словно вспыхнули серебром, но Дарья этого не заметила. Она уже отвернулась, решив заварить себе чай и посмотреть новый эпизод любимого сериала. В конце концов, что может быть более нормальным?***
Утро отличалось абсолютной тишиной и нормальностью. Дарья даже успела выпить кофе до первого стендапа — роскошь, о которой она и не мечтала в Киеве. Офис гудел привычной энергией: клацанье клавиатур, приглушенные разговоры, шорох листьев от кондиционера. — Три таска на рефакторинг, два баг-фикса, — Майкл перечислял задачи на доске. — Дарья, тебе достается самое интересное — оптимизация кэширования. «Наконец-то что-то простое», — подумала она, разворачивая ноутбук. После недели странностей обычный рабочий день казался подарком. День летел незаметно. Дарья погрузилась в код, изредка отвлекаясь на совещания с продактами. Новый менеджер из Сингапура показывал макеты, обсуждал метрики, говорил о retention rate — все предельно конкретно, никакой мистики. К вечеру офис опустел. Шон ушел на какую-то встречу, пробормотав что-то про "древние долги". Катя растворилась, как обычно, не прощаясь. Майкл задержался допоздна в серверной. Дарья откинулась в кресле, потягиваясь. За окном небоскребы Central District мерцали, как созвездия. Кондиционер тихо шелестел, создавая почти домашний уют. «Еще полчаса», — решила она, открывая Git. Старый баг не давал покоя — как он мог пройти все проверки? Она начала просматривать истории веток, погружаясь все глубже в репозиторий: Палец замер над тачпадом. Название последней ветки казалось... неправильным. Дарья кликнула, развернула историю коммитов. Последний коммит был датирован тремя месяцами ранее. Автор — z.z. Такого никнейма она не помнила в команде. — Майкл! — позвала она. — Ты знаешь пользователя z.z? Тишина. Видимо, он уже ушел. Дарья открыла изменения. Один файл — logging.yaml. Обычный конфиг для логирования, но параметры... За спиной что-то щелкнуло. Кондиционер? Она обернулась — пусто. Только тени от растений колыхались на стенах. Руки слегка подрагивали, когда она открывала сам лог. Экран заполнился строчками: [2023-08-12 03:14:22] CAM_FEED_A02 initialized[2023-08-12 03:14:23] PULSE_DELTA: 0.873[2023-08-12 03:14:23] EntityType: Witness detected[2023-08-12 03:14:24] PULSE_DELTA: 1.247[2023-08-12 03:14:24] Warning: threshold exceeded[2023-08-12 03:14:25] Emergency protocol initiated[2023-08-12 03:14:25] Feed terminated Что-то в этих цифрах казалось знакомым. Дарья прищурилась, вглядываясь в timestamp. Три часа ночи... Почему именно это время? Внезапно экран моргнул. Строчки лога задрожали, поплыли, как будто текст пытался сложиться в другой узор. Дарья моргнула — нет, показалось. Все на месте. Она потянулась к телефону, чтобы сделать скриншот, но замерла. В стекле окна отразилось движение — кто-то стоял у входа в опен-спейс. Темный силуэт, неподвижный. — Майкл? — голос прозвучал неожиданно хрипло. Силуэт не шевелился. Через несколько секунд, которые растянулись в вечность, он медленно отступил в коридор. Звук шагов растворился в шелесте кондиционера. Дарья резко развернулась к ноутбуку. Экран был пуст — чистый терминал, мигающий курсор. Ветка fix/observation-bleed исчезла из истории, будто её никогда не было. Пальцы автоматически набрали git log. История коммитов выглядела обычно — никаких следов загадочного z.z. За окном моргнули и погасли огни соседнего этажа. Дарья почувствовала, как по спине пробежал холодок. Пора домой. Определенно пора домой. Но желание узнать, что происходит заставило ее сидеть дальше. Дарья глубоко вдохнула, собираясь с мыслями. Логика — её щит. Всегда была. Нужно действовать методично: выключить, подождать, включить. Базовые шаги отладки. Экран погас. В темном стекле отразилось её лицо — бледное, с залегшими тенями под глазами. За спиной качнулась тень от монстеры, будто кто-то прошел мимо. Дарья не обернулась. Тридцать секунд. Она считала про себя, глядя на часы в телефоне. Цифры подрагивали в полумраке. Ноутбук ожил с тихим гудением. Привычный экран логина, пароль из пальцев. Всё как обычно — пока она не открыла терминал. История Git развернулась перед ней, как свиток с древними письменами. Ветка fix/observation-bleed снова была там, но теперь код в ней пульсировал. Не мерцал, не моргал — именно пульсировал, как живая ткань под микроскопом. — Не может быть, — прошептала Дарья, пальцы зависли над клавиатурой. — Если это аддон, то это очень странный аддон… Она начала вводить команду для просмотра лога, но экран опередил её. Строки появлялись сами, одна за другой: [2023-11-15 21:47:13] session_start: user d.markova[2023-11-15 21:47:14] accessing branch: fix/observation-bleed[2023-11-15 21:47:15] warning: emotional residue detected[2023-11-15 21:47:16] analyzing pattern... Что-то холодное коснулось затылка — не физически, а будто кто-то провел ледяным пальцем по её сознанию. Дарья почувствовала, как пространство вокруг сжимается, становится плотным, как вода на глубине. Новая строка выползла на экран: emotion_trace[143]: fear spike – origin unclear Это был не просто текст. Слова несли в себе вес, тяжесть чужого ужаса. Он хлынул с экрана, как чернила в воду — густой, вязкий, заполняющий лёгкие. Страх того, кто смотрел в темноту слишком долго. Кто видел что-то в глубине кода, в пустотах между строк. Тёплая капля упала на трекпад. Дарья коснулась носа — кровь. Маленькая красная точка расплылась по серой поверхности, и курсор дёрнулся, словно от боли. Пиксели вокруг него задрожали, формируя узор, похожий на нервные окончания. Дарья откинулась на спинку стула, чувствуя, как чужой страх прорастает в ней корнями. Он был древним, этот страх — старше компьютеров, старше электричества. Страх существа, которое поняло, что оно больше не одно. В углу экрана цифры времени сменяли друг друга с неестественной медлительностью. Лог пульсировал в такт с её сердцем, но теперь она знала — это не её ритм. Что-то другое использовало её пульс как метроном, настраиваясь на её частоту. Воздух в офисе стал густым и тяжёлым, как перед грозой. Растения вдоль стен замерли, перестав качаться от кондиционера. Тишина натянулась струной. Новая строка кода медленно проявилась на экране: connection_established[user:witness] – accessing emotional bandwidth... Страх уже не был чужим — он стал частью её существа, растворился в крови, как яд. Дарья чувствовала его вкус на языке — металлический, как у старых монет. Пальцы сами потянулись к клавиатуре. Она должна была что-то ввести, ответить, но... Позади неё что-то зашуршало. Тень от монстеры на стене вытянулась, изогнулась неестественным углом. В отражении экрана мелькнуло движение — или это был глитч в матрице дисплея? Лог на экране замер, будто задержал дыхание. Курсор мигал всё медленнее, как засыпающее сердце. А потом программа выдала последнюю строку: subject_resonance: 98.3% matchrecalibrating... Офис погрузился в абсолютную тишину. Даже шум города за окном исчез, словно кто-то нажал кнопку mute на реальности. В этой тишине Дарья слышала только своё дыхание и тихое гудение процессора — или это был шёпот чего-то, притаившегося в глубине кода? Капля крови на трекпаде начала темнеть, превращаясь из алой в почти чёрную. В её глубине что-то двигалось, как будто кровь стала окном в другое измерение. И тогда лог действительно вдохнул.***
Дарья растворилась в городе — неоновое крошево огней, зеркала зонтов, чужие спины. Что-то гнало её сквозь толпу, дышало в затылок невидимым хищником, подталкивало вперёд. Дома она залила квартиру светом, будто пыталась выжечь тени. Но даже обжигающий душ не смыл фантомное присутствие — оно въелось глубже кожи, как въедается дым в волосы после пожара. Влага испарилась с тела, дрожь осталась. В зеркале — всё то же лицо: бледность, усталость под глазами, влажные пряди. Ни следа той крови. Пальцы машинально коснулись переносицы. «Показалось», — шепнула она отражению. Знакомый скрип пружин принял её тело. Одеяло до подбородка, веки вниз-вверх-вниз — сон ускользал, как вода сквозь пальцы. В темноте пульсировал код. Символы проступали на изнанке век древними рунами, вглядывались в неё из глубины сознания — или она вглядывалась в них? 3:14 на экране телефона. Это время снова. Простыни царапали кожу наждаком. Дарья металась, ища прохладный островок на подушке. Вой сигнализации разрезал ночь, захлебнулся тишиной. В этой тишине капли в ванной отбивали ритм — тот же ритм, что пульсировал в коде, застывшем в памяти. Дремота пришла с рассветом. Сны распадались битыми файлами — осколки чужих воспоминаний, искажённые данные, сбойные образы. Утро выдернуло её из оцепенения. Тело двигалось само: душ-кофе-одежда. Реальность казалась перекалиброванной — слишком резкой и размытой одновременно, как снимок с дрожащих рук. В метро Дарья пыталась читать новости, но буквы расплывались, превращаясь в знакомые строчки лога. Она моргнула — текст вернулся в норму. Пожилая китаянка напротив смотрела сквозь неё пустым взглядом. Офисное здание возвышалось как обычно — стекло и сталь уходили в облака. Но что-то изменилось. Дарья не могла уловить, что именно, пока не увидела своё отражение в стеклянных дверях. Тень. Её тень двигалась не совсем синхронно. Буквально на долю секунды медленнее. Или быстрее? Дарья замерла. Тень тоже остановилась, но как будто с запозданием, будто решая, стоит ли подчиняться законам физики. В лифте зеркальные стены множили её отражение до бесконечности. Дарья старалась не смотреть, но взгляд сам возвращался к теням. Они колебались, как рябь на воде, создавая иллюзию движения там, где его не должно было быть. Офис встретил её привычным гулом. Шон что-то увлечённо объяснял новому интерну, размахивая руками. Катя неслышно скользила между столами, как призрак. Все казались нормальными, обычными, живыми. Дарья включила компьютер. Пока система загружалась, она проверила телефон — никаких странных сообщений. Ночной код казался далёким кошмаром, почти нереальным. Slack пискнул уведомлением. Новое сообщение в канале, которого она никогда раньше не видела: [#shadow-observer-log] Update: Witness status — UNSTABLE Сердце пропустило удар. Дарья обновила страницу — сообщение исчезло. Канал тоже. Она оглянулась: никто не смотрел в её сторону, все были заняты своими делами. — Эй, кто-нибудь получил странное уведомление? — спросила она в пространство. — М? — Майкл поднял голову от монитора. — Какое? — В Слаке. Что-то про... — Дарья замолчала. Как объяснить то, что уже исчезло? — А, наверное, тестовые оповещения, — махнул рукой Майкл. — Девопсы что-то настраивают. Его голос звучал обыденно, но взгляд задержался на ней чуть дольше обычного. Дарья кивнула и повернулась к своему монитору. Теперь она чувствовала их взгляды — Кати, Майкла, может быть, даже растений. Что-то изменилось. Мир сместился на один шаг, как её тень в лифте, и она застряла между кадрами реальности. В наушниках зашипело статикой. Сквозь помехи пробивался ритм — точно такой же, как капли в ванной этой ночью. Как пульс кода. Как биение чужого сердца в глубине системы. Дарья застыла перед монитором. Пятнышко на клавише "F" казалось почти черным в полумраке офиса. Она наклонилась ближе — да, определенно кровь. Засохшая, въевшаяся в пластик. Курсор пульсировал в пустом терминале. Не просто мигал — именно пульсировал, с неровными интервалами. Вдох-выдох. Сжатие-расширение. Как сердце загнанного зверя. Ритм отдавался в висках знакомой болью. Она уже чувствовала его — той ночью, когда код впервые заговорил с ней. Чужой страх, древний и глубокий, как колодец в заброшенном доме. Пальцы зависли над клавиатурой. Экран моргнул, и строки появились сами — белые буквы на черном фоне: # YOU SAW IT. # NOW WHAT WILL YOU DO? «Видела что?» — подумала Дарья, но её пальцы уже тянулись к пятну крови. Что-то внутри кричало: не трогай, остановись! Но другая часть — та, что просыпалась по ночам от шепота кода — знала: это неизбежно. Подушечка указательного пальца коснулась засохшей крови. Стрелка вздрогнула. Пока её взгляд прикован к дисплею, указатель внезапно шевелится самостоятельно. Не набирает текст — просто пульсирует, словно некто в ожидании.Пока нет комментариев. Авторизуйтесь, чтобы оставить свой отзыв первым!