Największy boost w karierze dał mi staż w Allegro. Historia Wojciecha Kasperskiego

Wojciech Kasperski chciał sprawdzić się w warunkach hackathonu, więc postanowił wziąć udział w BrainCode – konkursie organizowanym przez Allegro. Po wygranej otrzymał propozycję stażu, a po trzech miesiącach – propozycję pracy. Dziś jest Junior Frontend/Software Engineerem w Allegro, a pracę łączy ze studiami na Politechnice Poznańskiej. Poznajcie historię Wojciecha.

Dlaczego postanowiłeś wziąć udział w BrainCode?

Hackathony to dla mnie zawsze duże pole do popisu, ale także do nauki. Tak samo było z BrainCode’m. Przyszedłem na niego z myślą o tym, by nauczyć się czegoś nowego, rozwinąć umiejętności, które już miałem oraz stworzyć ciekawą aplikację w jak najkrótszym czasie. Miała ona być jednocześnie przyjemna dla oka i wygodna w użyciu. Przed samym BrainCode’m przeczytałem wiele książek z zakresu User Experience, jak i na bieżąco uczyłem się o technologii, którą najbardziej lubię, czyli Vue. Hackathon był też dobrą okazją by przekonać się jak dużo się nauczyłem.

Jaki problem rozwiązywała aplikacja i jaki był Twój udział w jej tworzeniu?

Projekt miał za zadanie śledzić w czasie rzeczywistym paczki, które zamówiliśmy. Estymował on trasę na jakiej znajduje się paczka i na podstawie danych w przybliżeniu pokazywał na mapie, gdzie mniej więcej nasze zamówienie się znajduje. W ten sposób postanowiliśmy pokazać ludziom w pozorny sposób co dzieje się z ich paczką, a przy okazji wzbogacić trochę User Experience systemów trackingowych. Aktualnie większość z nich pokazuje jedynie prostą tabelę z informacją, gdzie ostatnio zarejestrowano miejsce pobytu przesyłki.

W jaki sposób w zespole podejmowaliście decyzje o stworzeniu kluczowych funkcji?

Decyzje o kluczowych funkcjach podejmowaliśmy wspólnie, poprzez swego rodzaju burzę mózgów. Najpierw zastanawialiśmy się też nad tym, na ile dane rozwiązanie jest możliwe do wykonania technicznie, następnie, dzieliliśmy pracę na część backendową i frontendową, dopiero wtedy decydowaliśmy, co tak naprawdę damy radę wykonać w 24h, a co nie. Czasem też w trakcie programowania, ktoś z zespołu rzucał ciekawym pomysłem, którego wdrożenie w projekt zajmowało może kilka minut, więc jeśli jeden z nas miał zapas czasu, bo musiał czekać na funkcjonalność od innych, albo był ze swoją pracą do przodu, wtedy też zajmował się taką funkcjonalnością.

Ograniczał Was czas i liczba rąk do pracy. Jak wyglądałby ten projekt, gdybyście mieli na niego dwa razy więcej czasu i ludzi?

Na hackathonach na pewno nie ma czasu na testy jednostkowe, czy end-to-end i omówienie dokładnie wszystkich funkcjonalności. Dlatego jeśli mielibyśmy więcej czasu na pewno w naszym projekcie pojawiłby się testy, a każda z funkcjonalności została by bardziej przemyślana technicznie i co za tym idzie tworzona w optymalny sposób. Najczęściej aplikacje tworzone w 24h wymagają dużej refaktoryzacji i nie ukrywam, że często też są na tyle nieoptymalne, że niekiedy warto napisać je od nowa, jeśli chcemy je rozwinąć i wypuścić na rynek.

Po wygranej w BrainCode otrzymałeś propozycję trzymiesięcznego stażu. Jak Tobie przedstawiono wizję tego, co będziesz robił w Allegro?

Po wygranym Hackathonie postanowiłem wykonać zadanie stażowe, które w moim przypadku polegało na zintegrowaniu się z API Spotify i stworzeniu prostej wyszukiwarki albumów. Chciałem w ten sposób pokazać, że chcę się dalej rozwijać, a wiedza, którą nabyłem podczas rozwiązywania tego zadania jest mi też dzisiaj bardzo pomocna w codziennej pracy. 

