Mam na imię Przemek i jestem Starszym Inżynierem Oprogramowania z ponad 10-letnim doświadczeniem w budowaniu aplikacji frontendowych. Moją główną specjalizacją jest frontend, ale pracowałem także z node.js oraz Pythonem po stronie backendu. Uważam, że frameworki i języki programowania są jedynie narzędziami potrzebnymi do stworzenia odpowiedniego produktu. Szybko się uczę i uwielbiam poznawać nowe rzeczy. Sam również lubię przekazywać zdobytą wiedzę. Kładę duży nacisk na Developer Experience, tj. środowiska testowe, frameworki testujące, systemy budowania, CI/CD, architekturę i infrastrukturę, ponieważ wierzę, że aby działać szybko, trzeba mieć środowisko, które dostarcza natychmiastowej informacji zwrotnej. Poza rolą programisty, jestem także liderem zespołu i liderem technicznym. Lubię pracować w zespole, ale potrafię też pracować samodzielnie. Jestem certyfikowanym Scrum Masterem, aczkolwiek uważam, że procesy są przede wszystkim potrzebne do zbudowania zespołu. Gdy masz już zespół o wysokiej synergii i zaufaniu, to zespół gwarantuje sukces, a nie sam proces.
A teraz kilka słów o mojej historii…
Swoją profesjonalną karierę rozpocząłem od programu stażowego w Samsung Poland R&D Center. Dołączyłem do zespołu platformy SmartTV. Tworzyliśmy tam aplikacje VOD dla krajowych nadawców telewizyjnych z Europy. Korzystaliśmy z wewnętrznych Samsung WebAPIs, Backbone.js, require.js, grunt, Jasmine oraz Karma. Po trzech miesiącach stażu zostałem zatrudniony jako Młodszy Inżynier Oprogramowania. Spędziłem w Samsungu 2,5 roku, podczas których awansowałem na stanowisko Inżyniera Oprogramowania. Miałem również okazję pełnić funkcję Technicznego Lidera oraz Scrum Mastera w średniej wielkości zespole w Poznaniu i Warszawie.
Po 30 miesiącach w Samsungu zdecydowałem się zmienić firmę i, szczerze mówiąc, miałem wspaniały timing 😅, ponieważ kilka miesięcy później zamknięto biuro Samsunga w Poznaniu. Następnym etapem mojej kariery był Egnyte Poland. Spędziłem tam (zbieg okoliczności) 2,5 roku, tworząc produkt do współpracy i przechowywania danych. Na początku używaliśmy technologii bardzo podobnych do tych, których używałem w Samsungu, tj. Backbone.js, require.js oraz grunt. Ale zaczęliśmy także korzystać z nowej, błyszczącej technologii o nazwie React.js :) – bez JSX, z mixinami i wszystkimi ówczesnymi dobrodziejstwami Reacta. Z sukcesem przenieśliśmy nasz system budowania na webpack. Byłem odpowiedzialny za migrację frameworka testów E2E (z Nightwatcha na webdriver.io). W Egnyte pełniłem także rolę Scrum Mastera w małym, interdyscyplinarnym zespole. Nowością dla mnie była współpraca z zespołami z USA i Indii, co nauczyło mnie pracy z grupami działającymi w różnych strefach czasowych.
Następnie chciałem przekonać się, jak to jest pracować dla software house’u i robić to w pełni zdalnie. Dlatego dołączyłem do Sunscrapers – warszawskiej firmy z branży software house. Spotkałem tam mnóstwo fantastycznych osób i zdobyłem wiele doświadczenia w zarządzaniu projektami. Miałem okazję nauczyć się aplikacji typu PWA. Byłem częścią zespołu odpowiedzialnego za przeprojektowanie portalu od pizzy ;) (jednej z największych platform do zamawiania jedzenia online). Po 6 miesiącach zorientowałem się jednak, że praca w firmie o modelu outsourcingowym nie jest dla mnie – kocham budować i rozwijać produkt, a nie tylko realizować projekt, dlatego wróciłem do Egnyte.
„Nie wchodzi się dwa razy do tej samej rzeki” – i to prawda w przypadku mojego powrotu do Egnyte, bo dołączyłem do nowo utworzonego zespołu, który miał za zadanie stworzyć zupełnie nowy produkt w dziedzinie nadzoru i bezpieczeństwa – Egnyte Protect. Ponownie szybko awansowałem na lidera zespołu i byłem odpowiedzialny za dostarczanie nowych funkcji produktu. Nauczyłem się kilku nowych technologii, takich jak redux do zarządzania stanem oraz pytest jako framework do testów E2E. Mówiąc o frameworku testów E2E, przeprowadziłem migrację z pytest na Cypress.io. Muszę przyznać, że był to dla mnie najbardziej ekscytujący okres, jeśli chodzi o frameworki testowe. Wprowadziłem także fundamenty tzw. „trybu demonstracyjnego”, w którym nasza aplikacja frontendowa była zasilana wyłącznie przez mocki backendowe wykorzystujące framework mirage.js. Byłem członkiem społeczności liderów technicznych w Egnyte, gdzie dyskutowaliśmy na tematy techniczne mogące mieć szeroki wpływ na firmę. Spędziłem tam 3,5 roku.
W trakcie mojej przygody w Egnyte postanowiłem również podjąć dodatkowe zlecenia na weekendy, co zapoczątkowało moją współpracę z Coders Lab. Dołączyłem do Coders Lab około czerwca 2018 roku. Coders Lab to szkoła programowania, a ja uczyłem podstaw JavaScript, CSS, a11y i innych zagadnień. Korzystałem z materiałów przygotowanych przez firmę, ale samodzielnie opracowałem także dwa moduły dotyczące Redux i metodyki Scrum. Po kilku miesiącach poproszono mnie o pełnienie roli mentora dla grupy studentów. Jako nauczyciel byłem odpowiedzialny za wybrane moduły kursu, a jako mentor – za całą grupę. Było to świetne doświadczenie – nauczyłem się wiele o problemach, z jakimi mogą borykać się początkujący deweloperzy, oraz doskonaliłem swoje umiejętności prezentacyjne.
Po 6 latach (łącznie z krótką, 6-miesięczną przerwą 😉) w Egnyte zdecydowałem się dołączyć do innej firmy produktowej, zwanej LiveChat (obecnie Text). Miało to miejsce w czasie pandemii, kiedy wszyscy rekrutowali na zdalne stanowiska. Stos technologiczny był bardzo podobny do tego w Egnyte – React, Webpack, Jest, redux z sagami oraz cypress.io. Dołączyłem do zespołu odpowiedzialnego głównie za wzrost. Przeprojektowywaliśmy jeden z modułów aplikacji – nie tylko pod kątem UX, ale także włożyliśmy ogromny wysiłek w przeprojektowanie architektury, rezygnując z modeli i kolekcji Backbone i przenosząc je do reduxa. Największą satysfakcję dawało mi jednak pełnienie funkcji lidera zespołu Design System, w ramach którego tworzyliśmy nową wersję DSa dla LiveChat. Postawiłem system budowania i deploymentu oparty na Vite, Storybook oraz Chromatic. W czasie mojej pracy w LiveChat nauczyłem się również, jak pracować w całkowicie zdalnym, rozproszonym środowisku. Jednak nic nie trwa wiecznie. Ponieważ zespół Design System był jedynie „projektem pobocznym”, a z uwagi na moją sytuację osobistą, zdecydowałem się przyjąć ofertę od Snowflake.
W Snowflake, jako Starszy Inżynier Oprogramowania (II), pełniłem rolę Technicznego Lidera w małym zespole frontendowym zlokalizowanym w Warszawie, ściśle współpracując z rozproszonymi zespołami w USA. Skupiałem się na budowaniu świetnego produktu i doświadczeń dla dostawców danych na platformie Snowflake Marketplace. Realizowałem projekty od podstaw, współpracując z zespołem PM przy definiowaniu wymagań, z zespołem UX przy projektowaniu oraz z zespołem inżynierów przy implementacji. I było tak pięknie, że aż za bardzo...Polityka firmy odnośnie pracy zdalnej i powrotu do biura zmusiła mnie do zmiany pracy :( Ciężko było dojeżdżać ze Skoków do Warszawy, żeby spełniać wymogi pracy hybrydowej (2-3 dni z biura).
I tak oto trafiłem do Apollo.io, gdzie pracuję od marca 2024 roku.
Zawsze odpowiem...czasem z opóźnieniem, ale odpowiem :)