Fișa postului

Un inginer IT din România care se ocupă de hărțile Bolt mi-a explicat care-i faza cu jobul lui

Printre aplicațiile de pe telefonul tău sigur se regăsesc și cele de comandat mâncare și diverse bunuri. Acum ai ocazia să afli cum e jobul unui inginer software Bolt care lucrează în echipa de Map Improvements.
Răzvan Băltărețu
Bucharest, RO
inginer software maps improvement bolt romania fisa postului job salariu bani backend engineer
Cristian Lupașcu e Staff Software Engineer în echipa Map Improvements a Bolt. Colaj: Flavia Florea / VICE România. Imagini: British Library / Unsplash; fotografie din arhiva personală

Fișa postului e o serie în care îi întrebăm pe oameni ce înseamnă meseria lor, de fapt, și cum au ajuns să lucreze în domeniul în care o fac.

Cristian Lupașcu are 43 de ani, e din Brăila și în prezent lucrează în București. A absolvit Academia de Studii Economice, Facultatea de Contabilitate și Informatică de Gestiune, iar până la jobul de acum a trecut pe la TotalSoft, Cetelem și Invibes Advertising. În februarie 2018, a fost contactat de un recruiter Taxify (denumirea anterioară a Bolt) și e angajat din aprilie 2018. 

Publicitate

În prezent, este Staff Software Engineer în echipa de Map Improvements a Bolt. În fișa postului unui backend engineer la Bolt intră câteva responsabilități generale, cum ar fi primirea proiectelor de implementat de la Product Manager, definirea arhitecturii software pentru noi funcționalități, implementarea și testarea, urmărirea în producție (monitorizare, iar în caz de incidente alertare și remediere) și componenta de review-uri, adică validarea soluțiilor propuse de alți colegi în documente de arhitectură sau revizuirea schimbărilor de cod propuse.

În afară de aceste responsabilități generale, scopul echipei Map Improvements este să mențină o hartă cât mai apropiată de realitate cu putință. 

În ceea ce privește viața de familie, Cristian are doi copii – un băiat de șapte ani și un altul de 12 – și susține că i-ar îndemna să se orienteze către un astfel de job. „Susțin copiii să-și găsească vocația, lucrurile care să-i împlinească. Până acum, se pare că acele lucruri sunt matematica și, din ce în ce mai mult, informatica.”

Mai departe îți prezint jobul acesta, așa cum mi l-a explicat Cristian, dar și cum a fost parcursul lui profesional până în acest punct.

De la contabilitate la programare și care-s dificultățile jobului

VICE: Cum i-ai explica jobul tău unui absolvent de liceu? I l-ai recomanda?
Cristian Lupașcu: Primesc probleme de rezolvat și construiesc soluții, de obicei gândindu-mă și scriind cod. În momentul de față, scriu programe care analizează și modifică harta, pentru a putea găsi trasee optime între șoferi, curieri și utilizatori, restaurante. Dacă ești la un liceu cu profil de informatică, probabil cunoști câțiva dintre algoritmii pe care îi folosim aici.

Dacă vrei să construiești o carieră ca inginer software, cu siguranță recomand acest job. Este unul în care întâlnești o mulțime de provocări care sunt plăcut de rezolvat și din care înveți multe.

Publicitate

Care e cea mai dificilă parte la jobul ăsta? Dar cea mai ușoară?
Uneori avem de rezolvat probleme pentru care nu se cunoaște o soluție „standard”. Nu poți citi o carte sau un articol de blog în care cineva descrie cum compania X a rezolvat această problemă în trecut. Când ne confruntăm cu astfel de situații, este nevoie de multe încercări și un pic de creativitate pentru a le depăși. De multe ori ajută să te îndepărtezi de calculator. Multe soluții pe care le-am implementat mi-au venit atunci când mă plimbam, spre exemplu.

Alte provocări sunt reprezentate de proiectarea de aplicații scalabile și cu un grad ridicat de disponibilitate. Să calculezi traseele optime pentru 2,5 milioane de șoferi care deservesc 100 de milioane de utilizatori în 400 de orașe nu este o sarcină ușoară.

