Spis treści
- 1 Stefan: zostałeś doceniony przez GENIVI Alliance, jak wyglądała twoja droga do miejsca w którym jesteś obecnie?
- 2 Szymon: czym zajmuje się na co dzień Inżynier Oprogramowania w dziale Care?
- 3 Stefan: zaczynałeś pracę w Tietoevry od pozycji juniora. Jak wyglądały twoje początki? Co sprawiało ci najwięcej trudności?
- 4 Jakie było największe wyzwanie zawodowe z którym musieliście się do tej pory zmierzyć?
- 5 Szymon: dlaczego zdecydowałeś się na powrót do Tietoevry?
- 6 Opowiedzcie o swoim ostatnim najciekawszym projekcie przy którym pracowaliście
- 7 Szymon: czym wyróżnia się praca w Tietoevry od pracy w innych firmach?
- 8 Rynek i technologie cały czas się zmieniają, skąd czerpiecie wiedzę o nowościach?
- 9 Szymon: obecnie pracujecie nad własnym produktem, możesz więcej o nim opowiedzieć?
O początkach pracy w Tietoevry, najciekawszych i obecnych projektach oraz o powrotach do firmy rozmawialiśmy ze Stefanem Wysockim i Szymonem Giermakowskim – wieloletnimi pracownikami Tietoevry, którzy obecnie są Wiodącymi Inżynierami Oprogramowania.
Stefan: zostałeś doceniony przez GENIVI Alliance, jak wyglądała twoja droga do miejsca w którym jesteś obecnie?
Praca w firmie świadczącej usługi pomocy przy współtworzeniu oprogramowania naszych klientów wymagała, aby nabyć umiejętności szybkiego wdrażania się w istniejące projekty. Każdy klient używa specyficznych dla siebie narzędzi, procesów czy nawet żargonu.
Dodatkowo klienci przychodzą do nas nie tylko z zadaniem stworzenia rozwiązania od zera, ale również ze swoimi wizjami lub nawet gotowymi rozwiązaniami w różnych fazach developmentu. Praca w takich warunkach pozwoliła mi nabrać umiejętności sprawnego odnajdywania się w projektach wymagających błyskawicznego rozeznania się “co boli” dany projekt oraz w używanych technologiach lub narzędziach.
Te umiejętności przydały się w GENIVI Alliance (aktualnie COVESA), by szybko udowodnić swoje umiejętności i wiedzę w grupie innych ekspertów z branży. Zidentyfikować problemy, z którymi mierzy się społeczność oraz prowadząc dyskusję na ich temat.
Poprzez budowanie zaufania grupy, krok po kroku, z uczestnika spotkań zacząłem być moderatorem, a następnie liderem grupy Android Automotive w COVESA.
“Bardzo dbamy o automatyzację i jakość testów, bo ewentualne błędy, które przecież zdarzają się każdemu, mogą wpłynąć na czyjeś życie.”
Szymon: czym zajmuje się na co dzień Inżynier Oprogramowania w dziale Care?
Myślę, że bardzo dużo zależy od zespołu, w którym taki inżynier pracuje. Sam Care to dość duży dział i mamy tu bardzo dużo rzeczy którymi można się zająć, począwszy od projektowania aplikacji, a skończywszy na ich testowaniu i wdrażaniu.
W dużym uproszczeniu, nasza rola zaczyna się od wsparcia naszych Product Ownerów w analizie wymagań i zaproponowaniu optymalnego rozwiązania lub narzędzi, które nam to zadanie ułatwią, a kończy na oddaniu gotowego oprogramowania, wraz z całą jego automatyzacją (CI/CD, testy automatyczne itd.).
Dane, które przepływają przez nasz system, to prawie zawsze dane wrażliwe, dlatego potrzebna jest analiza RODO i wyjątkowa dbałość o bezpieczeństwo danych. Czyli w skrócie, analizujemy problemy, planujemy rozwiązania, implementujemy je i testujemy, jakby od tego zależało nasze życie.
Z tym ostatnim to akurat nie ma żartów. Bardzo dbamy o automatyzację i jakość testów, bo ewentualne błędy, które przecież zdarzają się każdemu, mogą wpłynąć na czyjeś życie. Jest to coś, do czego trzeba się przyzwyczaić i coś, co znacząco różni nas od wielu innych projektów, z którymi zazwyczaj pracują Inżynierowie Oprogramowania.
Ponadto, gdy tylko mamy taką możliwość (a wbrew pozorom nie ma z tym problemów), staramy się ciągle czegoś uczyć i doskonalić w używanych przez nas technologiach. Mamy dużo spotkań służących wymianie doświadczeń z nowymi technologiami i osobiście uważam, że jeżeli tylko ktoś tego chce, to ma małe szanse, żeby pracując z nami ‘wypaść z obiegu’ i utracić styczność z najnowszymi trendami w programowaniu.
Tu mogę pochwalić dział Care. Pomimo wielkiego rozmiaru i wielu lat obecności naszego oprogramowania na rynku, pracujemy z nowymi technologiami i z dumą mogę powiedzieć, że wiele zastosowanych u nas rozwiązań jest na najwyższym światowym poziomie.
Stefan: zaczynałeś pracę w Tietoevry od pozycji juniora. Jak wyglądały twoje początki? Co sprawiało ci najwięcej trudności?
Przygoda z Tietoevry zaczęła się od praktyk we wrocławskim oddziale. Jako student trzeciego roku Elektroniki i Telekomunikacji interesowałem się nie tylko “programowaniem dla programowania” (czyli algorytmy, kruczki standardów języka programowania), ale też sprzętem i jego interakcją z oprogramowaniem.
To pozwoliło dostać się na stanowisko związane z systemami wbudowanymi. Do moich obowiązków należała modyfikacja i adaptacja systemów operacyjnych, by działały na konkretnych platformach i konfiguracjach. Te solidne podstawy pozwoliły mi szybko “wgryźć” się w specyfikę działania systemu operacyjnego Android.
Przez wiele analogii z innych znanych mi systemów mogłem (już jako pełnoetatowy pracownik) swobodnie pracować przy komercyjnych projektach, zaczynając od jednego z największych producentów telefonów komórkowych, przez Android TV, a kończąc na Android Automotive, z którym pracuję od ostatnich 4 lat.
Jakie było największe wyzwanie zawodowe z którym musieliście się do tej pory zmierzyć?
Stefan: Ciężko zdecydować się na jeden projekt. Przez 10 lat, na każdym etapie rozwoju, mógłbym wskazać różnego typu wyzwania, zaczynając od wyzwań „początkującego”, jak stresujące spotkania w międzynarodowym zespole (myślę, że każdy tym się stresuje na początku swojej kariery), a kończąc na czasochłonnych integracjach komponentów w skomplikowanej architekturze, podążając za wytycznymi procesów wymaganych przez ASPICE.
Na szczęście zarówno po stresujących pierwszych “statusach” (gdzie okazuję się, że to nic strasznego) jak i bardziej skomplikowanych problemach przychodzi satysfakcja, że jednak z pozoru ciężkie zadanie dało się samodzielnie “rozgryźć”.
Szymon: Trudne pytanie. Zazwyczaj odpowiedzią by było, że największym wyzwaniem jest to, z którym jeszcze się nie zmierzyłem. Jeżeli jednak miałbym sięgnąć pamięcią i coś wybrać, to przypomina mi się jedna konkretna sytuacja choć z perspektywy czasu wydaje mi się teraz błahą to w tamtym czasie trochę się tym stresowałem).
Kilka lat temu hobbistycznie interesowałem się technologią Blockchain, a konkretnie samym Ethereum. Wiadomo, jak to jest z takimi pasjami, zazwyczaj człowiek jest zdany sam na siebie i uczy się w wolnych chwilach, zastanawiając się jakby to było, gdyby udało się złapać projekt, który zmieniłby hobby w codzienność… w tym przypadku właśnie tak to wyglądało.
Gdy mój manager dowiedział się o moich zainteresowaniach, błyskawicznie znalazł grupę w Tietoevry (wtedy jeszcze Tieto), która właśnie zaczynała pracę związane z Ethereum i w przeciągu tygodnia zostałem zaproszony na spotkanie. I tu pojawia się ta część, która była wyzwaniem. Okazało się, że to nie będzie spotkanie w postaci krótkiej rozmowy, na której się poznamy, czy wymienimy doświadczeniami i na tym się to skończy.
Zamiast tego musiałem spakować walizkę i polecieć do Sztokholmu na kilkudniowy „Hackaton” zorganizowany wraz z pracownikami Microsoftu, którzy akurat zajmowali się tworzeniem nowej usługi w Azure, która była oparta o Ethereum. Koniec końców, byliśmy jednymi z pierwszych użytkowników ich nowego rozwiązania, a moje zadanie polegało na dostosowaniu naszej aplikacji do nowej usługi Microsoftu (teraz jest ono nazywane Azure Blockchain Workbench – wtedy to jeszcze znaliśmy tylko pod nazwą kodową).
Tu można sobie wyobrazić, jak się czułem jako osoba, która ma ogarnąć tematy związane z samym blockchainem i stworzeniem odpowiednich kontraktów w solidity, a jedyne doświadczenie jakie ma to “zabawy” w czasie wolnym. Nie wspominając już o tym, że absolutnie niczego nie wiedziałem o aplikacji dla której tworzymy te kontrakty, a osoba odpowiedzialna za cały projekt – Maria, miała nas ostatniego dnia odwiedzić na demo.
Nie muszę chyba dodawać, że obawiałem się, że będę musiał obcej osobie, o której słyszałem tylko plotki powiedzieć wprost, że nic z tego nie wyszło i że nie umiem im pomóc. Okazało się jednak, że daliśmy wszyscy radę i w tych kilka dni przepięliśmy nasze rozwiązanie na blockchain w Azure. Wstyd się przyznać, ale wyszło na to, że mój manager miał rację wierząc, że dam sobie tam radę – więc jeżeli Artur to czytasz, to jeszcze raz dzięki!
Oczywiście, historia się w tym miejscu nie skończyła. Przez następnych kilka lat byłem członkiem tego zespołu i muszę przyznać, że jest to mój ukochany projekt, który zawsze wspominam w samych superlatywach. Jako, że był to projekt z kategorii tych ‘innowacyjnych’, miałem w nim jeszcze sporo wyzwań, ale zaowocowało to wspaniałymi znajomościami (do dzisiaj mam przyjacielski kontakt z Marią) i tą dziwną satysfakcją, którą pewnie nie powinienem się chwalić – gdy na Microsoft Build ogłaszają nowe rozwiązanie w fazie preview, a ty wiesz, że jesteś jedną z kilku osób na świecie, które mają już z tym rozwiązaniem doświadczenie.
Szymon: dlaczego zdecydowałeś się na powrót do Tietoevry?
Zależy który powrót 😉 To nie pierwszy raz, jak wracam do Tietoevry. Jakoś nie mogę sobie znaleźć lepszego miejsca niż to.
W tym przypadku jednak, na decyzję miało wpływ to, że wiedziałem do jakiego zespołu wrócę – a muszę przyznać, że jeszcze nigdy w życiu nie spotkałem drugiej takiej grupy ludzi, która sprawia, że do pracy nie idzie się pracować, a spędzić czas z kumplami robiąc przy okazji to, co się lubi (programowanie). Zresztą, każdy kto przejdzie się koło naszego Szczecińskiego budynku od razu zauważy, że wzięliśmy sobie do serca hasło „Have fun at work”. Musicie mi na słowo uwierzyć, że w środku jest jeszcze weselej (włącznie z napisami i zabawnymi rysunkami na ścianach).
Ponadto, wiedziałem już dobrze co mnie czeka po powrocie. Tu nie było ryzyka, że nie będę miał miejsca na rozwój czy będę pracować z przestarzałymi technologiami. Wiedziałem, że wracam, aby pomóc w reimplementacji istniejącego, znanego mi rozwiązania i przeniesienia go do chmury Azure. Jako, że w kwestii Azure jestem trochę “świrem” i bardzo chcę się w tym kierunku dalej rozwijać, powrót do Tietoevry wydawał się jedyną słuszną decyzją – szczególnie, że nie ma już chyba żadnego projektu w Care, który nie byłby w jakimś stopniu związany z Azure.
Skorzystam tu z okazji, aby o tym wspomnieć – pracownicy Tietoevry mają nielimitowany dostęp do oficjalnych szkoleń Microsoftu z zakresu Azure (to i vouchery na egzaminy certyfikacyjne). W dziale Care, jedyne czego potrzebuję to zgoda mojego managera, aby móc zapisać się na takie szkolenie.
Korzystałem z tej możliwości już wielokrotnie i nie sądzę żebym gdziekolwiek indziej w Szczecinie miał takie same możliwości rozwoju kompetencji cloudowych jak w Tietoevry. Ponadto, każdy pracownik działu Care ma do siebie przypisaną subskrypcję Visual Studio, która uprawnia do benefitu w postaci 50 USD miesięcznie do wykorzystania w Azure – wspaniała opcja, żeby pobawić się z rozwiązaniami chmurowymi, nie wydając na to złotówki z własnej kieszeni. Jak widać, okazuje się że bliska współpraca z Microsoftem ma swoje zalety.
Posłuchaj naszego Praktycznego podcastu.
Opowiedzcie o swoim ostatnim najciekawszym projekcie przy którym pracowaliście
Stefan: Dla różnych osób „najciekawszy” może oznaczać coś innego. Zaczynając od „najciekawszego projektu” z perspektywy użytkownika – taki zdecydowanie miałem pracując przy rozwoju Androida na telefony komórkowe. Miło było widzieć w telewizji, na ulicach, czy nieelegancko zaglądając ludziom przez ramię w tramwaju, że system przy którego tworzeniu brałem udział jest używany na szeroką skalę i DZIAŁA.
Życzę sobie, by móc podobnie powiedzieć o projektach związanych z Android Automotive. Na to przyjdzie jeszcze czas. Oprogramowanie, które tworzymy dopiero wejdzie na rynek – to jest inny rodzaj „ciekawości projektu”, kontakt z technologiami, niedostępnymi dla „szarych użytkowników”. Dostęp do planów znanych producentów samochodowych w konkretnych obszarach, pozwala się poczuć elitarnie, zwłaszcza, jeśli mówimy o dużych markach, często „premium”.
Kolejny rodzaj „ciekawego projektu” to są te, przy których można poznać wiele ludzi, z różnych kultur, a czasem też zwiedzić trochę świata. Projekty, które wymagały różnych ustaleń z trudnymi klientami, swój trud wynagradzały wspaniałymi widokami z biur na różnych zakątkach świata oraz lokalną kuchnią, już po pracy.
Szymon: Już o nim trochę wspomniałem. Projekt miał nazwę kodową “Omega”. Teraz jest znany jako Tieto Dynamic Consent.
Jest to rozwiązanie, którego głównym celem jest zastąpienie papierowych zgód obywateli – te znane każdemu kartki z napisem “wyrażam zgodę na”, które później lądują w szafie i nikt nigdy nie sprawdza kto na co wyraził zgodę – na rozwiązanie elektroniczne, które będzie zgodne z RODO. Zwłaszcza ta ostatnia część jest ciekawa, bo praca w tym projekcie zwróciła moją uwagę na to, ile nieprawidłowości występuje w znanych nam papierowych rozwiązaniach – jak chociażby sam fakt, że każdą zgodę powinienem móc w każdej chwili wycofać… jakoś sobie tego nie wyobrażam w naszej papierowej rzeczywistości, gdzie po miesiącu już nawet nie pamiętam, gdzie i na co wyraziłem zgodę.
Projekt ten był z kategorii innowacji. Próbowaliśmy stworzyć produkt, który znajdzie sobie miejsce na rynku i ułatwi pracę profesjonalistów pracujących z danymi wrażliwymi. Spowodowało to, że aplikacja ewoluowała w czasie. Dzięki tym zmianom, pozwala ona zarówno na zbieranie zgód rodziców w kwestiach związanych z szkołą dziecka, czy opieką medyczną, jak i zbierać zgody osób, których wyniki badań mogą zostać użyte do celów naukowych (np. badania nad rakiem).
W projekcie tym podobało mi się wszystko. Zarówno jego cel (a podałem tu bardzo uproszczony opis tego co TDC robi), jak i zastosowane technologie. Nawet nie umiem teraz opisać, jak dużo się nauczyłem pracując w tym projekcie. I to zarówno w kwestiach technologicznych (wszystko oparte o chmurę Azure, możliwość przechowywania historii zgód pacjentów w sposób anonimowy w blockchainie itd.), czy prawnych, ale też w kwestiach związanych z planowaniem architektury aplikacji.
Choć chyba najważniejszą rzeczą która sprawiła, że nadal z łezką w oku wspominam ten projekt jest to, że naprawdę w niego wierzę. Byłem zaangażowany w ten projekt prawie od samego początku, dlatego traktuję go trochę jak moje dziecko.
Wierzę też w to, że ta aplikacja może zmienić świat na lepsze. Może nie będzie to żadna rewolucja, ale każda zmiana na lepsze się liczy. Domyślam się, że brzmi to śmiesznie, ale lubię myśl że moja praca coś zmienia.
Szymon: czym wyróżnia się praca w Tietoevry od pracy w innych firmach?
Oj, ciężkie pytanie. Zwłaszcza, że o żadnej mojej poprzedniej pracy nie mogę powiedzieć nic złego. Małe mam więc porównanie. Coś jednak jest w Tietoevry, co powoduje, że do niego wracam.
Jakbym miał czegoś poszukać, to może zacznę od tego, że praca tu jest całkiem uporządkowana. Nie znaczy to oczywiście, że w projektach zawsze wszystko jest wiadome i nic nigdy nie zaskakuje – tak dobrze nie ma, ale w każdej chwili wiem, co w całym Care będzie się działo na przestrzeni najbliższych miesięcy i mam jakieś poczucie, że wiem jakie są plany na najbliższe lata.
Zdecydowanie też warta wspomnienia jest atmosfera w pracy. Coś, o czym nawet się nie wspomina,bo traktowane jest to jak coś normalnego (aczkolwiek wiem, że wiele firm IT ma podobnie). Sam fakt tego, że mój kierownik nie wymaga ode mnie nazywaniem go ‘Panem Kierownikiem’, a wręcz przeciwnie – mamy zasadę, że do każdego mówi się po imieniu, zasługuje według mnie na uznanie. Nawet teraz, dziwnie się czuje używając słowa kierownik, bo na usta ciśnie mi się imię ‘Asia’.
Nie jest ona dla mnie nadzorcą z pejczem, pilnującym żeby pracownicy dobrze pracowali, a partnerem z którym współpracuje na równych zasadach (z tym, że ja robię te fajne rzeczy – kodowanie, a ona te nudne – biurokracja i ciągłe spotkania). Podkreślę jeszcze raz stwierdzenie o równych zasadach. Jest ono dla mnie bardzo ważne, zwłaszcza, że jako naród mamy zakorzeniony mit “Pana Dyrektora”, którego trzeba traktować z szacunkiem z powodu tego, że jest dyrektorem.
W Tietoevry traktuje wszystkich z szacunkiem dlatego, że na to zasługują, a nie z powodu obejmowanego przez nich stanowiska. I cieszy mnie to, że współpracując z Asią (czy jakimś innym człowiekiem zajmującym stanowisko kierownicze), widzę ten błysk w oku, że oni też chcą żeby praca była dla nas wszystkich czymś przyjemnym, przynoszącym jakąś formę samospełnienia.
Lubię to, że gdyby ktoś mi kazał wskazać osobę z mojego biura z którą się ciężko pracuje – jest nieuprzejma, czy po prostu leniwa, to musiałbym powiedzieć, że u nas tacy nie występują. Jakimś cudem udało się naszym rekruterom tak dobrać ludzi, że mało jest konfliktów między jednostkami, których w zasadzie łączy tylko tyle, że umieją programować/testować i pracują dla tej samej firmy.
Ostatnią rzeczą jaką tu wymienię, choć bardzo przyziemną, jest jakość sprzętu z którym pracujemy. Począwszy od regulowanych biurek, czy ścianek dźwiękochłonnych na laptopach i monitorach kończąc. Jest to sprzęt, z którym spędzam długie godziny i czasem wyciskam z niego siódme poty, więc cieszy mnie, że Tietoevry na nich nie oszczędza. To może brzmieć śmiesznie, ale dla mnie to jest różnica czy kod będzie się kompilował 20 sekund, czy trzy minuty.
“Mamy tu taką zasadę, że jak poznamy jakieś fajne rozwiązanie lub jakąś fajną sztuczkę, to dzielimy się tym z resztą kolegów.”
Rynek i technologie cały czas się zmieniają, skąd czerpiecie wiedzę o nowościach?
Stefan: Praca przy nowych technologiach automatycznie pozwala nadążać za modnymi technologiami. Jeśi miałbym podać jedno źródło, to myślę, że są to współpracownicy. W zespołach zawsze ktoś się podzieli nowinką lub poda pod rozwagę użycie „modnego” rozwiązania.
Szymon: Jednym z takich źródeł są na pewno spotkania organizowane przez moich kolegów. Mamy tu taką zasadę, że jak poznamy jakieś fajne rozwiązanie lub jakąś fajną sztuczkę, to dzielimy się tym z resztą kolegów. Nazwy tych spotkań z czasem zmieniają się, kiedyś to były Technical Coffee Corner, teraz Craftsmanship Community, ale cel zawsze pozostaje ten sam – dzielić się wiedzą.
Do tego w moim przypadku dochodzi jeszcze nawyk, który sobie wyrobiłem. Każdego dnia rano, jeszcze przed porannym spotkaniem, znajduje sobie jeden artykuł w sieci i go czytam (mam swoje ulubione kanały RSS z takimi artykułami, jednym z tych, które mogę polecić jest “The Morning Brew”).
W dawnych czasach, gdy maseczki w sklepach nie były jeszcze potrzebne, do listy tej dochodziły też różne konferencje typu Microsoft Build Tour itd. Przyjemne, bezpłatne, jednodniowe wydarzenia, które ułatwiały bycie na bieżąco. W tamtych czasach miałem dość szczęścia, że zawsze jak takie wydarzenie miało miejsce, mogłem sobie pozwolić, żeby na ten dzień opuścić mój projekt.
Szymon: obecnie pracujecie nad własnym produktem, możesz więcej o nim opowiedzieć?
Obecnie w moim zespole trwają prace nad odświeżeniem rozwiązania istniejącego już od wielu lat, jednak zamiast zdecydować się na drobne poprawki, zapadła decyzja o całkowitym przepisaniu aplikacji na nowo, z użyciem nowych technologii i chmury Azure. Ogólnie rzecz ujmując, naszym celem jest stworzenie systemu zgodnego wstecz ze swoim poprzednikiem, który będzie w stanie wykonać wszystkie zadania, które obecne rozwiązanie wykonuje, plus masę innych wymagań które mają usprawnić i ułatwić pracę, zarówno klientów jak i naszych zespołów wsparcia technicznego.
Główna część rozwiązania ma działać w Azure, i mamy tu wolną rękę pod względem doboru komponentów. Byle tylko rozwiązanie było stabilne i bezpieczne. Obecnie pracujemy właśnie nad architekturą systemu – co akurat jest pasjonującym zajęciem. Staramy się dobrać komponenty do wymagań systemu zastanawiając się, czy nasza aplikacja będzie działała w kilku regionach Azure na raz, czy może wystarczą nam inne formy zabezpieczenia się przed awarią. W ramach pomocy w tym zadaniu, do naszego zespołu został przydzielony jeden z naszych Tietowych architektów Azure, dzięki czemu nigdy nie jesteśmy zdani sami na siebie.
Wspaniałą rzeczą jest to, że mój zespół nie próżnował i korzystał z możliwości rozwoju jakie daje Tietoevry. Dzięki temu każdy z nas ma sporo wiedzy o Azure (nie wspominając już, że każdy z nas jest certyfikowanym developerem Azure 😉), co naprawdę jest widoczne w przypadku dyskusji. Są one naprawdę merytoryczne.
Samo rozwiązanie zostanie najprawdopodobniej napisane w .Net 6, natomiast część GUI w Angular. Mówię, najprawdopodobniej, bo w sumie sami jeszcze do końca nie wiemy. Mamy rekomendacje od architektów odnośnie wybranych technologii, ale koniec końców to zespół zadecyduje.
Chwilowo wielką frajdę czerpię z rozmów o tym, jak zaplanujemy zabezpieczenia aplikacji i jakie będą metody autentykacji, szyfrowania treści itd. Jeszcze sporo pracy przed nami i sporo trudnych decyzji do podjęcia. Już nie mogę się doczekać aż ruszymy całą naprzód. 😊