Wywiady

Od stażysty do Lead Software Engineera. Historia Michała Piechowskiego

lead software engineer desk

Czy 12 lat w jednej firmie to dużo? Co zyskuje się, a co traci pracując tyle lat w jednej organizacji? Rozmawiamy z Michałem Piechowskim, którego zapytaliśmy o spostrzeżenia dotyczące polskiej branży IT. Poznajcie perspektywę doświadczonego inżyniera, który od 12 lat pracuje w jednej firmie.

Spis treści

Co o realiach pracy w branży IT powinien wiedzieć każdy, kto zastanawia się nad wejściem do niej?

Przede wszystkim to, że jest to bardzo dynamiczne środowisko. Jeśli marzysz o tym, aby nauczyć się jakiegoś fachu, a potem bazując na tym doświadczeniu dociągnąć do emerytury, to raczej nie jest to miejsce dla Ciebie. Ciągle rozwijane są nowe narzędzia, istniejące są aktualizowane, rozwijane są także same języki programowania, a i często moda na pewne rzeczy przemija i jest zastępowana czymś nowym.

Przykładowo jeszcze do niedawna Google zachwalał pisanie aplikacji na Androida w Javie, w architekturze MVVM i z wykorzystaniem plików xml do warstwy wizualnej. Dzisiaj nie ma po tym śladu, za to jest pełno (ocierających nawet trochę o propagandę) tutoriali, które każą używać Kotlina z architekturą MAD i z całkowitym odejściem od tworzenia interfejsu w xmlach. Oczywiście starsze podejście cały czas jest funkcjonalne, ale pokazuje to, jak praktycznie wszystko jest w stanie się zmienić w dosyć krótkim czasie.

To może, dla równowagi, coś o przyjemnej stronie IT?

Z takich przyziemnych spraw, to warto zwrócić uwagę na spore dysproporcje w zarobkach, które mogą wystąpić zależnie od tego, czym chcemy się zajmować. Mówię to na podstawie ofert, które dostawałem na przestrzeni lat. Zdarza się, że pewne zagadnienia są obiektywnie trudniejsze, bardziej pracochłonne i po prostu mniej wdzięczne, a jakby tego było mało, to są one również słabiej płatne. Osobie, która dopiero wchodzi na ten rynek, może być ciężko to ocenić, a jak już wejdzie i posiedzi kilka lat, to z kolei ciężko będzie to zmienić. Polecałbym porównać sobie różne oferty, im więcej, tym lepiej i na tej podstawie wyrobić jakieś zdanie.

W Internecie można również znaleźć różne statystyki odnośnie do tego, jak często dany język czy technologia jest używana i jak szybko rośnie lub spada ich popularność. Tu też są pułapki, bo często jakaś kompletna nowinka będzie brylować jako ta, która bardzo silnie rośnie i pozwala najwięcej zarobić, a po roku nikt już nie będzie pamiętał, że to istniało. Bezpieczniej wybrać coś, co jest powszechnie używane i nawet jeżeli wyjdzie z mody, to ze względu na skalę będzie musiało być jeszcze latami utrzymywane.

A skoro o utrzymaniu mowa, to sporo osób narzeka na tzw. bug fixing, czyli poprawianie błędów w kodzie i broni się przed tym rękami i nogami, ale myślę, że nie do końca słusznie. Jest w tym pewna magia, czasem jakaś intryga, bywa, że wręcz detektywistyczna zagwozdka. Poza tym takie zadania uczą pokory.

Pokory? Czego programistę uczy bug fixing?

Wiele razy byłem przekonany o tym, że rozwiązałem jakiś problem, bo ewidentnie widzę, że go już nie ma, ale po tygodniach okazywało się, że problem dalej występuje, a przez moje poprawki został jedynie głębiej ukryty. Kolejną niepopularną opinią, która nie przystaje do dzisiejszego świata jest to, że na początku kariery warto robić sporo nadgodzin. Dodatkowe fundusze to jedno, ale będziesz wtedy po prostu w stanie zrobić i nauczyć się dużo więcej. Poza tym, jeśli ktoś np. menedżer zwróci na to uwagę, to najprawdopodobniej w pamięci zostanie mu jedynie to, że dużo zostało zrobione, a nie to, że był na to dodatkowy czas w postaci tych nadgodzin.

