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

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