#TeamSpeednet: Łukasz, Backend Developer


Poznaj Łukasza Sosnowskiego – backend developera w Speednet. Dowiedz się, jak rozpoczęła się jego przygoda z branżą IT, które projekty stanowiły dla niego największe wyzwanie oraz co łączy programowanie z planszówkami.
Jak długo pracujesz w Speednet i czym się zajmujesz?
Łukasz: Wydaje mi się, że zacząłem pracę w marcu 2019 roku. Muszę przyznać, że ten czas minął niesamowicie szybko – w tym roku stuknie już sześć lat.
Czym się zajmuję? Jestem programistą, backendowcem. Odkąd sięgam pamięcią, zajmuję się kodowaniem a zaczynałem od języka BASIC.
Jakie były Twoje pierwsze kroki w programowaniu?
Łukasz: Moje pierwsze zetknięcie z komputerami to był Commodore 64, później Atari, ale te sprzęty mieli moi koledzy. W końcu mój tata zdecydował, że kupi nam komputer – był to PC XT z kartą graficzną Hercules. W porównaniu do innych komputerów z tamtych czasów nie nadawał się do gier, które interesowały młodych ludzi. Siłą rzeczy zacząłem więc eksplorować inne możliwości, sprawdzałem system operacyjny, uczyłem się programowania i stopniowo zagłębiałem się w ten świat.
Oczywiście, po drodze miałem różne przygody. Przez długi czas nie byłem pewien, czy programowanie to coś, czym chcę zajmować się na poważnie. Moja droga do tego zawodu była dość wyboista. Dopiero kiedy na studiach bibliotekoznawstwa odkryłem salkę komputerową z nieograniczonym dostępem do internetu, to zrozumiałem, że właśnie tym chcę się zajmować. To był przełom – zacząłem szukać materiałów o programowaniu, odkrywałem języki, przykłady, tutoriale. Byłem tym tak zafascynowany, że codziennie spędzałem tam całe dnie. W końcu, po pierwszym semestrze, wyrzucono mnie ze studiów, ale już wtedy wiedziałem, co chce robić.
Jak trafiłeś do Speednet?
Łukasz: Tak naprawdę nigdy wcześniej nie pracowałem w firmie programistycznej, można powiedzieć, że działałem trochę na uboczu. Oczywiście zajmowałem się programowaniem, bo tworzyłem sklepy internetowe od podstaw dla firmy handlowej. W pewnym momencie zaczęło mi jednak brakować rozmów na tematy, które mnie naprawdę interesowały. Chciałem dyskutować o tym, jak rozwiązać dany problem albo czy nazwa klasy, którą wybrałem, jest odpowiednia, czy też jakie metody powinny mieć konkretne obiekty… Próbowałem poruszać te kwestie w rozmowach z handlowcami, ale patrzyli na mnie jak na wariata. Wtedy uświadomiłem sobie, że coś mi umyka. Muszę przyznać, że przez długi czas żyłem trochę „pod kamieniem”. [śmiech]
W wieku 39 lat poczułem, że jeśli czegoś nie zmienię, to utknę w tej firmie na zawsze. Wysłałem jedno CV i dostałem zaproszenie na spotkanie techniczne do Speednet z Mateuszem. Po tej rozmowie wyszedłem trochę zmartwiony, bo Mateusz uświadomił mi, że żyłem w zupełnie innym świecie. Pokazał mi nową rzeczywistość: konferencje, meetupy, inne frameworki, technologie, o których nie miałem pojęcia. Poczułem, że zawaliłem tę rozmowę, ale jednocześnie miałem jasność, w którym kierunku powinienem iść. Postanowiłem, że za pół roku wrócę i spróbuję jeszcze raz.
Wróciłem do swojej pracy i zacząłem wdrażać nowe rzeczy, ale kilka dni później dostałem telefon od Gosi z HR z zaproszeniem na drugą rozmowę. To było coś o czym marzyłem, chciałem trafić do firmy, w której mogę się rozwijać, pracować w różnych projektach, rozmawiać z ludźmi, którzy rozumieją, o czym mówię, i z którymi mogę konsultować różne pomysły. Cieszę się, że wszystko potoczyło się właśnie w ten sposób i że dzisiaj tutaj jestem.
Co najbardziej lubisz w swojej pracy i co Cię motywuje na co dzień?
Łukasz: Najbardziej lubię rozwiązywać problemy. Zawsze staram się podchodzić do nich w nieszablonowy sposób. Gdy spotykam się z podobnym wyzwaniem, które już kiedyś rozwiązywałem, stawiam sobie nowe cele i próbuję znaleźć inne, być może lepsze rozwiązanie. Jeśli się uda, to świetnie, bo daje mi to ogromną satysfakcję. Jeśli się nie uda, traktuję to jako okazję do nauki i zdobycia nowej wiedzy. To właśnie sprawia, że codzienna praca jest dla mnie przyjemnością.
Co mnie motywuje? Myślę, że to dość oczywiste. Jestem częścią zespołu projektowego, w którym wspólnie tworzymy coś wartościowego. Pracujemy dla klienta, który liczy na to, że będziemy rozwijać jego produkt. Świadomość, że jestem częścią czegoś większego i że moja praca realnie wpływa na działanie całego systemu, daje mi dużą satysfakcję.
Z jakich narzędzi i technologii najczęściej korzystasz?
Łukasz: Tak jak wspomniałem, jestem programistą backendowym i pracuję w PHP. Obecnie korzystamy z wersji 8.3, ale wkrótce przechodzimy na 8.4. Pracujemy także z frameworkiem Symfony. Obecnie w wersji 6.2, ale planujemy migrację do 6.4, a później do wersji 7.
To są główne technologie, z którymi mam do czynienia na co dzień. Do tego dochodzi fantastyczne środowisko oparte na Dockerze. W tym miejscu chciałbym szczególnie wyróżnić moich kolegów – Błażeja i Tomka, którzy wykonują świetną robotę, utrzymując i rozwijając nasze środowisko deweloperskie. Jest ono naprawdę rewelacyjne! Cały nasz ekosystem to zbiór wielu aplikacji, które ze sobą współpracują. Dzięki ich pracy możemy odpalić wszystko lokalnie na naszych komputerach, co znacznie ułatwia i przyspiesza pracę. Ja tak naprawdę tylko korzystam z efektów ich pracy.
Który z dotychczas realizowanych przez Ciebie projektów stanowił dla Ciebie wyzwanie i dlaczego?
Łukasz: Każdy z nich był wyzwaniem, ale z różnych powodów. Pamiętam, że kiedy zacząłem pracę w Speednet, trafiłem do projektu, który prowadził Rafał. Było to dla mnie ogromne wyzwanie, ponieważ nigdy wcześniej nie pracowałem w metodologii Scrum. To także moje pierwsze zetknięcie z frameworkiem Symfony. Wcześniej korzystałem z innych technologii. Musiałem szybko się wdrożyć, ale ostatecznie udało mi się nadrobić zaległości i dostosować do nowego środowiska pracy.
Później dołączyłem do zespołu Opinahjo (obecnie Eduhouse), gdzie spędziłem trochę czasu. W przeciwieństwie do poprzedniego projektu, w którym pracowałem samodzielnie, tutaj musiałem nauczyć się współpracy z zespołem. Dodatkowo był to projekt realizowany dla klienta zagranicznego, co było dla mnie nowym doświadczeniem i wymagało lepszej komunikacji w języku angielskim.
Następnie trafiłem do projektu bankowego, gdzie praca wyglądała zupełnie inaczej – bardziej przypominała środowisko dużej korporacji. Była to nowa metodologia pracy, z większym naciskiem na regularne, dobrze zorganizowane spotkania. Uczestnictwo w nich wymagało ode mnie większego zaangażowania, a często pojawiające się dyskusje i wymiana pomysłów wymagały rozwinięcia umiejętności miękkich. Sam codebase był ogromny. Proces tworzenia requestów i zarządzania środowiskiem był bardziej skomplikowany niż w moich wcześniejszych doświadczeniach. Był to projekt na dużą skalę.
Prowadzisz w firmie grupę fanów planszówek, która bardzo prężnie działa. Co było impulsem, żeby ją założyć?
Łukasz: Tak naprawdę w planszówki grałem już wcześniej ze swoją grupą znajomych. Potem, w pracy, poznałem kilka osób, które również interesowały się grami więc pojawił się pomysł wspólnego grania po godzinach. Okazało się, że w firmie istniał już kanał poświęcony planszówkom, ale nie za wiele się na nim działo. Zaczęliśmy więc go wykorzystywać do umawiania się na rozgrywki.
Na początku rozwijało się to powoli. Przez długi czas mieliśmy stałą grupę czterech osób, z którymi spotykaliśmy się jeszcze w starym biurze w PPNT. Po przeprowadzce do Gdańska postanowiłem bardziej rozkręcić ten kanał, aktywnie zapraszać nowych ludzi i zachęcać ich do wspólnej gry. Dzięki temu coraz więcej osób otwierało się na planszówki i społeczność zaczęła rozwijać się w naturalny sposób.
Teraz kanał funkcjonuje już samodzielnie – ja się trochę wycofałem. Moim celem było stworzenie przestrzeni, w której ludzie będą się sami organizować i wygląda na to, że idzie to w tym kierunku.
Czy widzisz jakieś podobieństwa między światem planszówek a swoją pracą? Może jakieś umiejętności się pokrywają?
Łukasz: Przede wszystkim jest bardzo podobny feeling. Kiedy grasz w planszówki i podejmiesz dobrą decyzję, dostajesz natychmiastowy feedback np. zdobywasz zasoby, osiągasz przewagę i od razu odczuwasz satysfakcję, bo Twój ruch przyniósł efekty. Nawet jeśli to nie była idealna decyzja, to była najlepsza możliwa w danym momencie, więc i tak jesteś zadowolony.
Podobnie jest w programowaniu. Kiedy masz do rozwiązania problem, wpadniesz na pomysł i okazuje się, że działa, to od razu czujesz ten sam zastrzyk satysfakcji. Natychmiastowa informacja zwrotna i poczucie dobrze wykonanego zadania to jedno z kluczowych podobieństw między programowaniem a planszówkami.
Na głębszym poziomie dużą rolę odgrywa planowanie i przewidywanie przyszłych kroków. W programowaniu często pracujesz nad częścią większego procesu. Musisz już na etapie implementacji przewidzieć, jakie zmienne czy struktury będą potrzebne w dalszej fazie projektu, by uniknąć problemów w przyszłości. Dokładnie tak samo działa strategia w planszówkach. Jeśli wiesz, że za kilka tur będziesz chciał wykonać określoną akcję, musisz wcześniej zdobyć odpowiednie zasoby, przygotować grunt pod przyszłe ruchy.
Innym ciekawym aspektem są gry kooperacyjne i sposób, w jaki odzwierciedlają pracę zespołową. Niektóre są takie, że występuje w niej tzw. efekt lidera, gdzie jedna osoba przejmuje kontrolę i mówi innym, co mają robić. To odbiera trochę satysfakcję pozostałym graczom, bo wykonują jedynie cudze polecenia. Jednak są też takie gry, gdzie każdy uczestnik posiada częściowe informacje, których nie mają inni, więc musi samodzielnie podejmować decyzje, bazując na swojej wiedzy. Wtedy ta współpraca i planowanie są niezmiernie ważne. Podobnie działa praca w zespole Scrumowym – jeśli chcemy efektywnie działać, musimy dzielić się informacjami, komunikować i wspólnie ustalać strategię. Tak jak w planszówkach, sukces zależy od umiejętności współpracy, dobrej komunikacji i strategicznego myślenia.
Jakie są twoje ulubione gry?
Łukasz: To bardzo trudne pytanie! Jeśli mam komuś polecić grę, to najpierw zawsze staram się dowiedzieć, co ta osoba lubi, jakie ma zainteresowania. Jestem zwolennikiem hipotezy, że wszyscy lubią gry planszowe, tylko nie wszyscy znaleźli jeszcze swoją. Jeśli wiem, czy ktoś preferuje gry bardziej rywalizacyjne czy kooperacyjne, czy woli ekonomiczne strategie, gry bitewne, czy może coś lekkiego i szybkiego, to mogę polecić coś odpowiedniego. Uważam, że nie ma jednej gry idealnej dla wszystkich, ale jeśli miałbym wskazać swoje top 3, to byłyby to:
- Lewis & Clark – absolutnie uwielbiam tę grę. To rywalizacyjna gra ekonomiczna, w której gracze wcielają się w odkrywców przemierzających Dziki Zachód. Każdy prowadzi swoją drużynę badawczą i stara się jak najszybciej dotrzeć do celu. Mechanika jest świetnie zaprojektowana, a klimat eksploracji bardzo dobrze oddany.
- Puerto Rico – klasyk wśród gier planszowych. To doskonała gra ekonomiczna z prostymi zasadami, które łatwo wytłumaczyć, a jednocześnie daje mnóstwo satysfakcji. To świetny wybór dla osób, które dopiero zaczynają swoją przygodę z bardziej wymagającymi planszówkami.
- Mage Knight – to już zdecydowanie cięższy kaliber. Gra jest skomplikowana, długa i wymaga sporo zaangażowania. Za każdym razem, gdy w nią gram, popełniam jakiś błąd, co tylko pokazuje, jak wiele aspektów trzeba tu brać pod uwagę. Czytanie instrukcji do tej gry to wielogodzinna wyprawa sama w sobie, ale gra daje ogromną satysfakcje z rozrywki.