Na koniec coś, co może powinno być na początku, czyli edukacja, podejście do studiów itd. Od małego miałem wpajane, że jest to kluczowe i pewnie jakaś w tym prawda jest, bo jednak, żeby dostać się na studia, trzeba wcześniej odpowiednio dobrze zdać maturę. Miałem raczej dobre oceny, ale też na samych piątkach “nie jechałem”. Co ciekawe, na studiach szło mi znacznie lepiej, nie wiem, czy to dlatego, że wreszcie jakąś rolę odgrywało programowanie, czy może dlatego, że forma była inna – trudno powiedzieć.

Nigdy nie miałem z niczego poprawki, angażowałem się nawet w różne koła naukowe i dostawałem stypendia. Tak czy siak, jakie znaczenie miałyby moje oceny i osiągnięcia, gdybym dzisiaj zmieniał pracę? Podpowiem … żadne. Nikt na to nie zwróci uwagi, nikt tego nie zobaczy, nikogo to nie obchodzi i nikt o to nie zapyta. Brzmi to może pesymistycznie, ale jak komuś powinęła się noga na studiach, to moim zdaniem nie powinien się tym w ogóle przejmować.

Domyślam się, że początkujący są atakowani wieloma komunikatami, które zachęcają do kupna kursu programowania konkretnego języka. Twoim zdaniem to dobry początek?

Kiedy byłem w gimnazjum, to za własne zaoszczędzone pieniądze kupiłem świetne książki Jerzego Grębosza do nauki języka C++ (kiedy rodzice się o tym dowiedzieli, to pieniądze mi zwrócili). Wiedza w nich zawarta to jedno, ale wciągający i pełen pasji sposób jej przekazania sprawił, że na dobre związałem się z programowaniem. Natomiast innych rzeczy takich jak Java, Kotlin, Python, Bash itd. uczyłem się wyłącznie z darmowych źródeł w Internecie. W obecnym projekcie głównie wykorzystuję Kotlina i Javę, a ponieważ nikt mnie jeszcze nie zwolnił, to wnioskuję, że źródła internetowe są wystarczające.

Niemniej pamiętam, że w firmie zdarzało mi się uczestniczyć w szkoleniach, których nikt za darmo przecież nie prowadził. Jednakże były to specjalistyczne szkolenia, dobrze prowadzone i przyznaję, że doceniałem w nich holistyczne podejście do tematu, które ciężko uzyskać na własną rękę. Także nie jestem jednoznacznym przeciwnikiem płatnych kursów, ale odczuwam pewien niesmak, kiedy widzę, że ktoś oferuje szkolenie z podstaw jakiegoś języka programowania i chce za to kilka tysięcy złotych. Bardzo często tego typu szkoleniowcy uciekają się do sprzedawania marzeń i żerują na ludziach, którym nie mówią, że ta sama wiedza, być może nawet w lepszej formie, jest dostępna za darmo.

Zresztą w Tieto wielokrotnie prowadziłem praktyki i rekrutacje, na które przychodzili również ludzie po takich kursach, więc z pełną świadomością mogę powiedzieć, że płatny kurs nie daje gwarancji zatrudnienia, daje natomiast gwarancję wydania pieniędzy.

Z tym związany jest też dodatkowy aspekt, który jest może mniej widoczny, ale kto wie, czy nie jest on najistotniejszy. Otóż kursy często reklamują się tym, że w przeciwieństwie do tutoriali tam zawsze jest prowadzący, który odpowie na pytania i pomoże w problemach. To wszystko prawda i ja ucząc się z książki, czy Internetu nie miałem kogo spytać, kiedy zderzałem się z jakimś problemem. Często godzinami eksperymentowałem lub szukałem odpowiedzi w Internecie, ale uważam, że to mocno rozwija.

