Zmiana technologii – zamyka drzwi, czy pokazuje nowe możliwości?

Zaczynał od pracy z C# .NET, jednak zmiana projektu przekierowała go na zupełnie inne ścieżki kariery. Dziś „skacze po chmurach” Google, wyciągając z paska podręcznych narzędzi kolejne języki programowania. Nie boi się zmian i zawsze znajduje w nich korzyści. Przeczytajcie o drodze Marcina Borowieckiego przebytej w GFT, pełnej zwrotów i dynamiki.

Zmiana z C# .NET na inną technologię – świadomy wybór czy zrządzenie losu?

– Całkowite zrządzenie losu. Mój poprzedni projekt w Barclaysie dobiegł końca, nie było nic nowego do wzięcia, więc trafiłem na bench. To był okres, kiedy temat rozwiązań chmurowych zaczął być popularny w GFT i wszyscy oczekujący na projekt dostali trochę wolnego czasu na przygotowanie się do certyfikatu Google Cloud Architect. Udało mi się go zdobyć dość szybko, jednak czas mijał, a nowych projektów nie było. Pojawiła się całkiem ciekawa opcja w HSBC dla doświadczonego programisty Python znającego GCP. Ja nie znałem tego języka programowania, kolega z bencha był w nim biegły, ale nie miał pojęcia o rozwiązaniach chmurowych. Postanowiliśmy połączyć siły, dołączyć do projektu z założeniem, że będziemy się wzajemnie wspierać i uzupełniać. Wypaliło doskonale i zostaliśmy tam już na stałe. Dalej to był prawdziwy rollercoaster. Szybko opanowałem Pythona, więc kiedy projekt dobiegł końca, klient przesunął mnie do innego. Osoby, które posiadał na pokładzie nie miały szerokiej wiedzy na temat procesów CI/CD, więc potrzebny był ktoś, kto im te procesy poukłada. Przy tej okazji udało mi się nauczyć Apache Spark i poznać cały temat związany z BigData. Współpraca z klientem układała się na tyle dobrze, że kiedy potrzebowali kogoś do StartUp’u z tego obszaru poprosili mnie o dołączenie – tym razem z wiodącym językiem w postaci Java. Pozostaję w tym projekcie do dziś, już nieco ponad 2 lata. Z całą pewnością mogę zatem powiedzieć, że podróż przez technologie często wynikała nieco z przypadku, ale z perspektywy czasu uważam, że było warto.

Co takiego ciekawego odnajdujesz w swojej obecnej pracy, czego brakowało Ci podczas działania z .NET?

– Na pewno zmianą, która zaobserwowałem jest to, że nie jestem zamknięty na konkretną technologię, nie boję się zmian i podejmowania całkowicie nowych wyzwań. Mogę swobodnie uczestniczyć w dyskusjach na poziomie architektury. Nie mam problemu z tworzeniem różnych Proof of Concept, czy demo technologicznych. Widzę, jak pozwoliło mi to otworzyć się na to, co jest dostępne dla nas na rynku. Język programowania to w moim przekonaniu tylko narzędzie do osiągnięcia celu. W gruncie rzeczy, wszystkie są do siebie mniej lub bardziej podobne, przynajmniej na poziomie koncepcji. Oprócz tego, stworzyło mi to możliwość pracowania na co dzień z różnymi nowinkami technologicznymi dostępnymi na rynku. Z doświadczenia zaobserwowałem, że przez jakiś czas np. .NET jest na topie, jest dużo nowych projektów, ale za chwilę Java czy Python dostają jakieś ciekawe wsparcie i to one zaczynają dominować – istna sinusoida. W samym .NET na pewno nie lubię tego, że trzeba napisać dużo niemal identycznego kodu do zaimplementowania podstawowych funkcjonalności, czy podstawowych wzorców projektowych. To coś, co w innych językach często jest łatwo osiągalne poprzez adnotacje, środowiska programistyczne czy inne udogodnienia.

Czy technologia ma znaczenie, czy to kwestia projektów?

