Au început să se prezinte, unul după altul. Cristina Dulgheru se ocupa de partea de server a sistemului. Daniel Moldovan, douăzeci și opt de ani, lucra la aplicația mobilă. Gabriel Dulgheru, treizeci și doi, răspundea de baza de date, adică locul în care se strângea toată informația despre utilizatori.
Eu notam în caiet. Fără fraze inutile. Nume, proiect, ce are acum pe masă.
Când i-a venit rândul lui Sorin Mureșanu, și-a dres glasul. Vocea îi rămăsese sigură pe ea, însă trupul îl trăda: nu mai stătea tolănit, ci drept, cu spatele încordat.
— Sorin Mureșanu. Frontend. Lucrez la contul personal al utilizatorului.
— Frontendul este partea pe care o vede omul obișnuit pe ecran, am lămurit eu, mai mult pentru ordine și pentru notițele mele decât pentru ceilalți. Butoane, formulare, pagini. Iar contul personal este zona în care utilizatorul intră cu nume și parolă, își schimbă setările și își verifică istoricul. Corect?
Sorin a dat scurt din cap.
— Termenul?
— Păi… e în regulă. E în lucru.
— Mai exact, te rog. Pentru ce dată?
A ridicat din umeri.
— Probabil până vineri.
— Bine. Ce ai finalizat până acum vreau să primesc astăzi, la ora cinci, pentru verificare. Trebuie să văd stadiul real.
A schițat un zâmbet. Aproape invizibil, doar dintr-un colț al gurii, dar l-am prins. Și l-au observat și doi dintre băieții de lângă el. Unul dintre ei, același care pufnise dimineață, s-a lăsat pe spătarul scaunului.
Ședința s-a încheiat. Oamenii s-au ridicat și au început să iasă. Îmi strângeam caietul, când vocea lui Sorin mi-a ajuns din coridor. Nu vorbea tare, dar nici în șoaptă. Exact cât să fie auzit și, la nevoie, să poată spune după aceea: „Nu vorbeam cu dumneavoastră.”
— Au pus-o aici pe pile. Ați văzut? Caiet, pixuleț… ca la contabilitate. Douăzeci și trei de ani de experiență, dar îmbrăcată ca o bibliotecară. Să vedem cât o ține.
Cineva a râs încet.
Cristina stătea lângă dozatorul de apă. Auzise tot. S-a uitat spre mine. Eu mi-am întors privirea către monitor.
De trei ori. De trei ori într-o jumătate de zi. Prima dată, pe hol: „tanti, dați-vă la o parte”, cu doi martori de față. A doua oară, zâmbetul acela batjocoritor din timpul ședinței, când îi dădusem sarcina. A treia oară, „pe pile”, spus pe la spate, dar calculat astfel încât să-mi ajungă la urechi.
Am deschis pe ecran codul proiectului. Trebuia să înțeleg ce fusese deja scris. Mi-am așezat degetele pe tastatură și, aproape imediat, în mine s-a făcut mai liniște. Asta era zona mea. Aici vârsta nu conta. Aici conta un singur lucru: funcționează sau nu funcționează.
La ora cinci, Sorin Mureșanu mi-a trimis codul pentru revizie. Am deschis fișierele. Douăsprezece module, peste patru sute de linii. Contul personal al utilizatorului, adică pagina aceea prin care omul intră pe site, își modifică datele și vede ce cumpărase înainte. Nu era o sarcină extraordinar de complicată, însă cerea atenție. Mai ales la partea de securitate, fiindcă în spatele acelei pagini nu existau simple câmpuri într-un formular, ci oameni reali, cu date reale.
Sorin a apărut lângă biroul meu. Mâinile în buzunare, bărbia ridicată puțin, căștile atârnându-i la gât.
— Am trimis. Merge tot. Pot să plec?
— Așteaptă, am spus, derulând codul pe ecran. Ia loc, te rog.
Nu s-a așezat. A rămas în picioare, mutându-și greutatea de pe un picior pe altul.
Prima problemă a ieșit la iveală după trei minute. Verificarea parolei era greșită: programul accepta câmpul gol. Era ca o yală care se deschide dacă apeși pur și simplu pe clanță. Fără cheie. Oricine ar fi putut intra în contul altcuiva fără să știe parola.
— Aici, i-am arătat linia. Validarea nu se declanșează. Utilizatorul poate intra cu parola goală. Îți dai seama ce înseamnă? Un străin intră în contul tău și vede tot: nume, adresă, număr de card.
Sorin s-a aplecat spre monitor.
— A, da. O nimica toată. Repar mai târziu.
— Nu este o nimica toată. Este o ușă fără încuietoare.
A doua eroare: datele utilizatorului erau trimise fără protecție. Ca și cum ai expedia o scrisoare cu informații din buletin nu într-un plic, ci pe o carte poștală. Oricine ar fi putut citi pe drum.
A treia: aceeași operațiune era scrisă în patru locuri diferite, în loc să fie scoasă într-un singur punct. Ca într-o rețetă de bucătărie în care indicația „încălzește cuptorul la o sută optzeci de grade” apare de patru ori, pe fiecare pagină. Programul nu devine mai bun din asta. Devine mai lent și se strică mai ușor.
A patra. A cincea. A șasea.
Sorin nu mai spunea nimic. Urechile nu îi mai erau roz, ci roșii de-a binelea, aprinse ca racii pe platou. Își scosese mâinile din buzunare și le încrucișase pe piept.
A șaptea eroare: programul nu verifica dacă utilizatorul exista înainte să-i afișeze pagina. Ca un poștaș care duce un colet la o adresă fără să se asigure că acolo chiar există o casă. Coletul se pierde în gol. Iar datele ajung cine știe unde.
— Șapte greșeli, am spus, închizând caietul. În patru sute de linii. Trei dintre ele sunt critice. Dacă acest cod ajungea pe un site real, datele personale ale utilizatorilor ar fi fost expuse la vedere.
Sorin stătea nemișcat. Nu-și mai ținea brațele încrucișate; îi atârnau pe lângă corp. Degetele îi erau strânse în pumni.
— Le repar, a zis încet.
— Sigur că le repari. Mâine dimineață, la zece, aștept versiunea corectată. Toate cele șapte puncte.
S-a întors și a plecat cu pași repezi, fără să privească înapoi.