Potem kiedy zaczyna się praca zawodowa, to w dużej mierze tak, to właśnie wygląda, dostaje się do rozwiązania problemy, które nie są oczywiste i w których ani Internet, ani kurs nie przyjdą nam z pomocą. Wtedy ten upór, nie załamywanie się i metodyczne dążenie do rozwiązania (często tygodniami!) okazują się bezcenne. A jednak płatny kurs nieświadomie uczy, że wystarczy zapytać prowadzącego i w 5 sekund dostanie się odpowiedź.

Jesteś po studiach informatycznych – uważasz, że wiedza wyniesiona podczas zajęć jest niezbędna w pracy programisty?

Trochę ciężko mi się do tego odnieść, bo idąc na studia umiałem programować i wszystkie tego typu zajęcia zaliczałem z najwyższymi ocenami, nie wkładając w nie praktycznie żadnego wysiłku. Do firmy w zasadzie też dostałem się bez ukończonych studiów. Wyszło to trochę przez przypadek, bo będąc po zaliczeniu drugiego roku naturalne było dla mnie mówienie, że jestem „na trzecim”. Okazało się, że moja firma wtedy szukała na praktyki ludzi po trzecim roku i źle mnie zrozumieli, dzięki czemu razem ze starszymi kolegami wziąłem udział w testach, a potem w rozmowach rekrutacyjnych.
Przeszedłem je pomyślnie i zostałem przyjęty. Stałem się wtedy najmłodszym pracownikiem całej korporacji. Dopiero później ktoś się zorientował, że w ogóle nie powinno mnie tu być, ale że sobie radziłem, to nikt problemu nie robił. Firma była elastyczna i ze zrozumieniem podchodziła do tego, że pracuję, jednocześnie kontynuując studia dzienne.

Kolejny przykład, jaki znam, to absolutny geniusz, z którym kiedyś długo pracowałem, a do którego nawet po latach nie mogę się porównywać. Z powodów prywatnych, studiów w ogóle nie skończył, a wiedzą i umiejętnościami przerastał wszystkich wokół i nie była to tylko moja opinia.

Czy to oznacza, że studia nie są do niczego potrzebne? Tego bym nie powiedział, bo jednak prawda jest taka, że wiele firm z góry odrzuci CV kandydata, jeżeli nie znajdą się tam studia kierunkowe, albo chociaż powiązane i takim osobom na starcie jest znacznie ciężej się gdzieś załapać. Na politechnice było też sporo przydatnych rzeczy, z których na pewno coś wyniosłem, a nawet jeżeli mi osobiście się one nie przydały, to wierzę, że przydały się kolegom z roku.

Co z perspektywy Twojej 12-letniej kariery było największym boostem pod kątem umiejętności? Które zadanie/projekt rozwinęło Cię najbardziej?

Codziennie jest coś nowego, ale gdybym miał wybrać jedną rzecz, to postawiłbym na implementację DLNA dla urządzeń z Androidem. Jest to związane ze współdzieleniem multimediów np. oglądaniem na telewizorze filmów, które znajdują się na telefonie. Oczywiście to tylko wierzchołek góry lodowej, z którą musiałem się zmierzyć.

Mój udział w projekcie zaczął się w 2013 roku, kiedy firma wysłała mnie na delegację do Szwecji. Akurat rozpoczynały się wakacje, więc nie byłem już w ciągłym biegu pomiędzy biurem a uczelnią i zostałem wybrany chyba dlatego, że w tym okresie rozwiązałem jakiś poważniejszy błąd, przykuwając tym uwagę klienta. To była moja pierwsza delegacja, w dodatku poleciałem całkiem sam do obcego kraju, a poza tym nigdy wcześniej nie siedziałem nawet w samolocie! Na szczęście wszystko poszło zgodnie z planem i na miejscu mogłem już zapoznać się ze szczegółami zadania, a nie było ono proste.

Sama specyfikacja tego, co miałem zrobić miała gdzieś 100 czy 200 stron, w codziennej pracy potrzebne były co najmniej dwa urządzenia (co znacznie zwiększa poziom komplikacji), a do tego implementacja musiała przejść certyfikację przeprowadzaną przez zewnętrzną, międzynarodową organizację o tej samej nazwie (DLNA). Zespół składał się z wianuszka różnej maści managerów, architekta, który miał w ogóle nie brać udziału w pracy, a jedynie ją oceniać, do tego byłem ja i jeden kolega zatrudniony w czeskim oddziale firmy, który miał dołączyć trochę później. Także w zasadzie na samym starcie całe to zadanie spoczęło na barkach prostego studenta z Polski.