Cea mai ușoară parte este interacțiunea cu colegii. Oriunde am lucrat am avut norocul de a cunoaște persoane de la care am avut ce învăța, însă aici am întâlnit oameni extrem de bine pregătiți, mulți dintre ei cu experiență anterioară în alte companii renumite. De câte ori mă confrunt cu o problemă tehnică deosebită sau am de-a face cu o tehnologie nouă, pot găsi pe cineva care are experiență și îmi poate da un sfat.

Cât timp mi-ar lua să învăț să fac ce faci tu?
Depinde ce știi să faci deja și, poate și mai important, de ce îți place să faci.

Dacă nu știi să programezi și începi să înveți de astăzi, cred că este posibil ca în șase până la 12 luni să ajungi la un nivel de cunoștințe care să-ți permită să te angajezi ca programator. Trăim într-o perioadă în care este foarte ușor să înveți, deoarece există foarte multe resurse bune online, multe dintre ele chiar gratuite. 

Publicitate

După ce ai învățat să programezi, cred că o perioadă de minimum doi–trei ani de lucru ca programator profesionist este necesară pentru a înțelege ce înseamnă să creezi software care rulează în producție, ce probleme pot apărea și cum poți să le previi. Totodată, vei înțelege că o carieră de programator nu înseamnă doar să comunici cu calculatorul, ci că și comunicarea cu alți oameni (colegi, clienți) este la fel de importanta. 

Apoi trebuie să înveți cum sunt reprezentate hărțile într-un calculator. Este foarte simplu: o mulțime de puncte și linii care le unesc. Din păcate, chiar și cu o structură atât de simplă lucrurile se pot complica când vine vorba de reprezentarea tuturor elementelor din lumea reală care afectează traficul (sensuri unice, „interzis la stânga”, semafoare), găsirea celor mai bune trasee și cât durează navigarea pe fiecare.

Vestea bună este că dacă ți-ar plăcea să faci asta, te poți angaja la noi. Îți punem la dispoziție documentația noastră și în câteva săptămâni vei fi un expert.

Cât timp te mai vezi făcând treaba asta?
De mic copil mi-au plăcut hărțile și geografia, apoi calculatoarele. Este prima oară când am găsit un job care îmbină aceste două lumi minunate și nu m-am gândit să renunț. Cu siguranță voi mai face asta ani mulți. 

Dacă mă întrebi de programare, în general, voi face asta toată viața. 

Ce te bucură la jobul de acum?
Totul. Chiar și părțile dificile, momentele în care încă nu vezi o rezolvare la problema cu care te confrunți. Un alt lucru satisfăcător este că de cele mai multe ori rezultatele muncii pot fi prezentate cu vizualizări pe hartă, ceea ce este ușor de înțeles și, de multe ori, are o estetică aparte.

Publicitate

Cel mai important este că pot contribui la îmbunătățirea serviciului, lucru care afectează milioane de clienți din zeci de țări, iar cu fiecare lucru pe care îl facem problema transportului devine un pic mai simplă pentru cineva, undeva.

Ce ai schimba la job?
Nimic. Acum 10–15 ani citeam cărți despre „best practices” în industria software și eram frustrat că realitatea din jurul meu era cu totul alta. Spre exemplu, nu se punea mult preț pe teste automate, erau considerate o pierdere de timp, iar testarea se făcea manual. Mă întrebam dacă voi ajunge vreodată să lucrez într-o companie precum cele despre care citeam în cărțile respective.

Astăzi lucrez la Bolt, unde toate practicile moderne de construit software sunt aplicate cu succes. Avem un sistem format din sute de programe, toate testate automat. Practic, atunci când vrei să publici o versiune nouă, în aproximativ 15 minute poți rula toate testele automate și, astfel, poți afla dacă versiunea ta poate fi publicată în siguranță.

Te ajungi cu banii?
Pot spune că sunt norocos că jobul pe care îl iubesc este plătit la un nivel care-mi permite să trăiesc decent.

Dar primii bani din ce i-ai câștigat?
Primii bani i-am câștigat pe la 16 ani, lucrând în Excel. La vremea aceea, multă lume folosea calculatoare de birou. Operațiile uzuale în contabilitate (de exemplu, însumarea a sute de numere) erau greoaie și necesitau uneori reluarea calculelor de la zero în cazul unor erori. În comparație cu acest proces, utilizarea programelor de tip Spreadsheet oferea avantaje clare. Mi-a plăcut mult să lucrez cu Excel, să explorez multitudinea de funcții pe care le oferea. Pot spune că și astăzi îl utilizez cu plăcere câteodată, când am de analizat o cantitate relativ limitată de informații.

