Abstrakcyjna grafika przedstawiająca bladoniebieską kulę z koncentrycznym pierścieniem, sugerującym ruch planet, wzdłuż płynnych, falistych linii. Ten obraz przywodzi na myśl dynamiczne systemy i procesy, pasując do tematów innowacji, technologii i kariery back-end developera.

Jak zostać Back-End Developerem? Poznaj Primotly #1

26/07/2022

Czym zajmuje się back-end developer? Jak postawić pierwsze kroki w branży i jakich technologii warto się uczyć? Prezentujemy serię artykułów o pracy w IT, które rozpoczyna wywiad z Jakubem Wacholem, programistą back-end, który jest z nami od samego początku istnienia firmy. Zapytaliśmy go nie tylko o porady dla początkujących back-end developerów, ale też o sukcesy, wyzwania, oraz jego rolę w zespole.

W tej artykułów poznasz IT od kulis, dzięki serii wywiadów z ekspertami z różnych dziedzin. Początkujący developerzy znajdą tu nie tylko przydatne wskazówki, ale także inspiracje, jakie umiejętności powinni rozwijać i jakie kompetencje zgłębiać. Dla osób, które poszukują pracy w IT, będzie to świetny sposób na lepsze poznanie kultury naszej pracy i członków zespołu Primotly. Dążymy do nieustannego rozwoju uczestnicząc w nowym projektach, pozyskując nowych klientów i nawiązując nowe partnerstwa biznesowe. Jeśli czujesz, że do siebie pasujemy, koniecznie odwiedź zakładkę Kariera - zaaplikuj na konkretną ofertę pracy lub po prostu wyślij nam swoje CV, abyśmy mogli się lepiej poznać!

Jakub Wachol - Programista z ponad 15-letnim stażem pracy. Współpracujemy od samego początku istnienia firmy (a nawet wcześniej!). Gdy Primotly zaczęło działać na rynku (wówczas pod nazwą bPol), kompleksowo zarządzał projektami jako full-stack developer. Z biegiem czasu skupił się wyłącznie na back-endzie. Jakub specjalizuje się w PHP i Pythonie. Jest mistrzem frameworku Symfony. Po sukcesach związanych z wdrożeniem ElasticSearch, Jakub intensywnie pracuje nad zastąpieniem ich nowoczesnymi serwisami Algolia.

Początki kariery jako back-end developer

Załóżmy, że wywiad znajduje osoba, która właśnie szuka swojego miejsca w IT. Jak wyjaśniłbyś tej osobie, czym zajmuje się programista back-end?

Najłatwiej to wyjaśnić, zaczynając od drugiej strony, czyli front-endu. Ogółem mówiąc, front-end jest wszystkim, co widzi klient – stroną wizualną projektu. Możesz tam coś kliknąć lub przesunąć. Warto mieć na uwadze, że każda taka czynność nie może obyć się bez zaplecza, czyli back-endu – musi być odpowiednio przetworzona, aby spełniała określone zadanie. Wszystko, co dzieje się po wykonaniu danej akcji na stronie "podlega" pod back-end.

Żeby lepiej to wytłumaczyć, posłużymy się przykładem e-commerce. Jeśli zamawiasz produkt w sklepie internetowym, gdzieś musi przyjść odpowiedni request. Trafia on potem do magazynu, gdzie jest dalej przetwarzany, ktoś drukuje odpowiednią etykietę, następnie informacja trafia do firmy kurierskiej, ona odpowiada, potem dział logistyki to przetwarza itd. Dane mogą być również przeglądane później przez dział analiz, finansów. To wszystko dzieje się niejako za kulisami projektu. Tak więc back-end to cała magia, której użytkownik nie widzi, a która sprawia, że wszystko działa tak, jak należy.

W Primotly pracujesz od kilku lat. Jak się tu dostałeś?

Wszystko zaczęło się tak naprawdę od naszej współpracy z Bernhardem, który jest teraz naszym wiceprezesem. Firma wtedy jeszcze nie istniała. Obaj prowadziliśmy wówczas własne firmy, a ja odpowiedziałem na jego ogłoszenie. Szybko znaleźliśmy wspólny język – wysłałem swoje CV, potem krótko porozmawialiśmy i wkrótce zacząłem dostawać pierwsze zadania związane z nowymi projektami. Trudno mi dokładnie policzyć, ile lat zajmuję się tutaj back-endem. Dwanaście? Może czternaście? Mnóstwo czasu! W międzyczasie Bernhard zaczął zatrudniać kolejne osoby i tak powstał bPol, który później przekształcił się w Primotly. Firma rozrosła się na przestrzeni lat i muszę przyznać, że obserwowanie, jak się rozwijamy, było bardzo satysfakcjonujące – ja, nasz zespół i sama marka Primotly.