Z czasem się to trochę zmieniało, bo praca szła w miarę sprawnie i klient postanowił dodatkowo zaimplementować funkcjonalności, które nie były obowiązkowe, więc parę innych osób również się przewinęło.

Co wyniosłeś z tego projektu? Czego tak naprawdę nauczyłeś się podczas jego realizacji?

Projekt rozwinął mnie nie tylko pod kątem technicznym, bo było też wiele interakcji z różnymi ludźmi, referowania postępów i debatowania z osobami od certyfikacji. Pamiętam, że do jednego z zagadnień podszedłem może trochę zbyt ambitnie. Chodziło o przypadek, w którym odtwarzamy film z jakiegoś serwera, przyspieszamy go dziesięciokrotnie, po czym następowało mocne spowolnienie, a następnie odtwarzanie filmu od tyłu. Testy certyfikacyjne oczekiwały, że mój kod będzie cały czas wysyłał zapytania do serwera, co podczas przewijania nie zawsze miało miejsce.

Wyjaśniałem, że skoro odtwarzaliśmy film do przodu, to pewną liczbę klatek możemy mieć już zapisaną w pamięci i nie potrzebujemy odpytywać o to serwera. Wymagało to interesującej implementacji, ale nie będę wchodził w szczegóły, bo musiałbym dodatkowo wyjaśnić, jak kompresowane są filmy. W każdym razie ostatecznie DLNA odpowiedziało mi, że pierwszy raz spotykają się z takim podejściem, ale zasadniczo zgadzają się z moją argumentacją i testy zostały poprawione po ich stronie.

Swoją drogą ze spowalnianiem i przyspieszaniem wideo związane są również specjalistyczne algorytmy do obróbki dźwięku tak, aby podczas przyspieszania nie był zbyt piskliwy, a podczas spowolniania nie brzmiał zbyt robotycznie. Tego typu niuansów było naprawdę sporo, także finalnie do Szwecji zawitałem łącznie siedem razy i chociaż wcześniej i później robiłem też zupełnie inne rzeczy, to jednak myślę, że ten okres w karierze rozwinął mnie najbardziej.

Porozmawiajmy o perspektywie pracownika na dzisiejszym rynku pracy. Nadal – mimo rynkowych zawirowań – otrzymujesz dziesiątki ofert pracy na LinkedInie?

Tak, ale w dużej mierze są to oferty trochę niedopasowane. Rekruter widzi, że mam doświadczenie z Javą, więc podsyła ofertę Javy w technologiach webowych. Niby język ten sam, ale to trochę inny świat od Androida, z którym mam najwięcej doświadczenia. Kiedyś jedna oferta była naprawdę interesująca, więc poinformowałem rekrutera, że programowanie w Javie jak najbardziej mi odpowiada i że webówki mogę się nauczyć, ale na tę chwilę nie mam z nią doświadczenia.

Otrzymałem odpowiedź, że to żaden problem, więc z ciekawości poszedłem na rozmowę rekrutacyjną, gdzie już oczywiście siedział zupełnie inny człowiek, któremu nikt tego nie przekazał i który z uporem maniaka przepytywał mnie z frameworków webowych. Jak można się domyśleć, męczyliśmy się tam obaj. Ja starając mu się wyjaśnić, że przed rozmową jasno mówiłem, że nie mam z tym doświadczenia. On bo jedyne pytania jakie miał przygotowane były właśnie z tego obszaru.

Co do zasady staram się odpisywać wszystkim rekruterom, ale w większości przypadków przeklejam po prostu formułkę, że obecnie nie szukam pracy i nie jestem zainteresowany. Niby to nie ma większego sensu, ale wiem, że po drugiej stronie też jest człowiek i że być może faktycznie czeka na odpowiedź.

