Молодой коллега рассмеялся: «Тётя, отойди в сторону. Здесь нужны программисты, а не уборщицы». Через час он уже отправлял мне свой код на проверку.

«Женщина, вы куда? Здесь рабочая зона, а не кладовка»
Я остановилась. Папка в руке, пропуск на шее. Коридор третьего этажа, стеклянные перегородки, а за ними—мониторы, стулья, молодые лица. Передо мной стоял парень в ярком худи с наушниками на шее, преграждая путь. Лет двадцать пять, не больше. Модная стрижка, белые кроссовки, уверенный взгляд свысока.
«Тётя, отойдите. Здесь нужны программисты, а не уборщицы».
Он сказал это громко. Не шёпотом, не себе под нос—а в полный голос, на весь коридор. Двое парней за ближайшим столом подняли головы. Один фыркнул. Второй отвернулся, но не сумел скрыть улыбку.
Я могла бы ответить. Двадцать три года в профессии научили меня так отвечать, что потом человек неделю слова подбирает. Но я не стала. Молча обошла его, прошла по коридору до конца и села за пустой стол у окна. Положила папку. Достала блокнот—обычный бумажный, в клетку. Написала: «Кирилл. Худи с лого. Наушники. Первое впечатление».

Он смотрел мне вслед. Я краем глаза видела, как он повернулся к парням и покрутил пальцем у виска. Мол, смотрите, какая-то тётя с блокнотиком забрела в айти-отдел.
Было девять утра. Планёрка была в десять.
Двадцать три года я пишу программы. Точнее—код. Те самые строчки на экране, что потом становятся сайтами, мобильными приложениями, интернет-банкингом. Я начинала в 2003-м, когда половина этих мальчишек ещё не родилась. Мне тогда было двадцать пять—столько же, сколько сейчас тому парню в худи.
Первый компьютер я купила на деньги, которые три месяца копила со своей бухгалтерской зарплаты. Тогдашний муж крутил пальцем у виска: тридцатидвухлетняя женщина, какие курсы? Какая программирование? Иди борщ вари.

 

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

Виктор Сергеевич вошёл последним. Высокий, в очках, с седой бородой. Он оглядел всех и кивнул мне.
« Коллеги. У нас изменения. Вместо Дмитрия Олеговича, который ушёл в прошлом месяце, теперь команду возглавит новый руководитель. Для тех, кто не знает, тимлид принимает вашу работу. Проверяет код, распределяет задачи, решает, что подходит, а что нужно переделать. Прошу приветствовать Нелли Аркадьевну Самсонову. Двадцать три года в разработке. Последние двенадцать лет руководила командой в Systempro. Она сделала онлайн-банк для трёх с половиной миллионов пользователей.”
Я встала. Кивнула. Оглядела комнату.
Кирилл убрал телефон. Медленно. Очень медленно. Он посмотрел на меня. Потом на Виктора Сергеевича. Потом снова на меня. У него порозовели уши. Пока не красные—розовые.
« Коллеги, вопросы?» Виктор Сергеевич сел.
Я открыла блокнот.
« Давайте познакомимся. Кто чем занимается, какие задачи в работе, где нужна помощь. Пройдёмся по кругу. Имя, проект, текущая задача.»
Они представились по очереди. Лена—серверная часть системы. Антон, двадцать восемь, мобильное приложение. Сергей, тридцать два, база данных—там хранятся все данные пользователей. Я записывала всё в блокнот. Кратко, по сути. Имя—проект—текущая работа.
Потом очередь пришла к Кириллу. Он откашлялся. Голос был всё ещё уверенный, но поза изменилась—он теперь сидел прямо, не развалившись.
« Кирилл. Фронтенд. Я делаю личный кабинет.»

 

