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
Ofertę pracy znalazłem w opisie filmu na YT. Krzysztof Woliński o pracy w Japonii