Programista blockchain: umiejętności, rynek i wynagrodzenie

Programista blockchain projektuje, tworzy i testuje oprogramowanie działające w sieciach blockchain – najczęściej są to inteligentne kontrakty w języku Solidity dla sieci Ethereum i sieci kompatybilnych z nią, lub programy napisane w języku Rust dla sieci takich jak Solana. Większość programistów blockchain pracuje zdalnie dla zagranicznych firm z branży Web3 na podstawie umów B2B, a umiejętności z zakresu bezpieczeństwa mają większe znaczenie niż w niemal każdej innej pracy programistycznej.

W niniejszym przewodniku omówiono, jak wygląda ta praca w praktyce, jakie narzędzia pojawiają się w prawdziwych ogłoszeniach o pracę, jak można rozpocząć karierę w tej dziedzinie bez formalnej ścieżki certyfikacyjnej oraz czym ten rynek różni się od reszty polskiej branży IT.

Czym właściwie zajmuje się programista blockchain?

Tytuł ten obejmuje kilka różnych stanowisk, a ogłoszenia o pracę nie zawsze precyzują, o które z nich chodzi. Przed złożeniem aplikacji warto ustalić, na które z poniższych stanowisk pracodawca faktycznie poszukuje kandydata:

  • Inżynier ds. inteligentnych kontraktów. Tworzy logikę działającą w łańcuchu bloków: tokeny, protokoły pożyczkowe i wymiany, kontrakty NFT, staking, zarządzanie. Jest to najczęściej spotykana rola w ogłoszeniach.
  • Programista dApp lub full-stack Web3. Tworzy aplikację internetową komunikującą się z kontraktami i portfelami, zazwyczaj w języku TypeScript z wykorzystaniem React lub Next.js oraz bibliotek takich jak viem lub ethers.js.
  • Programista protokołu lub rdzenia. Pracuje nad samym klientem blockchain, rollupami lub mostami, zazwyczaj w języku Rust lub Go. Mniej stanowisk, wyższa bariera wejścia.
  • Programista backendowy i infrastrukturalny. Obsługuje indeksatory, węzły, detektory zdarzeń oraz interfejsy API odczytujące dane z łańcucha bloków.
  • Audytor inteligentnych kontraktów lub badacz ds. bezpieczeństwa. Sprawdza kod innych osób pod kątem luk w zabezpieczeniach – zarówno w firmie audytorskiej, jak i w ramach publicznych konkursów audytowych.

Typowy tydzień inżyniera kontraktów inteligentnych obejmuje pisanie kodu kontraktów, pisanie znacznie większej liczby testów niż samego kodu, optymalizację zużycia gazu, aby użytkownicy płacili mniej za transakcję, sprawdzanie pull requestów kolegów pod kątem problemów bezpieczeństwa oraz przygotowywanie wdrożenia do sieci testowej przed uruchomieniem w sieci głównej. Dokumentacja i specyfikacje mają znaczenie, ponieważ audytorzy i inne zespoły integrują się z twoimi kontraktami.

Dlaczego bezpieczeństwo definiuje pracę programisty blockchain?

W większości oprogramowania błąd oznacza poprawkę i przeprosiny. Wdrożony inteligentny kontrakt nie może być po prostu załatany, a często bezpośrednio przechowuje pieniądze innych osób. Pojedynczy błąd logiczny, brak kontroli dostępu lub błędne obliczenie ceny mogą zostać wykorzystane w ciągu kilku minut, a środki zazwyczaj przepadają na zawsze. To główny powód, dla którego ta praca różni się od zwykłej pracy przy backendzie.

Z tego powodu programista blockchain działa zgodnie z zestawem nawyków, których inni programiści rzadko potrzebują na tym samym poziomie:

  • myślenie jak atakujący w odniesieniu do każdego wywołania zewnętrznego, zwłaszcza w kontekście reentrancji, manipulacji wyrocznią i scenariuszy flash-loan,
  • korzystanie ze sprawdzonych modułów, najczęściej kontraktów OpenZeppelin, zamiast pisania standardowych komponentów od podstaw,
  • testowanie fuzzowe i testowanie niezmienników, a nie tylko testy jednostkowe,
  • analiza statyczna za pomocą narzędzi takich jak Slither oraz testowanie oparte na właściwościach za pomocą Echidny,
  • staranne projektowanie mechanizmów aktualizacji i awaryjnych wstrzymań, ponieważ same w sobie stwarzają ryzyko,
  • przygotowywanie kodu do audytów zewnętrznych i usuwanie wykrytych błędów.