Od początku swojej kariery w branży IT chciałeś zostać back-end developerem?

Trudno powiedzieć, czy moja kariera potoczyła się w ten sposób, ponieważ szczególnie interesowałem się back-endem. Kiedy kilka lat temu zaczynałem pracę w branży IT, nie było takiego podziału na back-end i front-end. Razem z Bernhardem zrobiliśmy wszystko full-stack. Zajęliśmy się projektami kompleksowo, zajmując się stylami CSS i JavaScriptem. Dopiero później w branży deweloperskiej zaczęły pojawiać się podziały na front-end i back-end. Trudno mi nawet powiedzieć, kiedy skupiłem się tylko na back-endzie. Zacząłem dostawać więcej tego typu zadań i jakoś płynnie zacząłem działać w tym temacie. Dzisiaj właściwie nie robię już front-endu.

Trzeba pamiętać, że w ostatnich latach technologia bardzo szybko się rozwinęła. Deweloper musi nadążać za zmianami. Łatwo zostać w tyle, dlatego front-end zostawiam tym kolegom, którzy cały swój czas tylko temu poświęcają, dzięki czemu realizują stronę wizualną projektów na najwyższym poziomie.

Jak zostać back-end developerem?

Gdzie szukać wiedzy na temat back-endu? Jak myślisz, jaka jest najszybsza droga do rozwoju, zdobywania kompetencji i poznawania nowych technologii?

Programiści na każdym poziomie zaawansowania mają dziś bardzo szerokie możliwości jeśli chodzi o samorozwój i zdobywanie nowych kompetencji. Co ważne, ogromne ilości wiedzy i darmowego kodu są bezpłatne. Tak naprawdę wystarczy determinacja i umiejętność samodzielnej nauki. Osobiście dużo czytam, subskrybuję branżowe listy mailingowe i słucham podcastów. Później oczywiście trzeba zastosować zdobytą wiedzę w praktyce. Trzeba więc programować, programować i jeszcze raz programować. Nie korzystam z kursów, ponieważ dużo więcej mogę zyskać ucząc się podczas pracy z innymi programistami. Niemal każdy pull request który został sprawdzony może być bardzo cenną lekcją.

Czy możesz powiedzieć więcej o nauce poprzez code review?

Nie możemy wysłać na produkcję czegoś, co nie zostało zatwierdzone przez innego programistę. Zawsze musi istnieć pull request, po którym następuje code review. Pojawia się pytanie, czy każdy może bez przeszkód mergować swój kod na produkcyjną wersję. Takie zmiany muszą zostać zatwierdzone przez innych programistów. W praktyce jedna lub więcej osób powinno zatwierdzić zmiany w kodzie. I tutaj mamy ogromne pole do nauki. Sprawdzając kod obserwujemy, z jakich rozwiązań korzystają inni i w jakich technologiach działają. Można z niej wynieść dużo nowej wiedzy!

Back-end: przydatna wiedza

Top 5 ulubionych stron, newsletterów i podcastów o back-endzie, wybranych przez Jakuba, które warto śledzić:

  • Medium.com – różne artykuły dotyczące programowania
  • Phpinternals.news – Podcast z newsami dotyczącymi PHP
  • TheCodingTrain – Kolejny kanał YouTube, tym razem dotyczący algorytmów i uczenia maszynowego
  • Symfony.com - Blog z najnowszymi informacjami na temat Symfony

Jaka cecha osobowości jest najważniejsza dla przyszłego back-end developera?

Chyba najważniejsza w mojej pracy jest cierpliwość i odporność na stres. Komunikacja z klientami, którzy często chcą szybko i na ostatnią chwilę dokonać zmian w projektach, nie zawsze jest łatwa. Wydaje mi się jednak, że niezależnie od tego, czy zajmujesz się back-endem, czy front-endem, nad tymi cechami warto pracować.

Myślisz, że tylko ktoś z „technicznym umysłem” może zostać programistą?