Jeśli natomiast chodzi o samą propozycję pracy to ucieszyłem się, gdy usłyszałem, że moje rozwiązanie spotkało się z dużą aprobatą, co owocowało tym, że dostałem propozycję stażu. Wiedziałem też mniej więcej czym będę się zajmował, a późniejsze doświadczenia przerosły moje oczekiwania (w pozytywnym sensie).

Czego nauczyłeś się podczas tych trzech miesięcy?

Staż w Allegro był o wiele bardziej zaskakujący, niż się spodziewałem. Przez trzy miesiące nauczyłem się wielu nowych rzeczy. Już w pierwszym tygodniu pracy opanowałem React’a, gdzie wcześniej jedynym front-end’owym frameworkiem jaki znałem było Vue. W następnej kolejności nauczyłem się pisać testy jednostkowe, jak i testy e2e, na które mój zespół kładł duży nacisk w codziennej pracy.

Dzięki dużym możliwościom jakie daje Allegro w kwestiach rozwoju pracowników, miałem też okazję uczestniczyć w wewnętrznym szkoleniu z TypeScript’a wraz z moim zespołem. Było to dla mnie dużym zaskoczeniem, gdyż szkolenie było proste, przyjemne i przeprowadzone od praktycznej strony. Nauczyłem się większości potrzebnych mi zagadnień, by korzystać z tej technologii w niecały dzień, a teraz wykorzystuję tę wiedzę, w bieżących projektach.

Co z umiejętnościami miękkimi – też szkoliłeś się z nich?

W Allegro nie rozwija się tylko umiejętności twardych, ale też miękkie, o czym miałem okazję przekonać się na warsztatach. Prowadzono je na spotkaniach wraz z resztą stażystów w połowie i na końcu programu stażowego Summer e-Xperience. Dzięki tym warsztatom miałem okazję poznać swoje mocne, jak i słabe strony, a także nauczyć się efektywniej komunikować z ludźmi o innych typach osobowości, niż moja własna.

Spodziewałeś się innych zadań? Które zaskoczyło Cię najbardziej?

Większość zadań pokrywała się z tym czego się spodziewałem, czyli z tym, że będę musiał pisać dużo kodu, pilnować jego jakości i tak też było. Jest też kilka rzeczy, które zaskoczyły mnie. Jedną z nich na pewno była skala niektórych projektów, co skutkowało tym, że troszkę czasu zajęło mi wdrożenie się i poznanie technologii, na których są oparte. Zaskoczyła mnie też ilość testów jaką pisze się do zadań. Przed Allegro miałem mało do czynienia z testowaniem kodu i robiłem to raczej sporadycznie, albo testowałem tylko krytyczne funkcjonalności. Teraz piszę bardzo dużo testów, przez co zacząłem dostrzegać zalety płynące z ich pisania, a także nauczyłem się efektywniej testować kod.

Allegro przydzieliło Tobie mentora, który wspierał Twój rozwój w firmie. Poza mentorem, do kogo zwracałeś się szukając rozwiązania problemów?

Pytałem konkretnie osoby, które wiedziałem, że mogą mieć największe pojęcie o tym z czym się zmagałem. Wymagało to też na początku trochę rozeznania w zespole i firmie, ale zazwyczaj szybko ktoś podpowiadał jak rozwiązać dany problem. Niekiedy też rozwiązanie wymagało kontaktu w szerszym gronie osób i tu z pomocą często przychodził firmowy Slack, gdzie można się wprost zapytać o jakiś konkretny problem i zawsze znajdzie się osoba chętna do pomocy. Muszę przyznać, że takie podejście i otwartość ludzi w Allegro pozytywnie mnie zaskoczyła.

Nie pierwszy raz wspominasz o zaskoczeniu stażem. Jak wyobrażałeś sobie staż w dużej firmie?

