office

Kim jest backend developer i czym charakteryzuje się jego praca?

W dzisiejszym świecie aplikacje internetowe odgrywają ważną rolę w naszym codziennym funkcjonowaniu. Za każdą aplikacją, stroną lub sklepem stoi zespół twórców. W skład praktycznie każdego z nich wchodzą frontend oraz backend developerzy. Temat frontendu przybliżamy w innym blog poście. Druga grupa odpowiada za te części składowe aplikacji, których nie widać na pierwszy rzut oka - m.in. implementację logiki biznesowej, przetwarzanie danych czy wydajność aplikacji. W tym artykule pragniemy przybliżyć rolę backend developerów, ich obowiązki oraz charakterystyczne umiejętności, które powinni posiadać.

Kim jest backend developer i czym się zajmuje?

Backend developer to osoba odpowiedzialna za tę część aplikacji, której nie widać gołym okiem. W przeciwieństwie do części frontendowej (wizualnej) aplikacji, na którą składają się np. przyciski, formularze, tabele, slidery itp., część backendową stanowią funkcjonalności odpowiedzialne za przetwarzanie wprowadzonych danych, a także przetwarzanie, przechowywanie i wykonywanie zapytań do bazy oraz zwracanie wyników. Backend możemy porównać do organów wewnętrznych w ludzkim organizmie. Nie widzimy ich samych, ale obserwujemy i czujemy efekty ich pracy. 

Backend development to świat kodu, serwerów i innowacyjnych rozwiązań, które umożliwiają nam wszystkim na co dzień korzystanie z zaawansowanych aplikacji internetowych. To programiści przekształcają wyobrażenia i koncepcje biznesowe w rzeczywistość cyfrowego świata. To oni tworzą i rozwijają systemy, dostarczają moduły funkcjonalne systemu lub rozszerzają bądź usprawniają ich działanie. Developerzy backendu to osoby, których tzw. stack technologiczny (innymi słowy zestaw technologii, narzędzi i frameworków używanych do budowy oraz obsługi aplikacji) jest bardzo szeroki. Od języków programowania, przez frameworki, po bazy danych i narzędzia przetwarzania w chmurze.

Języki programowania

Tym, co nierozerwalnie wiąże się z pracą programisty i bezpośrednio się z nią kojarzy, są języki programowania. W przypadku tworzenia aplikacji internetowych mamy do czynienia z szeroką gamą dostępnych języków, a zastosowanie konkretnego języka lub zestawu języków zależy od wielu czynników. Są to najczęściej wymagania biznesowe, wielkość projektu, określony deadline i budżet.

Wśród najpopularniejszych języków programowania wykorzystywanych przy budowie aplikacji webowych znajdują się:

  • PHP (Hypertext Preprocessor) to skryptowy język programowania, który jest często używany do budowy dynamicznych stron internetowych. Jest to język typu server-side, co oznacza, że jest on przetwarzany po stronie serwera, a wynik jego działania zwracany – najczęściej w formie HTML, do przeglądarki klienta. Język PHP posiada szerokie wsparcie dla baz danych m.in. MySQL, PostgreSQL, SQLite czy też po MongoDB (po  zainstalowaniu rozszerzenia). Od wersji 5.0 wprowadził pełne wsparcie dla koncepcji programowania obiektowego.
  • Python to wysokopoziomowy język programowania, który zdobył swoją popularność dzięki czytelnej składni, elastyczności i szerokim możliwościom zastosowania. Python jest bardzo często wykorzystywany do analizy Big Data, czyli przetwarzania, eksploracji i zrozumienia dużych, złożonych zbiorów danych. Do głównych zalet tego języka należą:
    bogaty zasób bibliotek i frameworków do analizy danych (takich jak Pandas, NumPy czy Dask), wsparcie dla analizy danych i uczenia maszynowego, które wspomagają biblioteki (takie jak scikit-learn, TensorFlow, Keras czy PyTorch),
    łatwość użycia, którą zapewnia czytelna składnia ułatwiająca pracę z dużymi zbiorami danych,skalowalność i elastyczność,
    prosta opcja integracji z innymi narzędziami stosowanymi w analizie Big Data.
  • Ruby – język, który powstał w latach 90. dzięki Yukihiro "Matza" Matsumoto. Jest to język obiektowy o bardzo czytelnej składni oraz dużej zwinności, zorientowany na wygodę programowania. Język ruby oferuje dynamiczne typowanie – oznacza to, że zmienne są określane w czasie wykonywania programu, a nie w trakcie kompilacji. Jest to język zorientowany obiektowo. Najbardziej znanym frameworkiem do tworzenia aplikacji internetowych opartych o język Ruby jest Ruby on Rails.
  • C# (C sharp) – to wieloparadygmatowy (wspierający wiele paradygmatów takich jak programowanie obiektowe, programowanie funkcyjne, programowanie proceduralne) język stworzony dla firmy Microsoft. Jest to język posiadający wiele cech wspólncyh m.in. z Javą, C++ czy Delphi. 
  • Swift i Kotlin – języki przeznaczone do tworzenia aplikacji mobilnych na iOS(Swift) oraz Android (Kotlin).