Wydaje mi się, że nie ma czegoś takiego jak podział na ludzi o “techincznych” i “humanistycznych” umysłach. Mieliśmy kiedyś w zespole kolegę back-endowca, który wcześniej pracował jako nauczyciel angielskiego i radził sobie całkiem nieźle. Zauważyłem tylko jedną szczególną cechę, która go wyróżniała. Trudno powiedzieć, czy miało to związek z jego humanistycznym wykształceniem. Zadawał dużo pytań, lubił rozmawiać i był trochę zbyt dociekliwy. Kiedy nie pracowaliśmy pod presją czasu, nie było z tym problemu, bo jak się wszystkiego dowiedział, to bardzo dobrze wywiązywał się z powierzonych mu zadań. Gdy trzeba było coś zrobić szybko, ta dociekliwość trochę opóźniała pracę całego zespołu. Jednak myślę, że to była po prostu jego osobowość i nie miało to wiele wspólnego z tym, czy ktoś np. był lepszy, czy gorszy z matematyki.

Programista back-end w Primotly

Jaka jest struktura działań back-end developera w trakcie projektu?

W Primotly pracujemy w dwutygodniowych cyklach (sprintach). Projekty realizujemy zgodnie ze Scrumem, który jest jedną z najpopularniejszych metod wykorzystania metodyki Agile. Praca nad projektem rozpoczyna się od zaplanowania sprintu. Otrzymujemy zadania, szacujemy czas ich wykonania, a następnie omawiamy szczegóły poszczególnych ticketów. Jeśli mamy taką możliwość i wiemy, że czegoś nie zrobimy w ciągu tych dwóch tygodni, odkładamy zadania na kolejny sprint. Kiedy wszystko jest zaplanowane, zaczynamy działać.

Mój dzień zaczyna się od sprawdzenia nieprzeczytanych wiadomości. Po tym, jak dzień wcześniej zamknąłem komputer, mogły pojawić się jakieś błędy, więc kolejną rzeczą, którą muszę zrobić rano, jest upewnienie się, że wszystko w projekcie idzie dobrze. Następnie sprawdzam logi pod kątem problemów na serwerze. Jeśli wszystko jest okej, zaczynam swoje zadania. Gotowe trafiają do testerów, a po zatwierdzeniu mogą zostać wysłane na produkcję. Jeśli skończę wszystkie zadania do końca sprintu, robię rzeczy z backlogu. Menedżerowie produktu i osoby odpowiedzialne za rozwój biznesu zawsze mają dla nas coś do zrobienia, więc zadania są zaplanowane na rok, a nawet dwa lata do przodu.

Mimo, że mamy dużo pracy, wszystko jest dobrze zaplanowane, więc zwykle nie towarzyszy nam żaden dodatkowy stres. Dojrzała organizacja, taka jak nasza, ma tę zaletę, że wszystkie procesy są dobrze zoptymalizowane, dopracowane i usystematyzowane.

Z jakich technologii korzystają obecnie programiści back-end?

Pracujemy już przede wszystkim w środowisku chmurowym. Dziś programiści back-end nie interesują się już architekturą, bo wszystko jest oparte o AWS (Amazon Web Services). Przetwarzanie bezserwerowe staje się wiodącym standardem. Polecam Lambdę - bezserwerową, sterowaną zdarzeniami usługę obliczeniową, z której korzystamy.

Jeśli chodzi o Primotly, nasze produkty opieramy na Symfony. Trudno dziś znaleźć silniejszego konkurenta dla tego rozwiązania. Chmura to przyszłość, ponieważ prawie nikt już nie konfiguruje własnych serwerów. Wszystkie te innowacyjne rozwiązania znacznie usprawniają naszą pracę, ponieważ nie potrzebujemy serwerów ani ich konfiguracji. Myślę, że młodzi adepci back-endu powinni zaczynać właśnie od tych technologii.

Co wyróżnia React i Symfony – technologie, w których specjalizują się programiści Primotly?

Nie będę dużo mówić o React - pozostawię to moim kolegom z front-endu. Wywiady z nimi z pewnością wkrótce pojawią się na naszym blogu. Faktem jest jednak, że w tej chwili technologia ta zyskuje coraz większą popularność i cieszę się, że w Primotly idziemy w tym kierunku. Równie dobrym wyborem jest Symfony. To dojrzały projekt, który stale się rozwija i nie ma wątpliwości, że w najbliższym czasie zostanie ukończony. Ogromna baza wtyczek, która stale się rozwija, daje szerokie możliwości rozwoju produktu i wdrażania rozwiązań zgodnych z oczekiwaniami klientów. Najlepsze i najbardziej znane firmy korzystają z Symfony, więc jest to najlepszy dowód jakości tej technologii.