Na pewno w pierwszej kolejności myślałem, że będzie bardziej “sztywno”. Wyobrażałem sobie taką typową “korpo atmosferę”, a ku memu zaskoczeniu w Allegro zdecydowanie tak nie jest. Oczywiście są pewne zasady, ale atmosfera jest dużo luźniejsza, niż się spodziewałem, a ludzie są pomocni i mili. Sama firma daje też dużo benefitów i możliwości rozwoju. Mamy platformę MindUp, która pozwala zapisywać się na szkolenia, często zdarzają się też wyjazdy i integracje, a oprócz tego każdy z pracowników ma swój budżet szkoleniowy. Swój budżet postanowiłem wykorzystać na wyjazd na WebSummit 2019 do Lizbony i ogromnie się cieszę, że mam tu takie możliwości.

Uważasz, że udział w BrainCode dał Tobie boost w karierze?

Myślę, że każdy hackathon uczy czegoś nowego, ale jeśli chodzi największy boost w mojej karierze to na pewno był to sam staż tutaj, w Allegro. Nabyłem masę nowych umiejętności, których jestem pewien, że nie nauczyłbym się w tak prosty i szybki sposób gdziekolwiek indziej. W rozwoju mojej kariery ważne jest też dla mnie osobiście poznawanie ludzi, a w Allegro ciekawych osób do poznania jest całe mnóstwo, o czym przekonałem się też na Allegro Tech Meeting 2019.

Komu poleciłbyś udział w konkursie, a później staż w Allegro?

Udział w konkursie na pewno osobom, które zaczynają swoją przygodę w świecie IT. Hackathony to doskonałe miejsce na poznawanie nowych technologii i rozwój swoich umiejętności. A sam staż każdemu, kto chce nieustannie rozwijać swoje umiejętności, nie boi się nowych wyzwań i chce zostać prawdziwym profesjonalistą w naszej branży.

Hackathon czy staż to lepsza forma nauki od szkoły programowania? Dlaczego?

Myślę, że tutaj dużo zależy od nas samych i od tego ile już umiemy. W moim przypadku, dużo solidnych podstaw nauczyłem się będąc w technikum informatycznym, gdzie programowałem głównie w C++ i PHP. Dlatego uważam, że na początek dobrze jest, gdy ktoś faktycznie pokaże nam podstawy, a przynajmniej jest to łatwiejsze i na pewno wygodniejsze, też mniej się wtedy prokrastynuje. Później warto uczyć się samemu i na własnych błędach zdobywać więcej doświadczenia. Osobiście nigdy nie korzystałem z żadnej szkoły programowania, dlatego w tej kwestii nie powiem dużo. Jeśli natomiast chodzi o hackathony, to pozwoliły mi one zdobyć dużo doświadczenia z perspektywy pracy w zespole, jak i szybko wymieniać z jego członkami wiedzę. 

Bardzo przydatne dla mnie były również wszelkiego rodzaju darmowe konferencje/prelekcje na uczelni, które pozwoliły po prostu usłyszeć o niektórych technologiach, a potem samemu użyć ich we własnych projektach. Nie ukrywajmy, że dzisiaj różnego rodzaju frameworków jest cała masa i czasem nawet ciężko natknąć się na niektóre, w ogromie dzisiejszego internetu. Osobiście uważam też, by dobrze się nauczyć programowania najlepiej po prostu pisać jak najwięcej i tworzyć jak najwięcej projektów. Na początku może i będą one słabej jakości, ale z czasem będą się stawać coraz lepsze, a my będziemy mieć coraz więcej doświadczenia.

Brałeś udział w kilku hackathonach, odbyłeś trzymiesięczny staż, a teraz zacząłeś pracę w Allegro. Z perspektywy tych doświadczeń jesteś w stanie wskazać, o czym mówi się za mało juniorom w kwestii programowania?

Na pewno chciałbym wiedzieć na początku swojej drogi jak bardzo pomaga testowanie naszego kodu oraz jak proste ono jest. Często, gdy siadamy do czegoś z czym wcześniej nie mieliśmy styczności szybko się zniechęcamy, a czasem niektóre rzeczy są wręcz nieodzowne w codziennej pracy. Jedną z tych rzeczy są właśnie testy i tak na dobrą sprawę wystarczy niewiele czasu by się ich nauczyć, a przy okazji później zaoszczędzić masę czasu przy debugowaniu naszej aplikacji.