Pracodawcy sprawdzają to podczas rekrutacji. Spodziewaj się pytań dotyczących znanych exploitów, ćwiczenia z przeglądu kodu z podłożoną luką w zabezpieczeniach lub zadania do wykonania w domu, w którym testy mają taką samą wagę jak sam kontrakt.

Jakie narzędzia i języki programowania wymieniają ogłoszenia o pracę dla programistów blockchain?

Ogłoszenia skierowane do kandydatów w Polsce, zarówno z polskich firm programistycznych, jak i zagranicznych pracodawców oferujących pracę zdalną, powtarzają ten sam podstawowy zestaw technologii. Dominuje świat EVM (Ethereum i sieci z nim kompatybilne, w tym rollupy warstwy 2, takie jak Arbitrum, Optimism i Base), podczas gdy Solana i inne łańcuchy niebędące EVM tworzą mniejszą, ale dobrze płatną niszę.

Obszar Typowe narzędzia w ogłoszeniach
Języki kontraktów inteligentnych Solidity (większość ogłoszeń), sporadycznie Vyper, Rust dla Solany i niektórych innych łańcuchów
Frameworki programistyczne i testowe Foundry (forge, cast), Hardhat, Anchor dla Solany
Biblioteki i standardy OpenZeppelin, ERC-20, ERC-721, ERC-1155, ERC-4626
Narzędzia bezpieczeństwa Slither, Echidna, Mythril, testy fuzzingowe i testy niezmienników w Foundry
Front-end i integracja TypeScript, React lub Next.js, viem, ethers.js, biblioteki łączące się z portfelami
Infrastruktura Dostawcy RPC, indeksatory, węzły działające na systemie Linux, Docker, usługi w chmurze

Oprócz znajomości narzędzi pracodawcy oczekują, że rozumiesz, w jaki sposób EVM wykonuje kod i przechowuje dane, dlaczego konkretny układ pamięci kosztuje więcej gazu oraz w jaki sposób transakcje są porządkowane przez twórców bloków. Najlepsi kandydaci potrafią odczytać ślad nieudanej transakcji i wyjaśnić, co się stało.

Jak zostać programistą blockchain bez formalnego wykształcenia?

Nie ma żadnych państwowych kwalifikacji ani powszechnie wymaganych certyfikatów. Niektóre komercyjne kursy wydają certyfikaty, ale polscy i zagraniczni pracodawcy prawie na nie nie zwracają uwagi. Liczy się publiczne wykazanie umiejętności. Większość programistów blockchain przeszła z pracy w backendzie lub frontendzie po kilku latach w ogólnym programowaniu, dlatego ogłoszenia często wymagają kilku lat doświadczenia w programowaniu oraz krótszego okresu pracy z Solidity.

Realistyczna ścieżka wygląda następująco:

  1. Najpierw opanuj solidnie jeden ogólny język programowania, zazwyczaj TypeScript lub Rust, a także Git i testowanie.
  2. Naucz się Solidity i EVM, korzystając z bezpłatnych materiałów, i twórz małe kontrakty z testami Foundry.
  3. Wdroż projekt w sieci testowej i stwórz prosty interfejs użytkownika, który współpracuje z Twoim kontraktem.
  4. Zapoznaj się z prawdziwymi exploitami i wcześniejszymi raportami z audytów, a następnie weź udział w publicznych konkursach audytowych na platformach takich jak Code4rena czy Sherlock. Wyniki tych konkursów posłużą jako weryfikowalne portfolio.
  5. Współtwórz protokoły open source – wiele z nich akceptuje zewnętrzne pull requesty.

Twoje CV na to stanowisko powinno zawierać linki do repozytoriów na GitHubie, adresów wdrożonych kontraktów oraz wyników audytów, a nie listę certyfikatów ukończonych kursów. W przypadku Web3 na pierwszym miejscu umieść dowody swoich umiejętności.

Kto zatrudnia programistów blockchain?

Na polskim rynku działają trzy główne grupy pracodawców. Największą z nich stanowią zagraniczne firmy i protokoły Web3 zatrudniające zdalnie, często w ramach w pełni rozproszonych zespołów, których członkowie pochodzą z wielu krajów. Drugą grupę stanowią polskie firmy programistyczne, które tworzą produkty blockchain dla klientów, od protokołów DeFi po projekty tokenizacji. Trzecią grupę tworzą firmy z branży fintech, giełdy kryptowalut oraz firmy płatnicze z centrami technologicznymi w Warszawie, Krakowie lub Wrocławiu.