Z którego projektu Primotly jesteś dziś najbardziej dumny?

Pierwszą rzeczą, która przychodzi na myśl, jest implementacja ElasticSearch. To było naprawdę skomplikowane zadanie i wiele od niego zależało. Wszystkie listingi, strony produktów i wyszukiwania były oparte na tej technologii. Jak wiadomo, konwersja wynikająca z wyszukiwania ma duży wpływ na wyniki sprzedażowe, dlatego musieliśmy to zrobić na najwyższym poziomie. Wdrożenie trochę trwało, ale wszystko przebiegło pomyślnie i działa dokładnie tak, jak powinno. Nie poprzestaliśmy jednak na ElasticSearch i dalej rozwijamy się w kierunku nowoczesnych i zaawansowanych technologii.

Obecnie przenosimy się do Algolii, nowszego i szybszego pakietu usług wyszukiwania i rekomendacji. To kolejny ciekawy i wymagający projekt, w którym trzeba zadbać o większą integrację z front-endem. Back-end zajmuje się głównie indeksowaniem i aktualizacją danych po stronie Algolii. Prace postępują, stajemy przed nowymi wyzwaniami, ale daje mi to dużo satysfakcji. Interesują mnie rozwiązania poszukiwawcze, dlatego tym bardziej chętnie angażuję się w tego typu projekty.

Ja
Portret Jakuba Wachola, back-end developera i autora artykułów. Zdjęcie przedstawia go uśmiechniętego, w okularach, o profesjonalnym i przyjaznym wyglądzie, na białym tle.
Jakub Wachol
Back-end Developer

Najnowsze artykuły

Obraz przedstawiający interfejs aplikacji mobilnej z czerwonymi ikonami i przyciskami, reprezentujący koncepcję mikrofrontendów w artykule "Microfrontend: innowacyjne podejście do architektury frontendu"

Development | 07/06/2024

Microfrontend: innowacyjne podejście do architektury frontendu

Bartosz Białecki

Wyobraź sobie dużą, skomplikowaną układankę reprezentującą całą Twoją aplikację internetową. Każdy element układanki odpowiada określonej funkcjonalności. Teraz, zamiast składać całą układankę za jednym razem, wyobraź sobie, że dzielisz ją na mniejsze, łatwe w zarządzaniu sekcje. Te małe fragmenty to właśnie Microfrontendy.

Szczegóły
Ilustracja CTO na godziny pracującego na laptopie z diagramami przepływu i ekranami kodu, podkreślająca zalety CTO do wynajęcia

Business | 29/05/2024

Jak CTO wspiera innowacje i rozwój biznesu?

Łukasz Kopaczewski

Przedsiębiorstwa, niezależnie od swojej wielkości, coraz bardziej polegają na innowacyjnych rozwiązaniach technologicznych. W tym kontekście rola CTO staje się nie tylko ważna, ale wręcz niezbędna dla każdej organizacji, która pragnie rozwijać się, utrzymać konkurencyjność i osiągnąć długoterminowy sukces. Przyjrzyjmy się zatem głównym powodom, dla których obecność CTO może stanowić kluczowy czynnik w kreowaniu i wzmacnianiu strategii technologicznej oraz osiąganiu celów biznesowych firmy.

Szczegóły
Ilustracja zespołu radzącego sobie z kodem legacy, przedstawiająca trzy osoby współpracujące z kołami zębatymi i rakietą startującą z komputera, symbolizująca strategie skutecznego zarządzania kodem legacy.

Development | 24/05/2024

Jak pracować z kodem legacy? Wskazówki i strategie

Jakub Wachol

Wiele organizacji działa na oprogramowaniu, które ma już swoje lata i zostało napisane w technologiach przestarzałych lub przy użyciu podejść, które obecnie nie są już stosowane. Choć może się wydawać, że to marginalne sytuacje, w rzeczywistości zdarzają się dość często. To właśnie w takich przypadkach pojawia się problem, jak radzić sobie z tzw. "kodem legacy".

Szczegóły