Jak “spowolnienie gospodarcze” Twoim zdaniem wpłynie na rynek IT? Jakiego rodzaju zmiany przyniosą ostatnie zwolnienia w wielu zagranicznych i polskich firmach?

To raczej pytanie do kogoś mądrzejszego. Ze swojej strony mogę powiedzieć, że w firmie przeżyłem już kilka, jeśli nie kilkanaście okresów klęski. Czasem była to klęska zwykła i pospolita, kiedy na tak zwanej „ławce” lądowało kilkadziesiąt osób, a innym razem była to klęska urodzaju, może nawet gorsza od tej pierwszej, gdzie na już należało zatrudnić kilkadziesiąt dodatkowych osób. Tak to już w tej branży bywa i obstawiałbym, że i tym razem będzie podobnie.

Przeszedłeś drogę od stażysty do Lead Software Engineera – i to wszystko w ramach jednego pracodawcy. Ta 10-letnia ścieżka awansu mogła być krótsza, gdybyś częściej zmieniał firmę?

Nie wydaje mi się. Jak na moje ograniczone możliwości zaliczenie pięciu stanowisk w firmie w niespełna 10 lat to całkiem przyzwoity wynik. Poza tym nie jest to wcale jednoznaczne, ponieważ inne firmy mają też inne struktury, zamiast pięciu „poziomów” mają trzy, albo siedem, są też takie firmy, które w ogóle rezygnują z tych tytułów i mają po prostu jedno stanowisko „programista”. Nie wiem, jak to funkcjonuje w praktyce, ale szczerze mówiąc ten pomysł mi się podoba, bo tytuły w zasadzie do niczego nie są potrzebne i też o niczym nie świadczą.

Tytuły nie są potrzebne? Dlaczego?

Przykładowo, gdyby mój obecny projekt się skończył, to niewykluczone, że trafiłbym do innego, gdzie głównie używa się języka Rust, z którym dotychczas nie miałem styczności. Do tego projektu mógłby także trafić jakiś praktykant, który akurat coś z tym językiem miał do czynienia. Oczywiście nie miałbym problemu z tym, żeby się go nauczyć, ale dopóki bym go nie opanował, to uważam, że (np. podczas oceny kodu) merytoryczna opinia tego praktykanta powinna liczyć się znacznie bardziej niż moja.

Zresztą nawet w rzeczach, z którymi mam duże doświadczenie, zdarzało mi się być pouczanym przez młodszych kolegów, a o tym że mieli rację upewniło mnie porównanie wydajności obu rozwiązań na komputerze. W wielu zawodach nie ma tego bezstronnego sędziego w postaci komputera, który jednoznacznie oceni konkurencyjne pomysły i siłą rzeczy logiczniejsze jest przychylenie się do opinii kogoś z większym stażem, co jednak nie zawsze jest właściwe.

A kwestia zarobków? Głównym argumentem za częstą zmianą pracy są właśnie zarobki. Ponoć częsta zmiana pracy pozwala zarobić więcej.

Na swoje zarobki nie mogę jakoś bardzo narzekać, ale mam kolegów, którzy zmieniali pracę non stop, więc mam też porównanie, jak to wygląda od tej strony. Mało interesowały ich projekty czy obiecanki podczas rozmowy kwalifikacyjnej. Liczyło się jedynie to, czy w kolejnej firmie dostaną lepszą stawkę. Któregoś razu kolega opowiadał mi nawet, że dostał się do N-tej firmy i za tydzień ma pierwszy dzień pracy … ale nie zabawi tam dłużej niż miesiąc, bo już znalazł następną, jeszcze lepszą ofertę i już ta kolejna firma zdecydowała się go zatrudnić.

Mając trochę staroświeckie podejście i szczerze chcąc mu dobrze doradzić, przestrzegałem go przed tym. Mówiłem, że to jest krótkowzroczne, że kto go potem zatrudni, jak w CV zobaczą, że był 3 miesiące tu, 1 miesiąc tam, pół roku gdzieś indziej itd. Fakty są jednak takie, że wyszedł na tym bardzo dobrze, przy okazji zwiedził chyba wszystkie większe polskie miasta i trochę zagranicznych. Oczywiście takie życie w ciągłym ruchu też trzeba lubić i na pewno nie jest to opcja dla każdego, ale z finansowego punktu widzenia, to na pewno dobry sposób na wysokie zarobki.