Zmieniły się również uwarunkowania regulacyjne. MiCA, unijne rozporządzenie w sprawie rynków kryptowalut, obowiązuje w całej UE od końca 2024 roku i nakłada na dostawców usług związanych z kryptowalutami obowiązek uzyskania zezwolenia. Dla programistów oznacza to większe zapotrzebowanie na pracę z uwzględnieniem wymogów zgodności w firmach podlegających regulacjom, takich jak giełdy i emitenci stablecoinów, a także nieco mniejszą swobodę działania dla anonimowych zespołów działających w UE.

Komunikacja odbywa się prawie wyłącznie w języku angielskim, często na piśmie, na platformach Discord, Slack i GitHub. Niektóre zespoły działają pod pseudonimami, co jest normą w tej branży, ale oznacza, że przed podpisaniem jakiejkolwiek umowy warto sprawdzić, kto stoi za danym projektem.

Ile zarabia programista blockchain?

Wynagrodzenia w tej branży są w dużej mierze ustalane przez rynek globalny, a nie polski. Doświadczeni inżynierowie zajmujący się inteligentnymi kontraktami, pracujący zdalnie dla zagranicznych protokołów, zarabiają znacznie powyżej polskiej średniej krajowej i znacznie więcej niż większość programistów backendowych o porównywalnym poziomie doświadczenia. Osoby na początku kariery są rzadko zatrudniane, więc dolna granica skali wynagrodzeń jest mniej widoczna niż w przypadku innych stanowisk IT.

Co najbardziej wpływa na wysokość wynagrodzenia:

  • Osiągnięcia w zakresie bezpieczeństwa. Wyniki audytów oraz historia kontraktów o znacznej wartości zrealizowanych bez żadnych incydentów to najsilniejsze atuty w negocjacjach.
  • Ekosystem. Programiści Rust dla Solany oraz inżynierowie na poziomie protokołu są rzadscy niż programiści Solidity tworzący standardowe kontrakty.
  • Umowa i waluta. Większość ofert to umowy B2B, często fakturowane w dolarach amerykańskich lub euro, więc kursy walutowe mają wpływ na Twoje dochody w złotych.
  • Wynagrodzenie w tokenach. Niektórzy pracodawcy wypłacają część wynagrodzenia w tokenach lub stablecoinach. Tokeny mogą znacznie stracić na wartości, a płatności w kryptowalutach wiążą się z kwestiami podatkowymi, które przed wyrażeniem zgody należy wyjaśnić z księgowym.
  • Cykl rynkowy. Liczba zatrudnionych i wynagrodzenia rosną, gdy rynki kryptowalutowe są silne, a gwałtownie spadają, gdy słabną.

Aby porównać stawkę B2B z ofertą umowy o pracę od polskiej firmy, przelicz obie kwoty na netto i pamiętaj, że zagraniczny pracodawca zatrudniający zdalnie nie pokryje kosztów Twojego urlopu ani zwolnienia lekarskiego.

Jakie ryzyko wiąże się z pracą jako programista blockchain?

Branża ta funkcjonuje cyklicznie. W okresach spowolnienia wiele projektów traci finansowanie, redukuje zespoły lub zostaje zamkniętych, a liczba wolnych stanowisk dla programistów blockchain maleje znacznie szybciej niż w głównym nurcie branży IT. Jeśli specjalizujesz się tylko w jednym protokole lub jednej sieci, jesteś również narażony na losy tego projektu. Utrzymywanie ogólnych umiejętności programistycznych na wysokim poziomie jest najprostszym zabezpieczeniem.

Istnieje również ryzyko związane z reputacją i kwestiami prawnymi. Niektóre projekty są źle zaprojektowane, inne to po prostu oszustwa, a Twoje nazwisko na umowie, w wyniku której użytkownicy stracili swoje środki, będzie Ci towarzyszyć przez długi czas. Przed dołączeniem do zespołu sprawdź, kto go finansuje, czy jego kod został poddany audytowi oraz czy jest zgodny z MiCA, jeśli obsługuje użytkowników z UE. Praca dla anonimowego zespołu nad płatnością kryptowalutową bez pisemnej umowy pozostawia Cię praktycznie bez żadnej ochrony, jeśli coś pójdzie nie tak.

Wreszcie, presja jest realna. Zamrożenie kodu przed audytami, premiery, których nie można opóźnić, oraz świadomość, że jeden błąd może kosztować użytkowników ich oszczędności, tworzą poziom stresu, z którym nie każdy programista chce się mierzyć w dłuższej perspektywie.

Czy tworzenie oprogramowania blockchain to właściwa ścieżka dla Ciebie?