« Фронтенд—это то, что обычный человек видит на экране», объяснила я, хотя объяснение было скорее для блокнота, для порядка. « Кнопки, формы, страницы. Личный кабинет—место, где человек заходит по логину и паролю, меняет настройки, смотрит историю. Верно?»
Кирилл кивнул. Коротко.
« Сроки?» — спросила я.
« Ну, обычные. В процессе.»
« Поточнее, пожалуйста. К какому числу?»
Он пожал плечами.
« К пятнице, наверное.»
« Хорошо. Жду всё, что уже готово, сегодня к пяти. На ревью. Я хочу видеть текущее состояние.»
Он ухмыльнулся. Едва заметно, одним уголком рта, но я это увидела. И двое рядом тоже заметили. Один из них—тот, что фыркнул утром—откинулся на спинку стула.
Планёрка закончилась. Все пошли к двери. Я собирала блокнот, когда услышала в коридоре голос Кирилла. Не громко, но и не шёпотом. Он говорил нарочно, чтобы было слышно—но так, чтобы потом сказать: « Я не тебе говорил.»
« Её сюда по знакомству устроили. Видели—блокнотик, ручка мелкая. Как в бухгалтерии. Двадцать три года опыта, а одета как библиотекарь. Посмотрим, сколько выдержит.»
Кто-то тихо засмеялся.

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

 

— Вот, — я указал на строку. — Проверка не срабатывает. Пользователь может войти с пустым паролем. Ты понимаешь, что это значит? Посторонний заходит в твой аккаунт и видит всё—имя, адрес, номер карты.
Кирилл наклонился к экрану.
— А, да. Ерунда, потом поправлю.
— Это не ерунда. Это дверь без замка.
Вторая ошибка—данные пользователя передавались без защиты. Как будто письмо с паспортными данными отправляли не в конверте, а на открытке. Любой мог прочитать это по дороге.
Третья—одно и то же действие было написано в четырёх разных местах вместо одного. Как если бы в рецепте фразу «разогрейте духовку до ста восьмидесяти градусов» напечатали четыре раза—на каждой странице. Из-за этого программа работает медленнее и чаще ломается.
Четвёртая. Пятая. Шестая.
Кирилл молчал. Его уши были уже не розовые—они были красные. Ярко-красные, как раки на тарелке. Он вынул руки из карманов и скрестил их на груди.
Седьмая ошибка. Программа не проверяла, существует ли пользователь, прежде чем показывать ему страницу. Как почтальон, несущий посылку по адресу, не убедившись, что такой дом существует. Посылка уходит в никуда. А данные—кто знает куда.
— Семь ошибок, — я закрыл ноутбук. — В четырёхстах строках. Три из них критические. Если бы этот код попал на настоящий сайт, персональные данные пользователей лежали бы на виду.

Кирилл стоял. Руки уже не были скрещены—они висели вдоль тела. Пальцы сжаты в кулаки.
— Я исправлю, — тихо сказал он.
— Конечно исправишь. Жду исправленную версию завтра к десяти утра. Все семь пунктов.
Он развернулся и ушёл. Быстро, не оглядываясь. Он не хлопнул дверью—он её придержал. Но спина была напряжённая.
Я откинулся на спинку стула. Разжал пальцы—они болели. Весь день сжимал ручку из блокнота, будто от этого зависела жизнь. Шея затекла от напряжения. Плечи были как деревянные.
Лена подошла и поставила рядом со мной стакан чая.
— Я тебя вчера гуглила, — тихо сказала она. — На прошлой работе ты построил систему для банка. Для миллионов пользователей.
— На три с половиной миллиона, — поправил я. — Но спасибо за чай.
Она слегка улыбнулась и ушла.
Чай был горячий и сладкий. Я согрел ладони о стакан. Первое тёплое ощущение за весь день. Но расслабляться было рано.
В блокноте, на последней странице, мелким почерком: « Он может это сделать. Но не хочет. Посмотрим завтра.»
На следующее утро код пришёл в девять сорок семь. За тринадцать минут до срока. Я открыл файлы и начал проверять. Четыре из семи ошибок были исправлены. Три—нет. И это были самые важные. Именно те, что касались безопасности.
Кирилл появился в десять ноль пять. Его кроссовки скрипнули у порога.
— Я отправил, — бросил он с порога.
— Вижу. Остались три ошибки. Те самые, которые я вчера выделил красным.

 