Frameworki

Na bazie języków programowania – w myśl zasady, by nie wymyślać koła od nowa – powstały tzw. frameworki, czyli struktury programistyczne, które dostarczają gotowe narzędzia, biblioteki, rozwiązania i konwencje, aby ułatwić i przede wszystkim przyspieszyć proces tworzenia aplikacji. Zapewniają one ogólną strukturę i abstrakcję, co pozwala programistom skupić się na implementacji konkretnych funkcji bez konieczności ich tworzenia każdorazowo od nowa. 

Dzięki wykorzystaniu gotowych rozwiązań popularnych problemów, takich jak np. logowanie do systemu, tworzenie konta użytkownika czy obsługa koszyka zakupów, tworzenie aplikacji jest łatwiejsze. Sprowadza się do zaimplementowania gotowych rozwiązań i ewentualnej modyfikacji w celu dostosowania do specyfiki wymagań biznesowych projektu. Należy jednak pamiętać, że w naturze nia ma niczego za darmo i ta sama zasada obowiązuje w świecie programowania. Korzystając z dobrodziejstw w postaci sprawdzonych, gotowych funkcjonalności, godzimy się na narzucenie pewnej struktury projektu, która w pewnych warunkach może stanowić ograniczenie.

Na rynku dostępnych jest wiele frameworków opartych o różne języki programowania. Wybór odpowiedniego dla danego projektu, podobnie jak w przypadku języka programowania, zależy od wielu czynników, w tym od wymagań biznesowych czy ograniczeń czasowych i/lub budżetowych. 

