Един след друг започнаха да говорят. Елена Асенова отговаряше за сървърната част на системата. Иван Филипов, на двайсет и осем, работеше по мобилното приложение. Румен Костов, трийсет и две годишен, се занимаваше с базата данни — мястото, където се пазеше цялата информация за потребителите.
Записвах всичко в тефтера. Стегнато, без излишни подробности. Име. Проект. Какво се прави в момента.
После дойде редът на Мартин Филипов.
Той прочисти гърлото си. Гласът му все още звучеше самоуверено, но стойката му вече беше друга. Не се беше разплул в стола, както преди. Седеше изправен.
— Мартин Филипов. Фронтенд. Правя личния профил на потребителя.
— Фронтендът е всичко, което обикновеният човек вижда на екрана — поясних аз, макар че обяснението беше повече за реда в бележките ми. — Бутони, форми, страници. А личният профил е мястото, където потребителят влиза с име и парола, променя настройките си и преглежда историята си. Така ли е?
Мартин кимна отсечено.
— Срокът? — попитах.
— Ами… нормално върви. В процес е.
— По-точно, моля. За коя дата говорим?
Той повдигна рамене.
— До петък, най-вероятно.
— Добре. Днес до пет часа искам да ми изпратиш това, което вече е готово. За преглед. Трябва да видя реалното състояние.
Устните му се извиха. Почти незабележимо. Само единият ъгъл на устата му трепна, но го улових. Видяха го и двете момчета до него. Единият — същият, който сутринта беше изсумтял — се облегна назад на стола си.
Оперативката приключи. Всички се надигнаха и тръгнаха към вратата. Прибирах тефтера си, когато от коридора долетя гласът на Мартин. Не беше силен, но не беше и шепот. Говореше точно така, че да бъде чут, а после при нужда да може да каже: „Не беше към вас.“
— С връзки са я сложили. Видяхте ли я — тефтерче, химикалче. Все едно сме в счетоводство. Двайсет и три години опит, а се облича като библиотекарка. Да видим колко ще издържи.
Някой се засмя тихо.
Елена Асенова стоеше до машината за вода. Беше чула всичко. Погледна ме. Аз извърнах очи към монитора.
Три пъти. Три пъти само за половин ден. Първо — в коридора: „леличко, дръпни се“, при двама свидетели. После — онази подигравателна усмивка на срещата, когато му поставих задача. И трето — „с връзки“, уж зад гърба ми, но достатъчно високо, за да стигне до мен.
Отворих проекта на екрана. Трябваше да разбера какво вече е написано. Щом пръстите ми легнаха върху клавиатурата, напрежението вътре в мен се сниши. Това беше моята територия. Тук възрастта нямаше никакво значение. Имаше само един въпрос: работи ли, или не работи.
Малко преди пет Мартин Филипов ми изпрати кода си за проверка. Отворих файловете. Дванайсет модула, малко над четиристотин реда. Личен профил на потребителя — онази страница, през която човек влиза в сайта, променя личните си данни и вижда какво е купувал. Задачата не беше от най-сложните, но изискваше прецизност. Особено когато става дума за сигурност, защото зад такава страница стоят истински хора с истински лични данни.
Мартин се появи до бюрото ми. Ръцете му бяха в джобовете, брадичката — леко вирната. Слушалките висяха на врата му.
— Пратих го. Всичко работи. Мога ли да тръгвам?
— Изчакай — казах, докато преглеждах кода на екрана. — Седни, моля.
Той не седна. Остана прав и започна да прехвърля тежестта си от единия крак на другия.
Първата грешка излезе още на третата минута. Проверката на паролата беше написана неправилно — системата допускаше празно поле. Все едно имаш входна врата с брава, която се отваря само като дръпнеш дръжката. Без ключ. Всеки би могъл да влезе в чужд профил, без изобщо да знае паролата.
— Ето тук — посочих реда на екрана. — Проверката не работи. Потребителят може да влезе с празна парола. Разбираш ли какво означава това? Някой чужд човек отваря твоя профил и вижда всичко — име, адрес, номер на карта.
Мартин се наведе към монитора.
— А, да. Дреболия. После ще го оправя.
— Не е дреболия. Това е врата без ключалка.
Втората грешка беше още по-неприятна — потребителските данни се предаваха без защита. Все едно писмо с лични документи да бъде изпратено не в плик, а върху пощенска картичка. Всеки по пътя може да го прочете.
Третата — едно и също действие беше написано на четири различни места, вместо да бъде изведено на едно. Сякаш в рецепта за готвене указанието „загрей фурната на сто и осемдесет градуса“ е отпечатано четири пъти, на всяка страница. От това програмата става по-бавна и се чупи по-лесно.
После дойде четвъртата. Петата. Шестата.
Мартин мълчеше. Ушите му вече не бяха розови. Бяха яркочервени, като сварени раци в чиния. Извади ръце от джобовете и ги скръсти пред гърдите си.
Седмата грешка беше в проверката дали потребителят изобщо съществува, преди да му бъде показана страницата. Все едно пощальон да носи пратка на адрес, без да провери дали такава къща има. Пратката отива в нищото. А данните — при когото не трябва.
— Седем грешки — затворих тефтера. — В четиристотин реда код. Три от тях са критични. Ако това беше качено на реален сайт, личните данни на потребителите щяха да стоят на показ.
Мартин продължаваше да стои пред мен. Ръцете му вече не бяха скръстени, а отпуснати покрай тялото. Пръстите му бяха свити в юмруци.
— Ще го поправя — каза тихо.
— Разбира се, че ще го поправиш. Утре в десет сутринта очаквам новата версия. Искам всички седем точки да са отстранени.
Той се обърна и излезе с бързи крачки, без да погледне назад. Вратата зад него не се тръшна.