– Dla mnie bez wątpienia największe znaczenie ma projekt, a przede wszystkim ludzie, którzy go tworzą. To oni budują atmosferę, to z nimi komunikuję się na co dzień i choćbym pracował w najciekawszej technologii na świecie (jest taka?) to jeśli projekt i ludzie by nie dopisali, to szybko miałbym dość i szukał zmiany. Blisko 5 lat spędziłem w technologiach związanych z .NET, przeszedłem z nimi wszystkie początkowe szczeble mojej pracy zawodowej i do dziś jest to technologia, której poświeciłem najwięcej czasu w swoim życiu – to właśnie tam mam wciąż największe doświadczenie. Jednak dzięki temu, jakimi ludźmi jestem otoczony, nie mam problemu, aby podjąć się pracy w innej technologii w nowym projekcie. Wszyscy możemy na tym tylko skorzystać. Ja mogę wnieść do projektu nieszablonowe myślenie, doświadczenie z innych technologii, a jednocześnie opierać się na ich wieloletniej znajomości Java czy Python – to jest mega twórcze i rozwijające środowisko. Niejednokrotnie dyskutowaliśmy na temat tego, że w C# mógłbym zrobić coś prościej niż w Java i na odwrót.

Gdybyś mógł wrócić do pracy z .NET to czy w ogóle i co musiałoby się stać by Cię zachęcić?

– Nie miałbym z tym żadnego problemu. Jak już rozmawialiśmy wcześniej – język to tylko technologia, narzędzie. Najważniejsze w codziennej pracy są dla mnie zupełnie inne aspekty. Do dziś jestem na przykład rekruterem w .NET oraz formalnym członkiem tej familii, więc to nie jest tak, że odciąłem się od tego i chce wymazać tę kartę z mojego życiorysu. Motywuje mnie to, aby być cały czas na bieżąco z .NETowymi nowinkami, bo nigdy nie wiadomo co przyniesie przyszłość.

Jak z perspektywy czasu patrzysz na swoją decyzję?

– Jak na najlepszą rzecz, która wydarzyła się na mojej ścieżce zawodowej. Nie dlatego, że nie lubię .NET – wręcz przeciwnie. Pozwoliło mi to jednak otworzyć szerzej oczy, zobaczyć co dzieje się w światku nowych technologii i spojrzeć inaczej na pewne kwestie związane z architekturą czy doborem rozwiązań w projekcie. Wielokrotnie udało mi się dzięki temu namówić klienta, aby pewne elementy systemu napisać w innym języku niż było to początkowo planowane – z korzyścią dla wszystkich. Klient otrzymał komponent szybciej, zespół był zadowolony widząc więcej sensu w tym, co będzie robił, a do tego sama aplikacja działała nieporównywalnie wydajniej i stabilniej. Miałem to szczęście, że mogłem się uczyć nowych technologii bezpośrednio na projekcie, a nie przebijając się przez kolejne szkolenia. Było to dużo przyjemniejsze doświadczenie. Trafiłem przy tym na świetnych ludzi, którzy dali mi wielkie wsparcie i okazali masę zaufania. Pomimo nauki nowego języka wcale nie czułem się nowicjuszem, dzięki całemu bagażowi doświadczenia, które mogłem wnieść do zespołu i wykorzystać od samego początku.

Co możesz poradzić ludziom rozważającym zmianę technologii? Jakieś wyzwania lub rzeczy na które powinni zwrócić uwagę?

– Ze swojej strony mogę poradzić, aby się nie wahali i spróbowali. Warto. Dla własnej satysfakcji, że się umie i potrafi, dla samorozwoju i stworzenia sobie różnych możliwości. Nigdy nie wiadomo, co przyniesie przyszłość. Ja dzięki swojej przygodzie z różnymi językami nie będę się nigdy obawiał żadnego projektu pod kątem technologicznym – będę rozważał zupełnie inne aspekty. To nie jest też tak, że osoby, które chcą zmienić technologię zaczynają zupełnie od zera. W każdym projekcie, do którego trafiłem, mój grade został zachowany. Mimo, że czasem opierałem się na wsparciu mocnych technicznie osób, to widziałem, jak wiele sam jestem w stanie wnieść do projektu i pomóc im w rozwoju – działaliśmy po prostu jak zespół. Wiele rzeczy w różnych językach jest podobnych lub nawet identycznych, jak chociażby wzorce projektowe, czy procesy CI/CD. Występują tam również analogiczne narzędzia, więc nauka idzie dużo szybciej niż za pierwszym razem. Często jest to po prostu adaptacja do analogicznej składni, czy interfejsu. Ja osobiście na pewno nie żałuję decyzji i polecam spróbować każdemu, kto tylko się nad tym zastanawia.