Teraz przy gwałtownym wzroście ofert pracy zdalnej, jest to chyba jeszcze bardziej atrakcyjne niż kiedyś. Długo się zastanawiałem nad tym, dlaczego takie podejście działa i doszedłem do wniosku, że chodzi po prostu o zwykłą szarą codzienność. Rekruterzy dostają prowizję za każdą zatrudnioną osobę, mało ich obchodzi czy dana osoba zostanie w firmie dłużej, czy nie. Nawet jeżeli ich prowizja jest jakoś uzależniona od przyszłego stażu pracownika w nowej firmie, to oni sami nie mają na to żadnego wpływu, więc i tak opłaca im się „przepychać” tych ludzi dalej. Manager w firmie docelowej, który jest odpowiedzialny za rekrutację, być może sam rozważa, że za chwilę zmieni pracę, więc też go to mało interesuje, chce to po prostu odbębnić.

Może zabrzmi to niepoprawnie, ale ludzie na rozmowie kwalifikacyjnej mają jedynie za zadanie sprawdzić, czy kandydat jest kompetentny, czy nie. Z tego względu, że tacy „skoczkowie” potrafią uczestniczyć w kilkudziesięciu procesach rekrutacyjnych rocznie, to do perfekcji mają opanowane wszelkie pytania rekrutacyjne i po prostu wypadają bardzo dobrze. Oczywiście nie mówię tu, że te osoby nie są kompetentne i jedynie robią dobre wrażenie, bo w IT by to raczej nie zadziałało, bardziej chodzi mi o to, że jeżeli weźmiemy dwie osoby o podobnych kompetencjach, gdzie jedna odbyła sto rozmów rekrutacyjnych, a druga dwie, to statystycznie ta pierwsza wypadnie lepiej i tak to się kręci.

Żałujesz, że nie miałeś takiego podejścia? Że nie spróbowałeś częściej zmieniać pracy, choćby po to, by więcej zarobić?

Trochę tak, a trochę nie. Jestem przekonany, że finansowo bym na tym zyskał, ale to też zajmuje sporo czasu i po prostu dla mnie perspektywa zmiany pracy, aby zarabiać nieco więcej nie była warta zachodu. Gdybym faktycznie dostał wystarczająco dobrą ofertę, to pewnie bym pracę zmienił. Mam jednak parę takich doświadczeń, gdzie idę na rozmowę, przechodzę ją rzekomo bardzo dobrze, a potem dostaję ofertę jedynie marginalnie lepszą od obecnych zarobków, także finalnie siedzę ciągle w tej samej firmie.

Ma to też swoje plusy, bo są koleżanki i koledzy, z którymi można się pośmiać, powspominać stare czasy, a na imprezach integracyjnych nieważne, gdzie się stanie, czy usiądzie, to zawsze trafi się ktoś znajomy. Sporo osób, które odeszły z firmy, po roku dwóch do niej wraca, co też pozwala mi sądzić, że wybrana przeze mnie ścieżka nie jest taka zła. Trochę to brzmi jak stagnacja, ale ze względu na biznes, w jakim działamy, to co jakiś czas projekty się zmieniają i wtedy zaczyna się praca z nowym klientem, z kompletnie innymi ludźmi z różnych zakątków świata, więc nie czuję, żebym stał w miejscu.


Michał Piechowski. W czasie wolnym od przebywania na świeżym powietrzu i byciu kocim guwernerem, zajmuje się pracą jako programista Androida. Od 12 lat kisi się w jednej firmie, a jego podania o skrócenie odsiadki są notorycznie odrzucane.

Zdjęcie główne artykułu pochodzi z unsplash.com.

Redaktor naczelny w Just Geek IT

Od pięciu lat rozwija jeden z największych polskich portali contentowych dot. branży IT. Jest autorem formatu devdebat, w którym zderza opinie kilku ekspertów na temat wybranego zagadnienia. Od 10 lat pracuje zdalnie.

Podobne artykuły