«Там всё в порядке. Я проверил.»
«Нет. Всё не в порядке. Сядь, я тебе покажу.»
Он сел. Я вывела его код на большой монитор. Построчно показала, где программа не работает. Объяснила каждый момент. Простыми словами, без унижения, без насмешки. Так, как объясняешь сложную задачу тому, кто может понять—если захочет.
Он не хотел.
«Это придирки», — сказал он. — «На прошлой работе код такого уровня проходил без вопросов.»
«Значит, на прошлом месте были другие требования. Здесь требования — мои.»
«Может, твои требования из двухтысячных. Сейчас так никто не работает.»
Я посмотрела на него. Спокойно. Молча. Три секунды. Пять. Он не отвёл взгляд, но быстро, нервно моргнул.
«Кирилл, требования к безопасности одинаковы в 2003 и в 2026 году. Пароль не должен быть пустым. Данные пользователя не должны передаваться без защиты. Это не мода. Это основа. Как фундамент дома—без него всё рухнет.»
Он встал. Стул резко отъехал назад—ножки заскребли по полу.
«Я напишу Виктору Сергеевичу. Ты придираешься, потому что я вчера неправильно с тобой поздоровался. Это личное.»
И он вышел. Дверью не хлопнул. Но шаги по коридору были быстрыми и злым.

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

 

Виктор Сергеевич посмотрел на меня поверх очков.
«Нелли Аркадьевна?»
«Можно воспользоваться вашим компьютером?»
Он кивнул. Я пересела к его ноутбуку, открыла файл кода Кирилла и вывела первую ошибку на настенный экран.
«Вот проверка пароля», — спокойно сказала я, указывая на конкретные строки. «Смотрите, Виктор Сергеевич. Я ввожу пустое поле—ничего, ни одного символа. Жму ‘Войти’. И система впускает меня. В личный кабинет любого пользователя. Без пароля. Имя, адрес, история покупок, номер телефона—всё открыто.»
Виктор Сергеевич надел очки. Посмотрел на экран. Потом на Кирилла.
«Это не придирки», — продолжила я. — «Это дыра, через которую можно попасть к чужим данным. Кирилл считает это мелочью.»
Я показала вторую ошибку. Данные без защиты—открытка вместо конверта. Третья—программа не проверяет, кто перед ней, прежде чем показывать информацию. Я объяснила каждую просто, с примерами. Медленно. Без злости. Без торжества. Как показывают рентген: вот тут, и тут, и тут.
Виктор Сергеевич снял очки. Положил их на стол. Тихо.
— Кирилл, ты это видишь?
Кирилл молчал. Его пальцы были сцеплены на коленях. Костяшки побелели. Шея покрыта пятнами красного—неравномерно, от воротника худи до ушей.

— Нелли Аркадьевна права, — сказал Виктор Сергеевич. — Это не придирки. Это ошибки безопасности. Если бы этот код попал на рабочий сайт, у нас были бы серьезные проблемы. Очень серьезные. В том числе юридические.
Кирилл смотрел в пол.
А потом я сказала кое-что, что мысленно повторила сто раз после. Стоило ли—до сих пор не знаю.
— Кирилл, — мой голос был ровный, тихий. Я смотрела прямо на его макушку, потому что он не поднимал глаз. — Вчера ты представил меня отделу. Публично. При всем коридоре объяснил, что нужны программисты, а не уборщицы. А затем в коридоре сказал ребятам, что меня устроили сюда по связям.
Он резко поднял голову. В глазах—злость и испуг одновременно.
— Если хочешь, я могу устроить для тебя публичный разбор. Знаешь, что это такое? Это когда твой код показывают на проекторе всему отделу. Девять человек смотрят на каждую строку. И видят пустые пароли, незащищённые данные и код, который ты сам не проверил. Как тебе такое знакомство с командой?
Одна секунда. Две. Три.
Кирилл разжал пальцы. Потом снова сжал. Молчал.
Виктор Сергеевич откашлялся.

 

