Am avut plăcerea şi bucuria de a îmi petrece încă o vară în campusul Microsoft din Redmond. Știu că anul trecut nu am scris nimic despre lucrul acesta, însă acum, mă simt mai îndreptățit decât atunci să-mi spun impresiile pentru că în aceste două veri am făcut parte din grupuri diferite iar proiectele la care am lucrat aveau de asemenea diferențe fundamentale în scopul şi abordarea lor.
Deşi internii europenii sunt păsări rare în campus, noi romanii puteam forma o echipa de fotbal şi anul acesta, dar nu pentru un teren mare ca anul trecut ci de sală. Cei 7 interni au fost, în ordinea apariţiei lor pe scara avionului Silviu Niculiţă, Tiberiu Chiorean, Alexandru Calotoiu, Cornel Raţ, Victor Paraschiv, Andrei Iacob şi Bogdan Hobeanu. Nu trebuie uitat nici Geo care, politehnist eminent până acum 3 ani, a venit şi el sa îngroaşe numărul internilor romani tocmai din Canada de la McGill University.
Anul acesta am fost SDE ( Software Developer Engineer) în Connected Framework, echipa care dezvolta WCF, WF si Biztalk Server. Am avut de lucrat la două proiecte foarte solicitante pentru care era necesar un timp de cercetare şi studiere a anumitor tehnologii, protocoale şi arhitecturi (un ramp-up time cum îl numeau ei). Proiectele trebuiau finalizate în 12 săptămâni, motiv pentru care toate etapele dezvoltării lor au fost atent planificate de mine alături de mentor, în primele zile ale internship-ului. Mentorul era tăticul meu. Dacă aveam vreo durere el era persoana la care mă duceam sa cer ajutor. Mentorul mă ajuta să mă integrez în echipă, mă îndrepta către persoanele care au scris anumite librarii, API-uri, mă ajuta cu problemele legate de infrastructura internă, cu review-ul design-ului aplicaţiei, debugging-ul şi orice alte aspecte profesionale din viaţa mea de intern.
Primul mare şoc pe care îl ai atunci când lucrezi în Microsoft este că nu poţi lăsa nimic la voia întâmplării. Nu ai voie să dai copy/paste la orice cod de pe net, nu poţi pune întrebări pe forum-uri, nu poţi folosi aplicaţii scrise de alţi programatori, algoritmii pe care îi foloseşti trebuie să nu conţină nici un fel de patent şi să nu aibă asociate cu ei drepturi de utilizare. Chiar şi unele sarcini care sunt relativ banale îţi pot lua ceva timp încercând să eviţi anumite idei deja patentate sau folosite în algoritmi 3rd party.
Gândindu-mă la experienţa din vara trecută am fost surprins să remarc spectrul larg de cunoştinţe, idei şi trick-uri folosite în realizarea aplicaţiei mele. Fiecare zi este intensă chiar dacă uneori nu scrii nici o linie de cod. Atunci cauţi noi abordări, noi algoritmi, posibile îmbunătăţiri, arhitecturi ale unor componente care să evite probleme greu de rezolvat. Anul acesta m-am aplecat mai mult asupra framework-ului şi designului aplicaţiilor ce îl folosesc.
Connected Framework este o echipă care dezvoltă un framework şi principala ei preocupare este găsirea pattern-urilor de folosire cele mai larg răspândite dar, în același timp, păstrarea versatilității platformei şi bineînțeles performanţă, scalabilitate, ușurință în utilizare şi dimensiuni reduse ale livrabilelor. Acum eram la un nivel la care se cerea un grad mare de abstractizare a funcţionalităţilor şi realizarea unor componente generice dar uşor extensibile. Din afară poate părea treabă uşoara însă după ce participi la câteva şedinţe şi întâlniri cu arhitecţii din echipă începi să simţi presiunea, dificultăţile şi problemele cu care se confruntă.
Poate din ce v-am spus până acum regimul de viaţă din campus pare foarte sever şi riguros. Nu este deloc aşa. Deşi task-urile şi funcţionalităţile la care lucrezi necesită concentrare şi atenţie sporită, viaţa acolo este destul de relaxată. Când eşti blocat de un bug, o bucata de cod care nu vrea să meargă cum trebuie, te ridici şi faci o plimbare scurtă prin grădinile clădirilor, îţi goleşti mintea de problemele curente şi te relaxezi. Uneori merge :-) . In lounge-uri (fiecare etaj al unei clădiri are câteva) există diferite jocuri cu care să îţi umpli pauza de masă: mese de fussbal, biliard, ping-pong, trenuleţe din lego, Surface, Xbox si altele. Daca nu ai ghinionul sa fie vre-un meeting acolo, poţi sa te întinzi pe canapele/fotolii şi să citeşti o carte, să îţi savurezi cafeaua sau să stai la discuţii cu un coleg. Fiecare clădire Microsoft are în jurul ei un spaţiu verde destul de mare, caracteristic ei. Poţi întâlni chiar şi un mic iaz cu caraşi japonezi, păduri de conifere sau de bambus, diferite specii rare de copaci, multe flori, izvoare si mici cascade.
Campusul Microsoft din Redmond este foarte geeky aşa cum bănuiţi. Clădirile în care dezvoltă anumite produse sunt marcate specific, pe străzile din jurul clădirilor vezi tot felul de afişe cu produse, evenimente interne. Pentru a facilita accesul angajaţilor de la o clădire la alta există un sistem propriu de transport numit Shuttle Service care foloseşte în general maşini hibride şi pe care îl poţi solicita oricând ai nevoie să te mişti în campus. Tot în campus există şi un teren imens pentru sport pe care poţi juca de la volei, fotbal, la cricket şi softball. Tot aici se desfăşoară din când în când diferite evenimente interne.
Majoritatea oamenilor discută despre probleme tehnice chiar şi la cantina unde îţi iei prânzul, în shuttle sau la țigară. Algoritmi, protocoale, arhitecturi, design patterns si multe altele. Anul acesta am stat in clădire cu o mulțime de personalităţi. Oricând putem da nas în nas la cafeteria, bucătărie sau baie cu un tehnical fellow, distinguished engineer, vice president sau un general manager. Nimic din comportamentul lor nu te anunţă cine este persoana care tocmai trece pe lângă tine sau care iţi dă bună dimineaţa în bucătărie.
Care a fost valoarea pe care mi-a adus-o mie acest internship? 3 luni de zile pot părea foarte mult timp dacă te gândeşti ca la o călătorie în care poţi vizita, cunoaşte locuri şi oameni noi. Totuşi este un timp foarte scurt când vine vorba despre o perioada în care tu încerci să înveţi cât de mult se poate. În 3 luni ai timp să te familiarizezi cu tehnologii noi, să îţi încolţească în cap noi idei şi abordări, ţi se deschid în faţă mult mai uşor anumite domenii. Dacă anumite concepte păreau complicate sau incoerente, odată ajuns acolo totul se luminează, atât datorita bazei de cunoştinţe pe care o ai la picioare cât şi oamenilor remarcabili care sunt lângă tine în fiecare zi. Tot în 3 luni ai timp să înţelegi arhitectura şi codul produsului Microsoft la care lucrezi, să vezi unde se doreşte ajunge, tehnologia curenta, problemele actuale, cerinţele clienţilor dar şi soluţiile care se propun. Vezi strategia pe care o aplică Microsoft, punctele de rezistenţă ale viitoarelor produse cât şi platformele care vor susţine generaţiile viitoare de produse.
Poza originala aici.
Daca nu eşti prea geek ca să trăieşti tot timpul în birou poţi face destule lucruri ca să te distrezi. Unde mai pui că Microsoft are o echipă specială care se ocupă de distracţia internilor. În prima săptămână am fost luaţi cu toţii ( vreo 800 de interni ) pe sus in 22 de autocare şi relocaţi pentru o după-amiază la gradina zoologică din Seattle unde a fost organizată o mică petrecere în cinstea noastră. Imaginaţi-vă cum pot ajunge vinerea la ora 16.30 la gradina zoologică, 22 de elefanţi prin traficul din Seattle fără să întârzie. Cum altfel decât cu ajutorul poliţiei care a făcut un lock(Freeway_SR520) pentru câteva zeci de minute cât a luat întregii caravane să ajungă la destinaţie. Am fost cu toţii la Mount Rainier, un munte vulcanic de 4,392m care se vede în zilele senine chiar şi din Seattle. Această excursie tradiţională este organizată o dată in fiecare an atunci când aproape toţi internii sunt în campus. Meciuri de baseball ale formaţiei locale Seattle Mariners, Product Fair şi cuvântarea lui Steve Ballmer, Company Meeting, BBQs si multe alte evenimente te scot din munca de birou si îţi oferă ocazia să socializezi cu ceilalţi interni dar şi cu alţi angajaţi veterani în Microsoft.
Poza originala aici.
Technorati tags: Seattle, Redmond, Microsoft, interni romani, internship la Microsoft, studenti romani la Microsoft, internship at Microsoft