Carierele în IT au devenit din ce în ce mai căutate în ultimii ani. Dacă până nu demult era necesară terminarea unei facultăți de profil pentru a ajunge programator, astăzi, mulți dintre cei care activează în acest sector au urmat cursuri informale sau au învățat programare pe cont propriu.

Interviu cu Cosmin, Senior Software Engineer Keysight TechnologiesFoto: Keysight Technologies România

Lipsa necesității unei educații formale, alimentată și de cererea foarte mare de specialiști IT din piață, este, probabil, unul dintre motivele principale pentru care putem observa un trend de reconversie profesională spre IT în rândul angajaților din România.

Pentru a afla mai multe despre ce presupune o carieră de inginer software, de la cunoștințe până la responsabilități, am stat de vorbă cu Cosmin, Senior Software Engineer Keysight Technologies Romania.

1. Cum ai decis pe ce domeniu să profesezi ca inginer software atunci când ai terminat facultatea? De unde ai primit sprijin, ce pași ai urmat?

Cariera mea profesională a început chiar la Ixia (acum Keysight Technologies). În 2009 profesorul meu de la facultate m-a recomandat pentru un interviu, am fost angajat, iar restul este istorie. În prezent fac parte din echipa de Platform în cadrul căreia dezvoltăm funcționalități pentru stiva TCP/IP.

2. Cât de importantă este prima companie la care lucrează un inginer software pentru viitoarea lui carieră?

Primul job nu se uită niciodată. Nu știu dacă are neapărat importanță unde începi, ci mai degrabă să îți dai seama ce vrei, ce îți place să faci. Cred că sunt foarte puțini cei care au nimerit din prima jobul viselor lor - de obicei e nevoie să experimentezi mai multe lucruri.

Eu mă consider norocos pentru că primul meu job a fost în domeniul de networking de care eram pasionat încă din facultate. Aici mi se pare că ajută destul de mult și internshipurile deoarece poți experimenta pe parcursul studenției cu diferite proiecte, iar atunci când termini facultatea ar trebui să ai o idee mai clară asupra a ceea ce vrei să faci.

3. La ce ar trebui să se uite un inginer atunci când decide pe ce arie vrea să se specializeze?

În primul rând ar trebui să aleagă ceva ce îi place, iar în al doilea rând aș spune că trebuie ca acea arie să aibă un potențial de dezvoltare în viitor. În domeniul programării sunt numeroase arii de specializare și, din fericire, există facultăți precum Facultatea de Automatică și Calculatoare din cadrul Universității Politehnica din București care permit interacțiunea cu cele mai importante dintre acestea. Astfel alegerea este mai ușoară.

4. Mulți tineri schimbă foarte des companiile la care lucrează. Cum ai făcut tu și ce recomanzi?

Într-adevăr, noile generații schimbă companiile destul de repede. Ia destul de mult timp să te obișnuiești cu un produs/tehnologie și să contribui semnificativ la dezvoltarea unui anumit produs. Pe de o parte este bine că experimentează și că învață mereu lucruri noi, pe de altă parte o iau mereu de la zero.

Deși, după cum spuneam anterior, eu am avut norocul ca primul job să fie în domeniul care îmi plăcea și cu proiecte foarte interesante, și eu am fost tentat după câțiva ani să încerc și altceva. După ce am făcut acest pas, însă, mi-am dat seama că tot networkingul este marea mea pasiune, așa că am revenit la Keysight.

5. Ce face un senior software engineer? Ce responsabilități are?

Un senior software engineer trebuie să cunoască toată partea tehnică a unui proiect și să ajute și să îndrume noii colegi. Apoi, trebuie să se gândească la metode de îmbunătățire a produsului. Și nu în ultimul rând, trebuie să aibă curaj să riște să strice lucrurile, dar să aibă și capacitatea să le repare, pentru ca altfel nu se poate progresa. În companiile mari există proiecte extrem de complexe, dezvoltate pe parcursul mai multor ani, a căror aliniere la noi cerințe și tehnologii stagnează din cauza probabilității ca modificarea unei componente să aibă efect nedorit asupra funcționalității per ansamblu.

6. Poți să ne spui care sunt etapele de dezvoltare a unui inginer software de la nivelul de junior și până ajunge senior? De câți ani de experiență este nevoie și ce trebuie să facă?

Nu cred că titlul de inginer junior sau senior este important, cât experiența acumulată. Fiecare ar trebui să aibă în vedere învățarea și dezvoltarea continuă. Părerea mea este că ești senior atunci când ai citit destul cod încât să nu ți se mai pară nimic nou, iar eu după 12 ani și sute de mii de linii de cod încă mai am multe de văzut. Acest domeniu este atât de activ încât, dacă stai câteva luni fără să urmărești un proiect mare open-source, ai pierdut ritmul.

7. Mulți ingineri seniori oscilează între a ajunge arhitecți software și a alege un rol care implică mai mult management. Care este recomandarea ta și de ce?

Consider că cele două roluri presupun abilități și pasiuni diferite. Amândouă sunt foarte importante în cadrul echipei, însă trebuie să îți dai seama dacă îți place mai mult să lucrezi cu oamenii (people-skills), sau să fii tot timpul concentrat pe detaliile tehnice.

8. Au fost situații în care ai avut dubii dacă faci ce îți place sau nu? Dacă da, cum le-ai rezolvat?

Cred că și atunci când îți place ceea ce faci este important să nu intri într-o rutină, fără acea bucurie pe care o simți când îți iese un lucru și nu a fost ușor. Eu când am ajuns într-o astfel de situație am ales să schimb proiectul cu ceva mai interesant, cu mai multe provocări.

9. Cu ce tehnologii lucrezi în acest moment și cum schimbă produsele respective viața oamenilor în general?

Lucrez în domeniul TSN (Time Sensitive Networking) cu aplicabilitate în rețele fixe, wireless sau mobile. Produsele noastre ajută la testarea echipamentelor clienților noștri din industrii precum Automotive și Telecom, care urmează a fi puse în producție. Ca tehnologii, folosim Docker / Kubernetes Deployments, Virtualization of Networking Concepts (NFVs), Traffic Generation from Kernel and DPDK, VMware Virtualization (ESXi, vCenter), OpenStack Private Cloud Administration.

10. Care ar fi definiția succesului pentru un inginer?

Ca și în cazul unui actor, succesul unui inginer este dat de portofoliul de proiecte, cunoștințe, talent. Un inginer de success trebuie să aibă rezultate, să te poți baza pe el că poate face față unor noi provocări, iar în același timp, munca lui trebuie să fie apreciată de alți ingineri și să fie dispus să împărtășească experiența lui.

Articol susținut de Keysight Technologies