— Думаю, в этом нет необходимости. Кирилл, исправь код. Сегодня. Нелли Аркадьевна—спасибо, возвращайтесь к работе.
Мы вышли. Кирилл первым. Быстро, не оглядываясь. Его кроссовки скрипели по коридору. Я пошла следом. Медленно. Закрыла дверь. Оперлась о стену.
У меня дрожали руки. Не от страха. От того, что я сказала. Вслух. Перед начальником. Я предложила публично разобрать работу этого парня перед всем отделом—отразить его же поступок вчера в коридоре. Око за око. Справедливо? Может быть. Правильно? Я не уверена.
Он мальчишка. Двадцать пять лет. Два года опыта. Глупый, наглый, самоуверенный. Но всё равно мальчишка. Я могла бы просто показать ошибки и уйти. Без этой фразы о публичном разборе. Без зеркала. Профессионально и сухо.
Но я это сказала. И попала точно туда, куда хотела.
Лена стояла у кофемашины. Она увидела, как мы вышли. Посмотрела на меня—долго и внимательно. Я выпрямилась. Оттолкнулась от стены. Пошла к своему столу.
К трём часам исправленный код был у меня на экране. Все семь ошибок закрыты. Аккуратно, грамотно, чисто. Кирилл умел хорошо писать. Когда хотел. Или когда понимал, что его работу действительно проверят.

В тот вечер я осталась одна в пустом офисе. Все ушли. Монитор светился синим. Рядом стоял стакан остывшего чая. Тетрадь была открыта на сегодняшней странице. Семь пунктов—all перечеркнуты. Исправлено.
Я допила холодный чай. И подумала—нужно ли было делать именно так? С угрозой публичного разбора? Двадцать три года я строила свою репутацию. Строчка за строчкой. Бессонная ночь за бессонной ночью. Четырнадцать стажёров. Система для миллионов. И парень с наушниками на шее решил, что я уборщица. Из-за возраста. Из-за кардигана. Из-за седых волос.
Нет. Я не пожалела. Но лёгкости тоже не было.
Прошло две недели. Теперь Кирилл здоровается. Кивает, не глядя мне в глаза, сквозь зубы выдавливает «доброе утро», но всё же здоровается. Сдаёт код вовремя. Ошибок стало три, потом две, потом одна. Он учится. Молча, без вопросов—но учится. Я вижу это в коде.

 

Только в курилке—Лена мне сказала, я сама туда не хожу—он говорит что-то ещё. Что я “самоутверждаюсь за счёт молодёжи”. Что “притащили какую-то тётю, которая всем жизнь испортила”. Что “раньше тут всё было нормально, а теперь проверяют каждую запятую”. Половина отдела кивает. Они привыкли сдавать код, который никто не смотрел. Другая половина молчит и работает. Их код стал чище. Я это тоже вижу.

И каждое утро я прихожу в девять. Сажусь за стол. Открываю свой блокнот. Седина на висках всё так же. Серый кардиган тот же—что и в первый день, и каждый день потом. За спиной двадцать три года. Четырнадцать стажёров. Три с половиной миллиона пользователей, которые даже не знают, что их данные были в безопасности, потому что одна “тётя с блокнотиком” проверяла каждую строчку.
И один вопрос, который не отпускает меня.
Я тогда зашла слишком далеко, в кабинете Виктора Сергеевича? С этим публичным разбором—это было правильно или слишком жёстко? Ведь он мальчишка. Глупый, но мальчишка.
Или правильно, что я сразу расставила всё по местам—что здесь судят не по возрасту, а по результату?
Как ты думаешь?