Ta praca prawdopodobnie sprawi Ci przyjemność, jeśli lubisz szczegóły niskiego poziomu, czytasz kod innych osób dla zabawy, myślisz w kategoriach skrajnych przypadków i scenariuszy ataków oraz czujesz się swobodnie w całkowicie zdalnych, międzynarodowych zespołach. Zainteresowanie ekonomią i finansami jest pomocne, ponieważ wiele kontraktów wdraża mechanizmy finansowe, takie jak pożyczki, pule płynności czy aukcje.

To prawdopodobnie nie jest opcja dla Ciebie, jeśli potrzebujesz stabilnego, przewidywalnego pracodawcy, nie czujesz się komfortowo na rynkach spekulacyjnych lub oczekujesz jasnej ścieżki certyfikacyjnej. Programiści, którzy cenią sobie stabilność platformy i formalne kwalifikacje, często lepiej czują się jako programiści Salesforce, gdzie certyfikaty wyznaczają strukturę całej kariery. Ci, którzy wolą zajmować się obsługą systemów od pisania kontraktów, mogą wykorzystać swoje doświadczenie z Node.js i infrastrukturą i skierować się w stronę pracy jako administrator systemu Linux lub inżynier DevOps.

Często zadawane pytania

Jakiego języka powinien najpierw nauczyć się początkujący programista blockchain?

Dla większości osób będzie to Solidity, ponieważ większość ofert pracy dla programistów blockchain dotyczy sieci opartych na Ethereum i kompatybilnych z EVM. Naucz się go od samego początku, korzystając z Foundry i testując kod. Jeśli znasz już Rust lub planujesz pracować nad Solaną lub kodem na poziomie protokołu, zacznij raczej od Rust. TypeScript przydaje się w obu ścieżkach – zarówno w front-endzie, jak i w skryptach.

Czy potrzebuję certyfikatu, aby pracować jako programista blockchain?

Nie. Nie ma wymaganych kwalifikacji, a pracodawcy rzadko przywiązują wagę do certyfikatów ukończenia kursów. Zwracają uwagę na repozytoria na GitHubie, wdrożone kontrakty, wkład w protokoły open source oraz wyniki w publicznych konkursach audytowych. Solidne portfolio przetestowanych, dobrze udokumentowanych kontraktów jest w tej dziedzinie warte więcej niż jakikolwiek certyfikat.

Czy mogę pracować dla zagranicznej firmy z branży Web3 z Polski?

Tak, i wielu polskich programistów blockchain tak właśnie robi. Najczęstszą formą jest umowa B2B, w ramach której prowadzisz jednoosobową działalność gospodarczą i wystawiasz faktury na firmę. Sprawdź umowę, walutę płatności oraz to, czy część wynagrodzenia jest wypłacana w tokenach, ponieważ ma to wpływ zarówno na Twoje ryzyko, jak i na rozliczenie podatkowe.

Czy programowanie blockchain to stabilna kariera?

Mniej stabilna niż programowanie w głównym nurcie. Popyt na programistów blockchain podlega cyklom rynku kryptowalut, a wiele projektów zostaje zamkniętych, gdy wyczerpują się fundusze. Najlepiej z okresami spadku koniunktury radzą sobie programiści posiadający solidne umiejętności ogólne, wiedzę z zakresu bezpieczeństwa oraz doświadczenie w firmach podlegających regulacjom MiCA. Traktuj blockchain jako specjalizację opartą na solidnych podstawach ogólnych, a nie jako ich zamiennik.

Jak długo trwa droga do zostania programistą blockchain?

Jeśli już pracujesz jako programista backendowy lub frontendowy, przygotuj się na kilka miesięcy intensywnej nauki i tworzenia oprogramowania, zanim będziesz mógł ubiegać się o stanowiska juniora w obszarze inteligentnych kontraktów. Bez wcześniejszego doświadczenia w programowaniu zajmie to znacznie więcej czasu, ponieważ pracodawcy oczekują przede wszystkim ogólnych umiejętności inżynierii oprogramowania. Konkursy audytowe mogą przyspieszyć proces zdobycia rozpoznawalności.

👤E

Oprac. 👤 ePraceo.pl

Redakcja portalu ePraceo.pl. Tutaj publikujemy nowinki z rynku pracy i materiały poradnikowe dla kandydatów i rekruterów. Naszą misją jest wspieranie podkarpackich firm w poszukiwaniu najlepszych kandydatów z regionu. Nasz zespół redakcyjny tworzą specjaliści z działu HR, employer brandingu i skutecznej komunikacji na linii pracodawca-pracownik. Publikujemy materiały oparte o ekspercką wiedzę, rzetelny research i najnowsze trendy z rynku pracy.