Alexei Meglei este originar din Moldova, însă după absolvirea liceului a plecat în Rusia, unde a studiat medicina. În anii de studenție a devenit pasionat de tehnologiile viitorului, iar după absolvirea studiilor de medicină a decis să învețe IT și să devină mai aproape de lumea IT. În 2023, a revenit în Moldova, deși avea opțiunea să lucreze în Armenia sau Serbia. Mai biine de un an lucrează la Grid Dynamics Moldova în calitate de Senior Data Engineer. În acest articol vă invităm să cunoașteți prin ce metamorfoze profesionale a trecut Alexei și să aflați cum a ajuns să fie data engineer în compania Grid Dynamics.
– Cum ai ajuns în IT?
– Primele mele studii sunt în medicină, iar pasiunea mea pentru programare a început ca un hobby intelectual în ultimul an de facultate, ceva asemănător cu jocul de șah. Am învățat bazele limbajului Python, am rezolvat probleme simple pe resurse precum LeetCode și pentru o scurtă perioadă am crezut naiv că știu să programez. În același timp, am încercat să fac ceva mai practic – am scris primele programe de consolă, parseri și site-uri web simple. Treptat, am constatat că lipsa mea de cunoștințe teoretice și lipsa de expunere tehnică mă încetineau foarte mult. Am început să caut cursuri gratuite și să le urmez, era 2016 și găsirea unor cursuri bune nu mai era o problemă. Privind în urmă, e cert cât de puțin mi-am dat seama de ceea ce aveam nevoie să învăț, dar la vremea respectivă am luat tot ce mi-a căzut la îndemână. Introducere în Haskell? Hai să încerc! Informatică teoretică? Minunat, mă înscriu la curs. În cele din urmă, acționând aleatoriu, oarecum am reușit să-mi extind orizontul și cu siguranță am învățat o mulțime de lucruri noi, dar am făcut-o cu investiții enorme de timp – nu e tocmai o cale recomandată.
Oricum, am savurat procesul și, în loc să mă angajez ca asistent medical, precum toți colegii mei de facultate, am decis să încerc să găsesc un loc de muncă part-time ca programator. Îmbinarea n-a fost deloc ușoară și drept urmare, în ultimul an de facultate, am dezvoltat magazine online și roboți Telegram pentru prietenii și cunoscuții mei pentru sume mici de bani, dar, oricum, acestea au fost proiecte reale, în care am făcut primele greșeli și am dobândit experiență autentică. După absolvire, abilitățile, cunoștințele și proiectele finalizate din CV-ul meu m-au ajutat să-mi găsesc destul de ușor un loc de muncă ca programator și în toamna anului 2018 am fost angajat full-time ca dezvoltator Python.
– Ce ai făcut înainte de Big Data?
– La primul meu loc de muncă, funcția mea se numea dezvoltator Python, dar în esență era ceva între un dezvoltator back-end și un DBA (administrator baze de date). Am lucrat în departamentul de statistică al unei companii mari de produse, companie care se ocupa preponderent de optimizarea fluxului de lucru al documentelor electronice, o parte din timp scriind API-uri pentru front-end și alte microservicii, o parte din timp optimizând Postgres și integrări de date pentru Postgres și Clickhouse. O particularitate a muncii în companiile mari e tendința de a pune accent pe aprofundarea competențelor în detrimentul extinderii acestora. Eram un pic deranjat de acest aspect, dar experiența de lucru cu bazele de date s-a dovedit a fi foarte utilă pentru mine mai târziu.
Cea de-a doua companie a fost una destul de mică. Inițial, rolul meu era legat doar de dezvoltarea back-end, dar foarte curând diversitatea sarcinilor mele a crescut mult – dezvoltare front-end, lucrul la pipeline-uri CI/CD, scrierea unui prototip al unei aplicații Android și multe altele. Aceasta este o particularitate a lucrului în companiile mici – lărgirea orizonturilor tehnice, dar fără a acumula competențe profunde în tehnologii specifice. Pe parcursul celor doi ani de muncă, am făcut mari progrese în înțelegerea arhitecturii unui produs software, precum și în capacitatea mea de a asimila rapid o tehnologie necunoscută.
– Ce face un inginer de date?
– Inginerul de date este un concept destul de larg și în diferite echipe acest specialist poate face lucruri diferite: undeva procesând și stocând date neprelucrate, undeva migrând date structurate dintr-un cloud în altul, iar undeva fiind responsabil pentru aspectul tehnic, în baza căruia își desfășoară activitatea echipa de data scientists.
– Un inginer de date nu este un data scientist? Care este diferența dintre cele două?
– Acestea sunt specialități diferite care sunt adesea confundate. Nu există o divizare clară a responsabilităților între ele, dar, de obicei, un data scientist este persoana care analizează datele ordonate și decide modul în care aceste date pot fi utilizate cu randament maxim în beneficiul afacerii, iar un inginer de date este persoana responsabilă de procesarea eficientă a acestor date și de monitorizarea calității lor. Momentan, se observă o tendință de creare a rolurilor noi, mai specializate, cu domenii de responsabilitate mai clare, cum ar fi product analyst, machine learning engineer, MLOps, data warehouse engineer, DataOps și așa mai departe.
– Care date sunt big data și care nu-s? Pot considera 1 GB de date drept big data?
– Big data este mai degrabă un termen informal decât o definiție strictă. Simplist vorbind, big data se referă la un set de date care este dificil de procesat prin metode tradiționale. Poate fi un volum mic de date care necesită procesare foarte rapidă (un exemplu de cerință ar fi procesarea în 100 de milisecunde a 1 GB de date), și poate fi lipsa de omogenitate – datele provin din surse diferite în formate diferite, caz în care procesarea calitativă este o provocare inginerească. Acestea sunt, respectiv, trei caracteristici principale ale big data – Volume, Velocity și Variety (Volum, Viteză și Varietate).
– Trebuie un inginer de date să cunoască atât data science cat și matematică?
– Dacă lucrați într-o echipă cu data scientists, este foarte util să înțelegeți elementele de bază ale data science. E admisibil să nu cunoașteți în profunzime algoritmii aplicați. În ceea ce privește matematica, nu este necesar să o cunoașteți la fel de bine ca un data scientist, dar cu siguranță nu va fi de prisos.
– Cât de dificil a fost să treci la big data din dezvoltator back-end?
– Depinde de experiența acumulată în materie de back-end, dar în general nu este foarte dificil. Se poate spune că domeniile au multe afinități, mai ales dacă soluția dezvoltată este expusă unor sarcini mari în timpul exploatării, dar există și diferențe, pe alocuri substanțiale.
Când m-am alăturat Grid Dynamics ca inginer de date, în primele trei luni am studiat tehnologii care pentru un inginer back-end sunt noi: Hadoop, Spark, Airflow, servicii cloud AWS/GCP/Azure destinate procesării și stocării datelor. Din punctul meu de vedere, aceasta este o tranziție ideală. În cazul meu, trei luni au fost suficiente pentru a obține abilitățile necesare și pentru a nu cheltui timp suplimentar pentru a învăța noi tehnologii atunci când am început să lucrez la proiect.
– Este necesar să deții studii superioare tehnice pentru a lucra ca inginer de date?
– Este de dorit să ai, dar de obicei nu există cerințe rigide în acest sens. Am obținut o a doua diplomă de studii superioare în Machine Learning and Highly Loaded Systems (Învățarea Mașinilor și Sisteme cu Grad Ridicat de Încărcare) și am fost foarte mulțumit. Cunoștințele pe care le-am dobândit în acei doi ani de masterat mi-au fost utile atât în activitatea mea la Grid Dynamics, cât și pentru dezvoltarea mea personală și pentru lărgirea orizonturilor mele.
Aș fi putut lucra fără o diplomă de master? Probabil, dar luând masterul, am reușit să-mi complementez cunoștințele practice cu bazele teoretice fundamentale, fapt care a cauzat un salt calitativ în formarea mea profesională.
Grid Dynamics Moldova este una dintre puținele companii din țara noastră care se poate mândri cu o experiență bogată în servicii de consultanță și dezvoltare de software pentru unele dintre cele mai mari și respectate companii și mărci din lume.
Mai multe detalii despre această companie poți afla aici și aici.