Drugą kwestią jest na pewno dbanie o jakość kodu. Jeśli nie zrobimy czegoś od razu, tylko odłożymy to na później lub zastąpimy jakimś prostym hotfixem, to prawdopodobnie już to tak zostanie i być może w przyszłości przysporzy nam to niekiedy nie małych problemów. Mam tu na myśli czytanie zawiłego kodu, jak i później trudniejsza jego refaktoryzacja, gdyż musimy poświęcić więcej czasu na poznanie tego, co stworzyliśmy od nowa. Natomiast w momencie, kiedy nasz kod jest od razu czytelny, zajmuje to dużo mniej czasu.

Trzecią rzeczą z kolei jest unikanie dodawania niepotrzebnie dużej liczby zależności do naszej aplikacji. Często możemy użyć np. jakiejś biblioteki do formatowania daty w naszej aplikacji (np. moment w JS) i ma to sens jeśli robimy to dość często, albo potrzebujemy dość zaawansowanie to wykorzystać. Jeśli jednak wspomniana data pojawia się raz, czy dwa to warto się zastanowić, czy w naszym języku nie ma jakiejś prostej wbudowanej funkcji (jak np. Date() w JS), a nie niepotrzebnie zwiększać rozmiar naszej aplikacji i obniżać jej wydajność. 

Odkryłeś już receptę na to, by być dobrym programistą także za 5 lat?

Tak, mam swego rodzaju plan, na własny rozwój. Przede wszystkim, uczyć się od lepszych od siebie, angażować w ciekawe projekty oraz podejmować się trudnych wyzwań i nieustannie uczyć się nowych rzeczy. Przy czym technologii jest dużo, dlatego nie mam tu na myśli opanowania wszystkich, ale przynajmniej poznania choć w niewielkiej ilości wiedzy z dotyczącej różnych z nich. W Allegro osobiście oprócz technologii frontendowych nauczyłem się dużo o testach automatycznych w Javie i języku jakim jest Groovy. Poznałem też troszkę zagadnień architektonicznych, jak i miałem parę szkoleń z umiejętności miękkich, które wbrew pozorom są bardzo przydatne na co dzień. 

Wielu programistów, z którymi rozmawiałem, ceniło w swojej karierze to, że pracowali nad różnymi projektami. W Allegro pracujesz nad jednym – myślisz, że nie przeszkodzi to w Twojej ścieżce kariery?

Akurat na stażu głównie pracowałem nad jednym projektem, ale wynikało to głównie z faktu, że w kwartale, w którym odbywał się mój staż, team skupiał się głównie na nim. Miałem też okazję poznać troszkę inne projekty. W najbliższym czasie wybieram się też na turystykę zespołową, gdzie dla odmiany przesiądę się z front-end’u na backend. Dla niewtajemniczonych turystyka zespołowa w Allegro polega na przejściu na krótki okres np. miesiąca do zupełnie innego zespołu, pozwala to mi. in. poszerzyć własne kompetencje, jak i poznać oraz spróbować samemu tego co robią inne zespoły.

Jak dużo czasu spędzasz po pracy na naukę?

Oprócz pracy w Allegro studiuję dziennie informatykę na Politechnice Poznańskiej, więc po pracy zajmuję się głównie studiami. W pracy poznaję branżę od strony praktycznej, a na studiach poznaję też inne technologie, które niekoniecznie są używane w firmie, ale wiedza o nich może być bardzo przydatna. Oprócz Allegro i studiów staram się też tworzyć własne projekty lub udzielać się w projektach na uczelni (niezwiązanych z tokiem studiów). Dzięki temu mam okazję pracować nad naprawdę wieloma rzeczami, co wprowadza dużo różnorodności w to czym się zajmuję. 


Wojciech Kasperski. Junior Front-end/Software Engineer w Allegro. Wraz z zespołem wygrał tegoroczną edycję hackathonu BrainCode. W ramach nagrody odbył staż w Allegro w Poznaniu i otrzymał propozycję etatu. Czas pracy dzieli na kontynuowanie studiów na Politechnice Poznańskiej. Pasjonuje go świat frontendu.

Zapraszamy do dyskusji

Patronujemy

 
 
Polecamy
Lgnę do ludzi, którzy wiedzą więcej ode mnie. Historia Bartłomieja Skowronka