Do najpopularniejszych rozwiązań w tym zakresie należą:

  • Symfony (PHP) – backendowy framework napisany w języku PHP. Został stworzony w celu ułatwienia procesu tworzenia aplikacji w języku PHP, a jego filozofia opiera się na zasadach DRY (Don’t Repeat Yourself) oraz CoC (Convention over Configuration) co oznacza, że framework stara się unikać powtarzania kodu oraz dostarcza domyślne konfiguracje oparte na konwencjach. Symfony składa się z wielu niezależnych komponentów, takich jak Symfony Router, Symfony Form, HttpKernel czy Doctrine (dla obsługi bazy danych). Modułowa budowa oznacza możliwość ich reużywalności w innych projektach PHP, niezwiązanych bezpośrednio z Symfony. Przykładem aplikacji typu CMF (Content Management Framework) jest Drupal, którego sercem od wersji 8. jest właśnie framework spod znaku „klucza wiolinowego”.
  • Laravel (PHP) – Laravel to kolejny framework backendowy napisany w języku PHP. Jest bardziej zorientowany na konwencje niż Symfony, co sprawia, że jest łatwiejszy do nauki i szybki w użyciu. Laravel dostarcza wbudowanych narzędzi do obsługi baz danych, autentykacji, routing'u, szablonów, itp. Jest szczególnie popularny w społeczności PHP ze względu na wygodną składnię i rozbudowane funkcje. Wybór między Symfony a Laravel zależy od preferencji programistycznych, doświadczenia zespołu, a także wymagań projektu. Symfony jest bardziej elastyczny i może być bardziej odpowiedni do dużych, skomplikowanych projektów, podczas gdy Laravel oferuje szybki start i prostotę tworzenia, co jest atrakcyjne dla mniejszych projektów i dla programistów, którzy cenią zwinność.
  • Ruby on Rails (Ruby) – framework backendowy napisany w języku Ruby. Cechuje go, podobnie jak Symfony, zastosowanie konwencji nad konfiguracjami (Convention over Configuration) oraz zasady DRY (Don't Repeat Yourself). Ułatwia szybkie tworzenie aplikacji internetowych poprzez dostarczanie gotowych rozwiązań i struktury projektu. RoR stosuje architekturę MVC (Model-View-Controller), która ułatwia strukturyzację aplikacji. Wykorzystuje również wzorzec projektowy Aktywny Zapis (Active Record), który umożliwia łatwe mapowanie obiektów na rekordy w bazie danych. Cechą charakterystyczną Ruby on Rails są również tzw. Gems, czyli gotowe, reużywalne zbiory komponentów, które można łatwo zainstalować i używać w projekcie.
  • ASP.NET (C#) – framework backendowy firmy Microsoft, zazwyczaj używany w połączeniu z językiem C#. W skład ASP.NET wchodzi kilka składników, których główne elementy stanowią:
    • ASP.NET Web Forms – technologia oparta na koncepcji formularzy i elementów sterujących, ułatwiająca tworzenie interfejsu użytkownika, podobnego do aplikacji desktopowych. 
    • ASP.NET MVC – architektura, która dzieli aplikację na trzy główne komponenty: Model (reprezentacja danych), Widok (prezentacja) i Kontroler (logika biznesowa). To podejście zorientowane na konwencje pomaga w zwiększeniu elastyczności i utrzymaniu kodu
    • ASP.NET Web API  – framework umożliwiający łatwe tworzenie interfejsów API (API RESTful) do obsługi komunikacji między aplikacjami. Jest często używany do budowy usług internetowych, które udostępniają dane i funkcje innym systemom.
    • ASP.NET SignalR – pozwala na komunikację w czasie rzeczywistym między klientem a serwerem. Znajduje zastosowanie tam, gdzie konieczna jest natychmiastowa aktualizacja danych na stronie bez konieczności jej odświeżania.
  • Express.js – minimalistyczny framework backendowy dla języka JavaScript, zazwyczaj używany w połączeniu z open-sourcowym środowiskiem wykonawczym Node.js. Jest lekki, elastyczny i pozwala na szybkie tworzenie API oraz aplikacji internetowych. 

Bazy danych

Trudno wyobrazić sobie działanie nowoczesnych aplikacji bez zbierania i przechowywania danych. Zdecydowana większość z nich operuje na zbiorach danych, które gromadzone są w czasie – np. dane o użytkownikach systemu (tj. szczegółowe informacje na temat konta jak login, hasło, adres e-mail). W tym celu, w przeważającej liczbie przypadków, wykorzystuje się systemy zarządzania bazą danych (DBMS - DataBase Management System). Wybór odpowiedniego zależy m.in. od wielkości projektu, jego założeń funkcjonalnych czy też wybranej architektury aplikacji. 

Wśród najpopularniejszych rozwiązań usług baz danych używanych przy tworzeniu aplikacji internetowych można wskazać:

  • MySQL – jedna z najpopularniejszych otwartoźródłowych, relacyjnych baz danych. Charakteryzuje się dużą wydajnością, wysoką niezawodnością oraz zapewnia szerokie wsparcie społeczności MySQL. Znajduje zastosowanie zarówno w przypadku niewielkich projektów, jak i tych złożonych, rozbudowanych. MySQL zapewnia też m.in. obsługę protokołów SSH oraz SSL, wsparcie replikacji danych czy też zarządzanie rolami dostępu, pozwalającymi na osiągniecie odpowiedniego poziomu bezpieczeństwa.
  • MariaDB – stworzony przez twórców MySQL i byłych pracowników MySQL AB, relacyjny, otwartoźródłowy system bazodanowy, stanowiący konkurencję i jednocześnie alternatywę dla MySQL, z którym jest kompatybilny. Podobnie jak konkurencyjne rozwiązanie, posiada szerokie wsparcie społeczności w rozwijaniu systemu. System ten cechuje się m.in. wysoką wydajnością, dynamicznym maskowaniem danych czy wspomnianą już kompatybilnością z MySQL. Więcej o różnicach pomiędzy MySQL a MariaDB znajdziecie na naszym blogu. 
  • PostgreSQL – zaawansowany system zarządzania bazą danych relacyjnych o otwartym kodzie źródłowym. Jest znany ze swojej elastyczności, obsługi złożonych zapytań i wsparcia dla zaawansowanych typów danych. PostgreSQL jest często wybierany w projektach, które wymagają zaawansowanych funkcji i zabezpieczeń.
  • MongoDB – bazodanowy system NoSQL, który stosuje model dokumentowy, a dane są przechowywane w formacie BSON (binarny JSON). MongoDB jest elastyczny, skalowalny i często wykorzystywany w projektach, gdzie dynamiczna natura danych jest kluczowa, jak w aplikacjach internetowych opartych na JavaScript. MongoDB często stanowi zaplecze bazodanowe dla aplikacji opartych o takie frameworki jak Express.js, Spring Data MongoDB czy Meteor.
  • Microsoft SQL Server – system zarządzania relacyjnymi bazami danych rozwijany przez Microsoft. Jest często stosowany w ekosystemie Microsoft, zwłaszcza w połączeniu z technologiami takimi jak ASP.NET. SQL Server oferuje zaawansowane funkcje biznesowe i narzędzia analityczne. 
  • SQLite – jak sama nazwa sugeruje, jest to lekki, plikowy system zarządzania bazą danych relacyjnych, który nie wymaga serwera. Jest często wykorzystywany w projektach, gdzie potrzebna jest prosta, jednoplikowa baza danych, na przykład w aplikacjach mobilnych.

Wybór konkretnego systemu baz danych zależy od wielu czynników, takich jak: rodzaj przechowywanych i przetwarzanych danych, wymagania dotyczące skalowalności, rodzaj operacji, jakie będą wykonywane na danych, a także preferencje zespołu programistycznego. 

Często stosuje się również podejście wielobazodanowe, wybierając różne bazy danych dla różnych komponentów systemu, w zależności od ich specyfiki. W związku z tym, programista backendu powinien znać więcej niż jeden system bazodanowy.

Umiejętności backend developera

Chcąc być skutecznym backend developerem, nie wystarczy jedynie znać języków programowania czy systemów zarządzania bazami danych. Ten obszar IT wymaga od specjalistów nieustannego rozwoju i opanowania różnorodnych umiejętności zaliczanych do kategorii “miękkich”. Backend developera cechują nie tylko techniczne kompetencje, ale także zdolność logicznego myślenia, abstrakcji oraz skrupulatność w pracy. Umiejętności te są nie mniej ważne od twardej, technicznej wiedzy.

Backend developer – umiejętności twarde

Kompetencje twarde to konkretne umiejętności techniczne, niezbędne do kluczowej pracy w obszarze backendu. Poza znajomością wcześniej wymienionych języków programowania (zwykle więcej niż jeden), frameworków czy systemów baz danych, programista backend powinien posiadać również szeroką wiedzę na temat innych technicznych aspektów tworzenia oprogramowania.

Do wartościowych umiejętności z tego zakresu zaliczyć należy wiedzę na temat kwestii związanych z bezpieczeństwem aplikacji. Konieczna jest znajomość technik zabezpieczających przed atakami typu SQL Injection, Cross-Site Scripting (XSS) czy Cross-Site Request Forgery (CSRF). Braki w tym zakresie powodują możliwość powstawania luk w tworzonym oprogramowaniu, co skutkuje podatnością na ataki. W efekcie może dochodzić np. do kradzieży danych osobowych, zablokowania działania aplikacji lub całego ekosystemu przez cyberprzestępców. Więcej na temat analizy bezpieczeństwa i zagrożeń aplikacji  znaleźć można w artykule na naszym blogu, gdzie szczegółowo opisano rodzaje zagrożeń, sposoby anlizy kodu pod kątem bezpieczeństwa oraz sposoby zabezpieczenia aplikacji.

W pracy programistów aplikacji internetowych niezbędna jest również wiedza na temat działania serwerów i obsługi żądań, czyli sposobu komunikacji pomiędzy np. przeglądarką użytkownika a aplikacją serwerową. Najpopularniejszym przykładem żądania jest wywołanie strony internetowej w przeglądarce. Próbując otworzyć stronę internetową, przeglądarka wysyła do serwera żądanie, które na backendzie jest obsługiwane przez jego funkcje. Wynik obsługi żądania jest w odpowiedzi wysyłany do przeglądarki, która odpowiednio go interpretuje i wyświetla.

W przypadku obsługi żądań programista backendowy powinien posiadać wiedzę na temat obsługi dużej ilości żądań, a co za tym idzie – bezcenna jest znajomość protokołów komunikacyjnych, takich jak np. HTTP/HTTPS. Są one wykorzystywane do przesyłania danych w sieci. Różnice między nimi dotyczą zabezpieczenia i sposobu przesyłania danych. W przypadku protokołu HTTP dane wysyłane są w sposób niezabezpieczony i nieszyfrowany. HTTPS natomiast zapewnia zwiększone bezpieczeństwo danych poprzez ich szyfrowanie i tym samym zabezpiecza dane przed przechwyceniem oraz odczytaniem. Dzięki temu np. dane karty płatniczej używane do transakcji internetowej są przesyłane w sposób bezpieczny.

Ważnym tematem, którego znajomością powinien wykazywać się backend developer jest również kwestia optymalizacji aplikacji. Programując aplikację należy zwracać uwagę na optymalizację kodu i wykorzystania zasobów serwera. 

Do popularnych technik pozwalających zwiększyć wydajność aplikacji, które powinien znać backend developer, należą m.in.:

  • optymalizacja zapytań do baz danych, 
  • umiejętność wykorzystania asynchronicznych operacji (czyli wykonywanych równolegle bez oczekiwania na wykonanie innej operacji),
  • cache'owanie, czyli wykorzystanie mechanizmów pamięci podręcznej do przechowywania wyników operacji, którego działanie jest kosztowne czasowo, w celu szybszego dostępu do wyniku w przyszłości,
  • redukcja zapytań HTTP przez np. zastosowanie CDN (Content Delivery Network) lub wykorzystanie mechanizmu Lazy Loading, które pozwala odłożyć w czasie ładowanie części elementów strony, 
  • zarządzanie pamięcią w celu minimalizowania zużycia pamięci przez aplikacje i eliminowania tzw. wycieków pamięci, 
  • testowanie, które pozwala na sprawdzenie aplikacji pod kątem wydajności i limitacji.

Backend developer – umiejętności miękkie

Poza wskazanymi twardymi zdolnościami związanymi z programowaniem i technologią, programiści backendu potrzebują również pewnych umiejętności miękkich. Są one konieczne dla efektywnej pracy w zespole, komunikacji z klientem i rozwoju kariery. Do najważniejszych kompetencji miękkich, którymi powinien cechować się programista zaliczają się poniższe przykłady. 

Komunikacja

Umiejętność skutecznej komunikacji zespołowej oraz z innymi zainteresowanymi stronami (w tym z programistami frontendowymi, testerami, menedżerami projektów i klientami) jest kluczowa dla skutecznej realizacji zadań. Zdolność jasnego przekazywania informacji dotyczących postępu pracy, problemów napotkanych podczas implementacji oraz rozwiązań proponowanych dla danego zadania to podstawa dobrej komunikacji w zespole oraz z klientem.

Umiejętność rozwiązywania problemów

Zdolność analitycznego myślenia i efektywnego rozwiązywania problemów jest podstawą dla programistów backendowych. Często są oni odpowiedzialni za implementację bardziej skomplikowanych logik biznesowych, integrację systemów i optymalizację wydajności, których implementacja wymaga rozwiązania wielu napotkanych problemów i ograniczeń.

Zrozumienie biznesu

Programista backendowy powinien posiadać umiejętność rozumienia logiki i procesów biznesowych, aby lepiej dostosować swoje rozwiązania do rzeczywistych potrzeb klienta. Umiejętność komunikacji z przedstawicielami biznesowymi, zrozumienie wymagań i dostosowywanie implementacji do celów biznesowych jest niezwykle ważne.

Umiejętność pracy zespołowej

Współpraca zespołowa jest często podstawą sukcesu projektu. Programiści pracują najczęściej z ludźmi pełniącymi różne role i posiadającymi różne kompetencje. Umiejętność efektywnej współpracy z innymi członkami zespołu jest istotna dla skutecznego prowadzenia projektu tworzenia oprogramowania.

Analityczne myślenie

Umiejętność analizy problemów, przemyślanie różnych możliwości rozwiązania i wybór najbardziej efektywnego podejścia pozwalają na skuteczną i sprawną realizację projektu, a także na wybranie optymalnych rozwiązań. 

Odpowiedzialność i samodzielność

Programiści backendowi, mimo iż stanowią część zespołu, często pracują indywidualnie nad komponentami systemu, stąd umiejętność przejęcia odpowiedzialności za swoją pracę, podejmowania decyzji i samodzielnego rozwiązywania problemów są tak ważne w tej profesji.

Zarządzanie czasem

Efektywne zarządzanie czasem jest ważne, aby dostarczać projekty zgodnie z harmonogramem. Programista backendowy musi umieć ocenić czas potrzebny do wykonania zadania i dostarczyć gotowe rozwiązanie w ustalonym terminie.

Kombinacja twardych i miękkich umiejętności sprawia, że programista backendowy nie tylko skutecznie implementuje rozwiązania techniczne, ale także efektywnie współpracuje z zespołem i dostosowuje się do wymagań projektu.

Technologie backendowe

Technologie backendowe rozwijają się w błyskawicznym tempie, by sprostać coraz większym wymaganiom aplikacji internetowych. Oprócz podstawowych elementów, takich jak różnorodne języki programowania, systemy zarządzania bazami danych i popularne frameworki, backend developerzy korzystają z rozmaitych narzędzi i technologii, które umożliwiają im efektywne tworzenie, testowanie i wdrażanie aplikacji

Jednym z ważniejszych obszarów rozwoju są narzędzia do monitorowania i debugowania aplikacji. Backend developerzy stosują zaawansowane techniki monitorowania wydajności aplikacji, analizując m.in. czas odpowiedzi serwera, obciążenie zasobów czy błędy systemu. Dzięki temu są w stanie szybko reagować na ewentualne problemy i optymalizować działanie aplikacji, zapewniając jej niezakłócone i efektywne funkcjonowanie.

Nie sposób nie wspomnieć również o systemach kontroli wersji kodu. Są one nieodzownym elementem pracy backend developera. Narzędzia do kontroli wersji, takie jak Git czy SVN, umożliwiają skuteczne zarządzanie kodem, śledzenie zmian i współpracę z innymi członkami zespołu. Dzięki tym narzędziom backend developerzy mogą pracować nad różnymi fragmentami aplikacji jednocześnie, mając możliwość rozwiązywania konfliktów w kodzie, bez obaw o utratę kodu/danych.

Współczesne rozwiązania backendowe coraz częściej opierają się na rozwiązaniach chmurowych, takich jak Amazon Web Services (AWS), Microsoft Azure czy Google Cloud Platform. Platformy te oferują szeroki zakres usług, np. serwery i bazy danych, sztuczną inteligencję czy analizy danych. Dzięki usługom chmurowym programiści backendu mogą skalować swoje aplikacje w zależności od potrzeb, korzystać z gotowych rozwiązań oraz zapewnić wyższą dostępność i bezpieczeństwo swoim aplikacjom.

Jak wygląda praca programisty backendu w Droptica?

W Droptica jako backend developerzy mamy możliwość pracy nad ciekawymi projektami dla klientów z różnych branż i zakątków świata. Praca nad backendem obejmuje wszystkie etapy wytwarzania oprogramowania – od analizy wymagań klienta, poprzez projektowanie architektury aplikacji, implementację funkcji backendowych, po testowanie i optymalizację kodu oraz wdrożenie aplikacji. Droptica kładzie duży nacisk na jakość kodu i efektywność rozwiązań, dlatego w codziennej pracy ściśle współpracujemy z testerami oraz wykorzystujemy szereg narzędzi do kontroli jakości kodu.

Dodatkowym aspektem wartym wspomnienia jest współpraca pomiędzy developerami w zakresie wymiany informacji, rozwiązań czy doświadczeń. Otwartość na dzielenie się wiedzą oraz chęć i gotowość do pomocy w razie problemów jest tym, co wyróżnia Dropticę i czyni świetnym miejscem do pracy dla backend developerów…. I nie tylko ;)

Backend developer - podsumowanie

Backend developer to ważna postać w procesie tworzenia aplikacji internetowych. Jego zadaniem jest nie tylko zapewnienie funkcjonalności aplikacji, ale także dbanie o jej bezpieczeństwo, wydajność i optymalizację. Posiadanie zarówno umiejętności technicznych, jak i miękkich, jest kluczowe dla skutecznego działania w tej roli. Praca backend developera jest wymagająca ciągłego rozwoju i doskonalenia umiejętności, ale bez wątpienia jest ciekawa i dająca wiele satysfakcji.