Publicitate

Cum de-ai migrat de la contabilitate la programare?
După aproximativ patru ani de lucrat în contabilitate și audit financiar, mi-am dat seama că unele dintre cele mai importante lucruri pe care le-am realizat erau diverse automatizări și mini-programe realizate în Excel sau diverse limbaje de programare. 

Am hotărât la un moment dat să mă angajez ca programator, iar după un proces de căutare de câteva luni am reușit să găsesc un job la o companie locală de outsourcing, care a reprezentat pentru mine o rampă de lansare excelentă. Acolo am învățat cu adevărat nu doar cum să construiesc software, dar și cum să interacționez cu clienții, cum să înțeleg nevoile lor și cum să le rezolv prin software.

Cât timp ți-a luat să-ți intri în mână în domeniul actual?
Am programat de prin clasa a șasea, așa că am reușit să devin productiv la primul meu job de programator în mai puțin de o săptămână. De atunci procesul meu de învățare nu a încetat. Și când mă uit în urmă la cei aproape 20 de ani de programare ca profesie, văd un progres semnificativ.

Perioada de început a fost presărată cu momente în care aveam senzația că știu și pot să fac aproape totul, apoi dădeam de câte un task sau o întâmplare care îmi demonstra contrariul și eram nevoit să intru din nou în modul de învățare.

Cum arată o zi cât de cât obișnuită?
De obicei, ajung la muncă un pic înainte de ora 9 și plec în jurul orei 18. Locuiesc foarte aproape de birou, așa că naveta este aproape inexistentă. 

Publicitate

Singurele lucruri oarecum constante sunt ora de venire, ora ședinței zilnice cu echipa (la 11), ora de prânz și ora de plecare. În afară de aceste aspecte, zilele pot fi foarte diferite, în funcție de proiectul la care lucrez în acel moment și de etapa în care am ajuns.

Aș împărți sarcinile de lucru în trei tipuri. 

Explorare – Când am de rezolvat o problemă pentru care nu se cunoaște soluția. De exemplu, am avut odată un task să detectez restricțiile de tip „sens unic” în orașele unde operăm. Partea de explorare include, de obicei, și crearea unor versiuni simplificate de programe, denumite „Proof of Concept” (PoC), pentru a testa ipotezele formate în această fază.

Documentare – Fie citesc documentație scrisă de colegii mei, fie scriu lucrurile pe care le-am aflat în faza de explorare. Documentația oferă două beneficii. În primul rând, o idee sau o soluție este supusă dezbaterii în cadrul echipei. Colegii pot găsi eventuale probleme soluției propuse, înainte să fie implementată. În al doilea rând, documentația este foarte utilă pentru noii colegi, care pot să-și dea seama ce am realizat de-a lungul timpului, cum am ales să facem lucrurile și de ce.

Îmi amintesc că am fost la un moment dat mentorul unui nou coleg și nu a trebuit să-i explic multe, tocmai pentru că a reușit să extragă informațiile din documentele pe care le scrisesem până în acel moment.

Publicitate

Implementare – Când o soluție este clară, se iau ideile din documentație și PoC și se transformă într-un produs software „production-ready”. 

În afară de aceste activități, particip și la interviuri „live coding” cu candidații noștri, activitate care mi s-a părut dificilă acum câțiva ani când am început și care încă mi se pare dificilă după circa 200 de interviuri. Pot spune însă că am evoluat mult pe acest plan. 

Când simt nevoia să iau pauze, merg în zona de relaxare, unde fie discut la cafea cu colegii, fie joc ping pong sau FIFA.

Ți-e frică de roboți că-ți vor fura jobul?
Cu siguranță nu. Procesul de robotizare a muncii este unul normal, este o componentă necesară a progresului. Dacă roboții vor ajunge vreodată să facă munca mea, atunci va trebui să improvizez și să mă adaptez. Poate voi lucra la construirea acestor roboți.

Părerea mea este că într-un orizont mediu de timp (câteva zeci de ani), roboții vor prelua o parte din munca noastră, dar partea mai „mecanică”. Poate nu va mai fi nevoie să scriem cod, însă munca pe care noi o denumim „creativă” probabil va mai avea componente care să poată fi făcute doar de către oameni.