Czy Fullstack ma łatwiej na rynku pracy? Devdebata
– Wymagania od fullstacka są zdecydowanie większe, nierzadko również koszt zatrudnienia takiego specjalisty jest wyższy, jednak gdy trafi się na dobrego programistę z łatwością jego umiejętności to rekompensują – powiedział nam Piotr Moszkowicz, jeden z uczestników devdebaty. Jak inni zaproszeni eksperci odpowiedzieli na pytanie, czy fullstack ma łatwo na rynku pracy?
W devdebacie udział wzięli:
- Roman Turaj, Fullstack Developer pracujący na co dzień w Node.js i Vue.js. Swoją przygodę rozpoczął od pisania frontendu realizując projekty dla marek z branży automotive takich jak Volkswagen, Audi, Porsche czy Skoda. Obecnie pracuje jako fullstack w projekcie B+R dla Auroria Diamonds, której pomaga stać się liderem technologicznym wśród jubilerów w Polsce. Miłośnik Javascriptu, który każdą wolną chwilę stara się poświęcić na rozwój swoich umiejętności.
- Dominik Dziewulski, Fullstack Developer w Linkhouse z 3 letnim doświadczeniem zawodowym. Swoje początki związane z programowaniem rozpoczął w 2011 r. pisząc proste programy w języku BASIC na commodore 64. Dotychczas miał styczność z takimi językami jak Java, C#, C++, lecz najbardziej do gustu przypadły mu technologie webowe, czyli PHP razem z Laravelem, oraz JS razem z VueJS / AngularJS + do tego bazy danych i administracja systemami informatycznymi.
- Paweł Ostromecki, Fullstack Developer z 3 letnim doświadczeniem pracujący na co dzień w Java i Angular. Swoją przygodę zaczynał jako tester manualny, ale szybko zrozumiał, że bardziej interesuje go programowanie. Obecnie pracuje w Sendit, rozwijając produkt wiodącego brokera kurierskiego. Ciągle w pogoni za optymalizacją. Po godzinach grywa w koszykówkę, żegluje a w sezonie zimowym kreśli ślady na stokach narciarskich. Od wielu lat miłośnik polskiego rapu.
- Piotr Moszkowicz, Senior TypeScript FullStack Developer w Code&Pepper – producenta technologii finansowych. Programuje od dziesięciu lat, chętnie dzieli się swoją wiedzą współtworząc Koło Naukowe Informatyków „Kernel” na AGH. W ramach studiów tworzył oprogramowanie dla CERN. W wolnym czasie gra na pianinie oraz (niestety tylko) kolekcjonuje repliki ASG.
Spis treści
Każda firma ma swoją definicję fullstacka, dlatego opowiedzcie, czym zajmuje się fullstack w firmach, w których pracujecie? Fullstackowi zazwyczaj wrzuca się dowolny task czy to z frontendu, czy to z backendu?
Roman Turaj, Fullstack Developer w Auroria Diamonds:
Fullstack developer to osoba, która posiada kompetencje zarówno w obszarze backendu, jak i frontendu. Zajmuje się kompleksową budową aplikacji. Powinien znać co najmniej jeden język backendowy, np. Python, Node, Java czy Ruby, powiązane z tym językiem frameworki oraz sprawnie poruszać się w zakresie baz danych SQL (np. MySQL, PostgreSQL) i noSQL (np. MongoDB). Taki specjalista musi potrafić także tworzyć interfejsy użytkownika – w przypadku aplikacji webowych konieczna będzie znajomość Javascriptu oraz odpowiedniego frameworka – najczęściej będzie to React, Angular lub Vue. Co do przydzielania zadań – fullstack jest osobą, którą z jednych głównych zalet jest uniwersalność. Trzeba zatem być gotowym, żeby “przyjąć na klatę” każdy task – na tym polega to stanowisko.
Dominik Dziewulski, Fullstack Developer w Linkhouse:
Aktualnie pracuje jak fullstack developer, do moich obowiązków należy utrzymywanie naszej platformy biznesowej pod kątem technicznym, ale także jej rozwijanie pod kątem różnych funkcjonalności – głównie zastosowania dla klientów, ale także dla naszych wewnętrznych pracowników pełniących funkcję biura obsługi klienta.
Koledzy programiści z zespołu (także fullstackowie) mają podobne obowiązki, oczywiście zdarzają się także zadania z rodziny typu devops / sysops, optymalizacji aplikacji pod kątem działania, spinania platformy biznesowej z zewnętrznymi API. Zadania typowo analityczne związane z operowaniem na danych jakie posiadamy i wyciąganie z nich istotnych raportów także wchodzą w zakres pracy. Krótko mówiąc fullstack robi w naszej firmie wszystko, co potrzeba zrobić pod kątem technicznym, ale także i czasami analitycznym.
Paweł Ostromecki, Fullstack Developer w Sendit:
Obecnie pracuję jako Fullstack Developer w Sendit gdzie zajmuję się rozwojem i utrzymaniem platformy brokera kurierskiego w stacku Java + Angular. Zespół, w którym pracuję składa się w głównej mierze z doświadczonych w większości wypadków fullstack developerów. Należę do grona osób z mniejszym stażem (3 lata), więc mam od kogo się uczyć. Wymiana wiedzy jest u nas dynamiczna i konieczna, ponieważ system, na którym pracujemy jest bardzo dojrzały i złożony. Moje zainteresowania nastawione są na frontend, więc staram się skupiać na tej części naszego systemu. Zostało to też zauważone przez kolegów z zespołu i jakoś naturalnie powierzono mi odpowiedzialność za tą część.
Ciężko jest być specjalistą od wszystkiego a system składający się z kilku aplikacji frontend, kilkudziesięciu mikroserwisów, infrastruktury, na której to wszystko stoi jest realnym wyzwaniem dla zespołu. Dlatego też dzielimy się obowiązkami. Każdy z nas specjalizuje się w jakiejś dziedzinie. Ja dla przykładu lubię dłubać we frontendzie, ktoś inny interesuje się tematyką DevOps a jeszcze ktoś inny zgłębia sztukę udoskonalania architektury mikroserwisowej. Czasem zdarza się tak, że trafi się coś czego się nie lubi lub nie ma się w tym doświadczenia. W takich sytuacjach stosujemy np. pair programming, gdzie wymieniamy się wiedzą. Przydział zadań nie jest przypadkowy. Nie znam fullstacka, który jest specjalistą w każdej dziedzinie. Myślę, że każdy z nas (fullstacków) ma coś co lubi bardziej i coś za czym nie przepada. Dobrze jest to wykorzystać w zespole.
Piotr Moszkowicz, Senior TypeScript FullStack Developer w Code&Pepper:
Pracując w Code&Pepper zauważyłem nacisk na fullstacków z punktu widzenia managerów zespołów – jest to dla nich sytuacja idealna z punktu widzenia flexibility – osoba z szerokim wachlarzem kompetencji i szybkimi możliwościami dostosowania się ułatwia planowanie kolejnych sprintów. Również taki developer może zająć się funkcjonalnością “od A do Z” – wystarczy wprowadzić jedną osobę w potrzeby biznesowe, a ona bez trudu podzieli zadanie na backend/frontend i je wykona. W pełnej rozciągłości zgadzam się z opinią Pawła – każdy fullstackowiec ma większy lub mniejszy bias w stronę backendu lub frontendu. Warto to wykorzystać w zespole – odpowiadając za działkę, którą się bardziej preferuje jest się wydajniejszym i bardziej zadowolonym z pracy! Idąc nowymi trendami można również wykorzystać biblioteki typu “Cloud Development Kit” (np `aws-cdk`, `cdk8s` czy “CDK for Terraform”) projektując architekturę aplikacji w jednym z szeroko znanych języków programowania, który i tak za pewne jest wykorzystywany w jakiejś części aplikacji. Pozwala to na rozwój dodatkowych kompetencji oraz nie wymaga dodatkowego programisty DevOps.
Jak Waszym zdaniem dziś wygląda zapotrzebowanie na fullstacków? Może jest jakaś branża, która szczególnie potrzebuje fullstacków?
Roman Turaj, Fullstack Developer w Auroria Diamonds:
Zapotrzebowanie na rynku pracy na fullstacków jest spore. Głównie dlatego, że taki developer jest uniwersalnym pracownikiem. Myślę, że szczególnie pożądani są przez startupy stawiające pierwsze kroki. W takich organizacjach budżet jest często bardzo ograniczony, czasami do tego stopnia, że na początkowym etapie firma może zatrudnić tylko jednego specjalistę IT – wówczas wybór jest oczywisty – fullstack developer.
Dominik Dziewulski, Fullstack Developer w Linkhouse:
Patrząc po ofertach pracy myślę, że taką branżą będzie e-commerce i marketing internetowy. Nie wiem jednak, czy jest możliwe wyłonienie takiej branży, głównie ze względu na różnice w firmach i ich definicje fullstack developera.
Kilka lat temu, kiedy rozpoczynałem swoją ścieżkę zawodową, określenie fullstack było dosyć stosunkowo proste. Wtedy takie miano nosiły osoby, które miały umiejętności z zakresu frontendu, ale także i backendu. Dzisiaj ta rola zmieniła się i tak naprawdę od fullstacka wymaga się żeby miał umiejętności nie tylko z zakresu frontendu i backendu, ale także umiejętności z zakresu administrowania systemami informatycznymi, pisania aplikacji mobilnych, tworzenia rozwiązań na poszczególne problemy. Dlatego tak naprawdę fullstack developer może odnaleźć się w każdej branży, nie tylko e-commerce i marketingu, ale może także w obszarze medycyny, budownictwa, hazardu itd… Wszystko jest zależne od tego jaka branża zmaga się z jakimi problemami oraz tego, jakich rozwiązań oczekuje.
Paweł Ostromecki, Fullstack Developer w Sendit:
Od jakiegoś czasu obserwuję rosnący trend na fullstacków. Choć może to tylko moje odczucie. Na pewno widzę rosnące zainteresowanie JavaScript Fullstack Developerami. MERN, MEAN lub MEVN stack stały się chyba już pewnym standardem. To bardzo opłacalne połączenie pozwalające na efektywne tworzenie nowych produktów web’owych. Według mnie fullstack developer to trochę taki rozgrywający w zespole developerskim. Ma szerszy pogląd na projekt i choć czasem nie wchodzi w szczegóły to często jest dźwignią czasową w projekcie, potrafi elastycznie dopasować się do potrzeb i wesprzeć swoich kolegów na wielu polach. Czasem śmieję się, że taki fullstack to sam postawi sobie aplikację i choć nie będzie ona idealna to spełni swoje zadanie co czasem też jest kluczowe. W każdej branży przydaje się złota rączka.
Piotr Moszkowicz, Senior TypeScript FullStack Developer w Code&Pepper:
Jak już wspominałem wcześniej fullstackowiec to programista, który dostosuje się do bieżącej sytuacji panującej w projekcie. Większość tasków w sprintcie to frontend – nie ma problemu. Musimy zintegrować się z API na backendzie? Do dzieła! Uważam, że fullstackowcy najbardziej są poszukiwani w świeżo powstałych startupach, gdzie każdy pracownik to spory koszt i ryzyko. Zatrudniając osobę z szerokim zasobem wiedzy po obu stronach barykady można oba te czynniki minimalizować. Z tego samego powodu fullstackowcy są również rozchwytywani przez software-house’y. Wymagania od fullstacka są zdecydowanie większe, nierzadko również koszt zatrudnienia takiego specjalisty jest wyższy, jednak gdy trafi się na dobrego programistę z łatwością jego umiejętności to rekompensują.
Odpowiedzmy na tytułowe pytanie, czy fullstack ma łatwiej na rynku pracy?
Roman Turaj, Fullstack Developer w Auroria Diamonds:
Z pewnością, a powodów jest kilka. Po pierwsze ofert, z których developer może skorzystać jest wiele, gdyż jest on w stanie podjąć pracę właśnie jako fullstack, ale także – gdy pojawi się kusząca propozycja – objąć posadę frontend lub backend developera. Warto zauważyć, że taka osoba sprawdzi się zarówno w dużym software house, jak i małej firmie produktowej. W pierwszym scenariuszu fullstack może pełnić wartościową rolę “zapychacza dziur” w projektach, czyli gdy w jakimś projekcie będzie brakowało specjalistów o pożądanych kompetencjach (frontendowych lub backendowych) – fullstack przyjdzie z pomocą.
Z kolei pracując w firmie produktowej o niewielkim budżecie, plusem jest to, że fullstack może pełnić rolę jednoosobowego działu IT, który kompleksowo zajmie się produkcją całej aplikacji. Warto też się zastanowić, co jeśli w firmie pojawi się kryzys, ty pracujesz w 3-osobowym zespole składającym się z frontendowca, backendowca i fullstacka, a twój szef musi zwolnić ⅔ załogi? Tak, prawdopodobnie to właśnie Ty zostaniesz z pracą.
Dominik Dziewulski, Fullstack Developer w Linkhouse:
To zależy, uważam że nie ma tutaj jednolitej odpowiedzi na pytanie czy fullstack ma łatwiej na rynku, należy wręcz powiedzieć, że jest to proporcjonalne w stosunku 50/50. Ma łatwiej ponieważ jest dosyć sporo ofert na rynku pracy dla fullstacków, zauważyłem nawet, że przeglądając oferty pracy na platformach takich jak Linkedin bądź pracuj.pl, często takie oferty mają mniej niż 10 kandydatów, zatem konkurencja jest dosyć niska i jest w czym przebierać.
Odnośnie drugiego “50” dlaczego nie ma jednak tak łatwo – wszystko rozbija się o stack technologiczny jaki jest wymagany przez poszczególne firmy. Zdarza się, że lista używanych technologii w firmie potrafi być na tyle zaawansowana, że momentami nie bardzo wiadomo od czego zacząć. Dlatego fajnie jeżeli firma wymienia technologie z jakich korzysta, lecz jeszcze lepiej jest, kiedy opisane są dokładne oczekiwania firmy względem nas odnośnie wymogów technologicznych / stacku technologicznego. W wielu ofertach możemy się spotkać z tzw. idealnym profilem kandydata, co pozwoli na szybką weryfikację czy wpisujemy się w wizję danej firmy odnośnie właśnie wymagań.
Paweł Ostromecki, Fullstack Developer w Sendit:
Wydaje mi się, że tak i tutaj mógłbym postawić kropkę. Natomiast warto mieć na uwadze, że fullstack developer to trochę Omnibus, co w rezultacie wie wszystko o wszystkim. Często jest to zaletą, bo fullstacka można łatwo umieścić w projekcie gdy brakuje kompetencji na jednym z pól i prawie zawsze mieć pewność, że to rozwiązanie zadziała. Z tego względu widzę, że ta profesja cieszy się dużym powodzeniem u rekruterów. W moim środowisku widzę często backend developerów, którzy niechętnie tykają się frontendu i na odwrót, więc konkurencja na rynku pracy wydaje mi się nieco niższa na korzyść fullstacka.
Coraz częściej dostaję oferty od startupów, co jest dla mnie sygnałem, że w tym sektorze IT zainteresowanie również rośnie. Ważną lekcję w mojej karierze dała mi trwająca pandemia. Obserwowałem przez pewien moment, że dla wyspecjalizowanych frontendowców, programistów aplikacji mobilnych było mniej pracy. Wiele rekrutacji zostało wstrzymanych. Nie widziałem natomiast takiej tendencji w przypadku fullstacków. Mam wrażenie, że mieliśmy jeszcze więcej pracy niż zwykle. Tak właśnie też często jest, że lwia część projektu opiera się na barkach fullstacka, który szybko zagłębi się w jakiś temat i rozwiąże problem.
Moim zdaniem od fullstacka wymaga się zdecydowanie więcej, co jest odczuwalne na przykład rozmowach rekrutacyjnych. Po prostu trzeba mieć szeroki zakres wiedzy i nie dać się zagiąć na wielu polach. To wymaga doświadczenia, chęci do nauki i dużo pracy.
Piotr Moszkowicz, Senior TypeScript FullStack Developer w Code&Pepper:
Rynek pracy coraz bardziej udowadnia, że fullstackowcy mają łatwiej – ilość ofert pracy zwłaszcza w trakcie pandemii na tym polu była bardzo krzepiąca. Jednakże nie można zapomnieć o ilości wymaganej wiedzy i kompetencji – każda rozmowa o pracę porusza zarówno aspekty typowo backendowe, jak i technologię frontendowe. Pozyskanie tak szerokich umiejętności wymaga czasu i pojemnej głowy. Aczkolwiek będąc już fullstackiem z kilkuletnim doświadczeniem na pewno nie można narzekać na brak ofert na rynku pracy.
Z jakimi ograniczeniami wiąże się praca fullstacka?
Roman Turaj, Fullstack Developer w Auroria Diamonds:
Podstawowym ograniczeniem pracy fullstacka jest czas. Specjalizując się w jednej dziedzinie (backendowej lub frontendowej) ciężko jest czasem znaleźć wolną chwilę na rozwój swojej specjalizacji. Będąc fullstackiem wyzwanie to jest jeszcze większe, bo rynek pracy oczekuje od ciebie bycia specjalistą w obu tych dziedzinach, a doba wciąż ma tylko 24 godziny.
Dominik Dziewulski, Fullstack Developer w Linkhouse:
Takim głównym ograniczeniem związanym z pracą fullstacka jest to czas jaki możemy przeznaczyć na naukę poszczególnych technologii. Fullstack developer zazwyczaj ma opanowane wiele technologii po stronie frontendowej, jak i backendowej, aczkolwiek myślę, że przez ten taki rozrzut technologiczny na różnych płaszczyznach, nie jesteśmy w stanie zrobić tzw. “masteringu” jednej poszczególnej dziedziny tak, żeby móc mieć to tak dobrze opanowane jak osoby które mają pracę typowo jednolitą.
Mówiąc jednolitą mam na myśli stanowiska typu frontend developer, backend developer, system administrator itp.. Te stanowiska mają zdecydowanie łatwiej żeby skupić się na jednym sektorze i opanować go w jednym palcu, niż fullstack developer, który musi być trochę na froncie, trochę na backendzie, trochę w systemie. Właśnie ta rozrzutność powoduje, że nie możemy przeznaczyć pełnego wymiaru czasu na nauczenie się czegoś tak solidnie, jak zrobi to specjalista, który specjalizuje się tylko w jednej dziedzinie.
Paweł Ostromecki, Fullstack Developer w Sendit:
Pierwsze co przychodzi mi na myśl to to, że trudno jest w czymś się wyspecjalizować, nawet w tym co się lubi. Zakres wiedzy jaki trzeba pojąć w profesji fullstacka jest na tyle ogromny, że nie pozwala przysiąść nad czymś na dłuższą chwilę. Chodzi o to, że przykładowo Java Backend Developer przez cały czas studiuje jakiś sektor wiedzy. Niech to będzie Spring, bazy danych, mikroserwisy i skupia na tym całą uwagę. Ty jako fullstack musisz to pojąć w zakresie, pozwalającym na swobodne poruszanie się w tym sektorze a do tego dorzućmy jeszcze frontend, doprawmy DevOpsem et voilà! Mamy fullstacka.
Piotr Moszkowicz, Senior TypeScript FullStack Developer w Code&Pepper:
Fullstackowcom nie raz zarzuca się, że są jak świnka morska – “ani to świnka, ani morska”. Z pewnością jest w tym ziarnko prawdy, dlatego osobiście polecam do zespołu dobierać typowych frontowych i backendowych developerów. Dzięki wymianie kompetencji na przykład w formie Code Review mogą szybko nadrobić najświeższe trendy ucząc się od swoich wyspecjalizowanych koleżanek lub kolegów. Warto również zwrócić uwagę, iż stacków fullstackowych jest od groma – to, że ktoś zna jeden z nich wcale nie oznacza, że dobrze sobie poradzi w innym. Zwłaszcza jeśli chodzi o część backendową – tutaj wachlarz technologii jest zdecydowanie szerszy niż na frontendzie.
Dla kogo fullstack to dobry kierunek w ścieżce kariery?
Roman Turaj, Fullstack Developer w Auroria Diamonds:
Fullstack to dobry wybór dla osoby, która chce mieć pełną kontrolę nad projektem, tzn. wiedzieć dokładnie, co się dzieje zarówno po stronie backendowe, jak i frontendowej. To także dobry pomysł na rozwój dla kogoś, kto nie do końca ma pewność co bardziej lubi robić – pisać backend czy frontend – tutaj tego problemu nie ma. Po trzecie, jeśli myślisz o stworzeniu kiedyś swojego produktu cyfrowego, będąc fullstackiem możesz napisać takowy produkt sam.
Dominik Dziewulski, Fullstack Developer w Linkhouse:
Myślę że rola fullstack developera jest idealną ścieżką kariery dla osób, które przede wszystkim nie boją się wyzwań zawodowych i są tzw. “mind open” – nie jest im straszne poznawanie nowych horyzontów w sektorze informatycznym. Nie ukrywam, technologie idą dosyć szybko do przodu, czy to nowe frameworki JS’owe / PHP’owe, nowe trendy związane z architekturą systemową czy też trendy związane z samym pisaniem kodu / testowaniem kodu.
Paweł Ostromecki, Fullstack Developer w Sendit:
Fullstack to doskonały wybór dla osób, które mają szersze spojrzenie na problem, z którym się stykają. Jest to też ścieżka dla osób, które nie potrafią się do końca określić. Dziś mogę napisać efektywny i dobrze wyglądający frontend, jutro zaś wydajny backend. To jest duża zaleta. Praca w skórze fullstacka sama w sobie daje nam odskocznię. Dodatkową zaletą jest to, że One Man Army staje się czymś realnym i samodzielne napisanie aplikacji od początku do końca nie stanowi żadnego problemu. Więc jeśli lubisz ciągle uczyć się czegoś nowego, masz szerokie spojrzenie na napotkane problemy, lubisz wyzwania i nie idziesz na łatwiznę to fullstack jest idealną ścieżką kariery dla Ciebie.
Sam jako fullstack developer poświęcam dosyć sporo czasu na naukę, jak i poznawanie nowych rzeczy, nie tylko w obrębie samego programowania, ale także w obrębie administrowania systemami jak np. Linux. Chciałbym tutaj także dodać taką drobną adnotację z mojej strony odnośnie poświęcania swojego czasu prywatnego na sektor informatyczny. Warto zadbać o tzw. work-life balance, gdyż pracowanie na pełen etat (czyli te pełne 8h w ciągu dnia) + poświęcanie te 4-5h dodatkowo na naukę każdego dnia może doprowadzić szybko do wypalenia zawodowego.
Dlatego podsumowując swoją odpowiedź na pytanie dla kogo rola fullstack developera będzie odpowiednia: dla osób, które lubią się uczyć, dla osób, które lubią podejmować się wyzwań zawodowych na różnych obszarach sektora IT.
Piotr Moszkowicz, Senior TypeScript FullStack Developer w Code&Pepper:
Z pewnością dla osób, które lubią widzieć wymierne efekty swojej pracy – nieraz gdy kodzimy sam backend jedyne co widzimy to zwracane dane, które potem są obrabiane przez developerów na frontendzie. Wcielając się w rolę fullstacka dzięki szerokim kompetencjom jesteśmy dostarczycielami pełnych funkcjonalności, co pozwala na jasne zauważanie progresu projektu. Również każdy developer, który lubi mieć pod kontrolą cały projekt odnajdzie się w roli fullstacka. Jednakże, aby nie wypaść z branży należy płynąć wraz z jej trendami – zarówno backendowymi jak i frontendowymi. Programiści, którzy nie lubią nadążać za nowinkami technologicznymi raczej nie odnajdą się w takiej roli.
Zdjęcie główne artykułu pochodzi z unsplash.com.