Daniel Kmak, jeszcze w liceum, swój prywatny czas poświęcał na pomaganie innym. Odpowiadał nawet na proste pytania społeczności StackOverflow, by oszczędzić czas na szukanie odpowiedzi w sieci. Robił to ponieważ sam kiedyś otrzymał pomoc, co pozwoliło mu rozwinąć swoją pasję. Zbieranie punktów na StackOverflow opłaciło się, bo dzięki temu Daniel został zauważony przez rekrutera i znalazł swoją pierwszą pracę.

Od tego czasu bardzo dużo zmieniło się w jego życiu. Jego historia pokazała nam, że pełen pasji 19-letni programista łatwo znajdzie dla siebie miejsce, mimo braku technicznego wykształcenia (btw. widzieliście naszą DevDebatę o przydatności studiów informatycznych?). Poznajcie historię Daniela Kmaka, Frontend & DAPP Developera w ChronoLogic.

Już w drugiej klasie liceum znalazłeś pierwszą pracę we front-endzie. Kiedy zacząłeś interesować się programowaniem?

Na początku moim celem było zostać grafikiem projektującym strony internetowe. Ze względu jednak na ogromną konkurencję i niższe zarobki w grafice, za bezpieczniejszy wybór uznałem programowanie. Okazało się, że jest to coś, co sprawia mi dużą przyjemność.

Przeszedłeś standardową drogę od czytania poradników, po książki i własne małe projekty?

Tak, ale źródłem wiedzy był dla mnie YouTube. Książki dały pewność siebie oraz ugruntowanie wiedzy i prowadziły za rękę przy nauce budowy takich systemów jak np. sklep internetowy.

Jednak od momentu złapania tzw. “zajawki”, do czasu kiedy wziąłem do ręki pierwszą książkę, minęło bardzo dużo czasu

Jak wyglądały Twoje pierwsze doświadczenia w pracy?

Zaczynałem od bycia grafikiem i tłumaczem dla jednego z prywatnych serwerów gamingowych za kieszonkowe. Tłumacząc newsy często coś psułem – praca z plikami PHP sprawiła, że zacząłem interesować się tym językiem. Wtedy właśnie zacząłem od oglądania wspomnianych filmów na YouTube. Po każdym filmie próbowałem zrobić coś swojego na podstawie tego, co widziałem.

Miałem również kontakt do programisty z tego samego gamingowego środowiska – stąd czerpałem wsparcie w postaci rad dotyczących pisania kodu. Samo obejrzenie filmu nie jest wystarczające do napisania np. programu do wysyłki maili połączonego z jakimś formularzem. Na początku jest bardzo ciężko zaczynać od tzw. czystej kartki. Wtedy warto kogoś poprosić o pomoc.

Pamiętasz swój pierwszy projekt? Czego się przy nim nauczyłeś?

Pierwszym poważnym projektem, który pamiętam był social network dla ludzi starających się żyć zdrowo. Spędziłem nad nim rok pracując za bardzo małe wynagrodzenie, zupełnie niewspółmierne do włożonego wysiłku, ale cóż – miałem nadzieję, że projekt odniesie sukces, a wtedy pojawią się również pieniądze. Czego się nauczyłem? Ember.js, ciężkiej pracy, dyscypliny, determinacji i konsekwencji.

Kiedy pracujesz sam i twoja stawka nie jest godzinowa, wiesz, że projekt kolokwialnie mówiąc sam się nie zrobi

Generalnie po roku ciężkiej pracy czułem się bardzo komfortowo we front-endzie, a łatwość z jaką przychodziło mi odpowiadanie na pytania zadawane przez społeczność StackOverflow upewniła mnie, że jestem gotowy pracować w tym zawodzie.

Już po roku pracy pomagałeś innym na StackOverflow. Na jakie pytania społeczności potrafiłeś wtedy odpowiedzieć?

Wtedy miałem na koncie rok tworzenia samemu frontendu (ember.js) i backendu (node.js + mongodb), doświadczenie to zdobyłem podczas projektu social network. Wcześniej zajmowałem się np. PHP i CodeIgniter, C# i ASP.NET MVC + Mono. Nie obce było mi wiele aspektów tworzenia aplikacji webowych. Potrafiłem więc odpowiedzieć prawie na każde pytanie dotyczące Ember.js lub Ember Data.

Relatywnie niewielu było developerów Ember.js, a dokumentacja i tutoriale w tamtym czasie prezentowały bardzo słaby poziom. Desynchronizacja między oficjalną dokumentacją Ember.js, a wersją biblioteki nie była niczym dziwnym dla doświadczonych developerów. Taka sytuacja trwała kilka lat. Ember.js zawsze promował podejście “convention over configuration”, co z drugiej strony powodowało wiele sytuacji, w których programiści nie wiedzieli co się dzieje w ich aplikacji. Przez lata utarło się nazywać takie sytuacje “Ember magic”.

Czasami odpowiadałem również na pytania o JavaScript. Nie były to trudne pytania, często były to problemy z jQuery. Sztuka to bycie “the fastest gun in the west”. Odpowiesz minutę później i już odpowiedź nie jest pierwsza, a… piąta. I nie ma punktów. Zanim poznałem Ember.js odpowiadałem na pytania o PHP, np. jak działają sesje albo jak iterować po tablicy, która może być nullem.

Dlaczego poświęcałeś czas na odpowiadanie na proste pytania? Większość użytkowników SO pewnie woli czytać odpowiedzi innych, niż samodzielnie pomagać mniej doświadczonym osobom.

Czytanie to nie to samo, co aktywne uczestniczenie. Można obserwować kolegów grających w piłkę, ale możesz też z nimi zagrać. Pamiętam, że na początku zacząłem się udzielać, ale moje odpowiedzi spotykały się z negatywną reakcją społeczności… Był to znak, że trzeba jeszcze się podszkolić. Potem motywacją była przede wszystkim rosnąca reputacja, satysfakcja z przynależności do grupy, gdzie liczy się merytoryczność i szybkość odpowiedzi oraz słowa podziękowań, kiedy zaoszczędziło się komuś sześciu godzin szukania rozwiązania.

Programowanie wygląda tak dzisiaj, tylko ze względu na ludzi, którzy za darmo podzielili się wiedzą

Miejmy tego świadomość i od czasu do czasu zróbmy coś, co pomoże tym, którzy przyjdą po nas.

Już wtedy liczyłeś, że kiedyś ta energia włożona w pomaganie innym zwróci się?

Zdecydowanie tak. Przeczytałem o przykładach osób, które na rozmowach kwalifikacyjnych udowadniały swoje umiejetności właśnie profilem na StackOverflow. Na początku była to więc tylko chęć zdobycia tysięcy punktów reputacji i znalezienia pracy. Potem, kiedy ludzie dziękują ci za pomoc, otrzymujesz oferty pracy, twoje umiejętności rosną i są to sygnały, że jesteś na dobrej drodze. Czujesz, że zrobiłeś coś dobrego w życiu. Pomagasz w taki sposób w jaki umiesz. Teraz wiem, że gdyby nie osoby, które podały mi rękę na mojej drodze, to nie byłbym nigdzie.

Przy pracy zdalnej z uczeniem Ember.js ktoś zaufał chłopakowi z liceum, że będzie dobrze wykonywał swoją pracę. W Krakowie dano mi etat i atrakcyjną ofertę po dwóch rozmowach na Skype. Jest tyle osób, które mi pomogło… Chcę to odpracować i oddać innym.

Właśnie dzięki StackOverflow znalazłeś pierwszą pracę na stanowisku front-end developera?

Byłem wtedy w trakcie mojego “rajdu” po punkty na StackOverflow. Odpowiedziałem na pytanie jednego z pracowników firmy, która później mnie zatrudniła. Po dodaniu odpowiedzi dostałem wiadomość, z prośbą o udział w rekrutacji. Wtedy nastąpił mój pierwszy kontakt z osobą pełniącą rolę rekrutera. Ciężko było mnie nie zauważyć, jeśli ktoś zaglądał na pytania o Ember.js na SO.

Byłem numerem jeden jeśli chodzi o zdobyte punkty w ciągu ostatniego miesiąca

W tej chwili jestem bodajże czternasty w ogólnej klasyfikacji.

Jak wyglądała rozmowa kwalifikacyjna?

Odbyła się przez Skype, po drugiej stronie siedziała dwójka programistów front-end. Pytali głównie o Ember.js, w czym czułem się bardzo mocny. Rozmowa zajęła dwie godziny, a ja oczywiście nie wiedziałem od razu czy zostałem przyjęty. Przygotowałem się i pokazałem im kontrybucje do projektów open-source, w tym Ember.js. To jest coś czego nie robi większość programistów, więc miałem szansę się wyróżnić.

W tej firmie zacząłeś pracę na stanowisku juniorskim?

Junior, regular, senior – to ma jeszcze jakieś znaczenie? Ludzie nie uznawali tego co mówię za ważne ze względu na wiek, ale ze względu na obowiązki i zawsze dawali mi “seniorskie” stanowiska. Tak było również w pierwszej firmie. Moim zadaniem była nauka osoby, która wykonywała zlecenie dla dużej firmy ubezpieczeniowej w USA, w technologii Ember.js. Była to bardzo trudna rola, ale wiele ucząca – również pracy z innym programistą.

Pracodawcy nie przeszkadzał brak technicznego wykształcenia i Twój młody wiek?

Nie, nawet liceum nie było problemem ze względu na to, że była to praca part-time. Było to dla mnie świetne zajęcie na tamten czas i pierwsze komercyjne doświadczenie. Zdobyłem kartę przetargową w rozmowach z kolejnymi firmami.

Jak udało Ci się pogodzić szkołę ze zleceniami?

Przez różnicę czasową w Stanach Zjednoczonych często pracowałem od 22 – 1

Oczywiście sprawiało to, że nie miałem czasu przykładać się do nauki. Nie miałem również do tego motywacji. Byłem w drugiej klasie liceum i już miałem fach w ręku. Wiedziałem, że już wygrałem. Było też kilka nieprzyjemnych rzeczy w liceum. Wychowawczyni krytykowała to, że ludzie mieli swoje pasje inne niż matematyka. Tworzyło to chorą atmosferę strachu, w której każdy albo się uczył, albo przeżywał horror na lekcji.

Jak realizowałeś zadania dla tej firmy? Z czym miałeś największe problemy?

Moim narzędziem był głównie Zoom (program do screen-sharingu) oraz Skype. Największy problem miałem z przekazaniem wiedzy osobie, która będąc zupełnie szczerym – nie wiem w jaki sposób dostała w USA taką pracę. Miałem wrażenie, że mój “uczeń” pracę dostał ze względu na wysokie umiejętności interpersonalne. Jego poziom techniczny był słaby. Prawie uniemożliwiało to współpracę z nim. To było dla mnie ogromne wyzwanie. Mogłem powtarzać coś wielokrotnie, żeby za chwilę usłyszeć pytanie świadczące o zupełnym braku zrozumienia tematu.

Po maturze przyszedł czas na pełen etat, pracę znalazłeś w krakowskiej firmie. Także nie wymagała wykształcenia technicznego?

Nie, myślę nawet, że brak wykształcenia technicznego to mój atut. Jedyne co stoi i stało za moją osobą to ogrom ciężkiej pracy i umiejętności. Dziesięć tysięcy punktów na StackOverflow i bycie w czołówce jeśli chodzi o Ember.js zrobiło wrażenie na moim pracodawcy.

Liczba punktów nie zwalniała mnie z rozmowy technicznej

Była to tylko przepustka do dalszego etapu rekrutacji. Na rozmowie technicznej poszło mi bardzo dobrze. Generalnie w życiu nie przeszedłem tylko jednej rozmowy technicznej z siedmiu.

Jak wyglądała ta nieudana rozmowa o pracę?

Dano mi za zadanie napisać algorytm windy. Problem prosto z programu nauczania na studiach, których nigdy nie widziałem. Po tym jak nie udało mi się napisać poprawnego programu ciężko mi było przyjąć do wiadomości, że nikt nawet nie zapytał mnie o framework, w którym czuję się bardzo dobrze. Ludzie, którzy stanowią dużą część branży IT nie potrafią ocenić mojego potencjału. Mogę aplikować na stanowisko front-end developera w Polsce i mogę zostać odrzucony ze względu na brak doświadczenia i wysokie wymagania finansowe, a za miesiąc zostać uznany za odkrycie w firmie zajmującej się technologią blockchain i dostać pieniądze na jakie zasługuję.

Jakie są to pieniądze? Ile powinien zarabiać developer? Od czego zależy jego stawka?

Nie będę się wypowiadał o tym ile zarabiam, ale uważam, że

ambitny programista powinien nie mierzyć – podkreślam – długoterminowo niżej niż w 100 tys. USD rocznie

Jest to jak najbardziej osiągalna stawka, standardowa dla krajów zachodnich i USA. Stawka ta zależy od umiejętności i branży, w której pracuje dany developer. Można iść do branży gamingowej i zgodzić się na trzy razy mniejszą wypłatę kosztem “robienia gier, a więc tego co wszyscy chcą robić”. Można też zajmować się rzeczami również ciekawymi, pracować zdalnie dla firm z USA lub Hong Kongu po rundach finansowania za lepsze pieniądze.

Nie mówię, że w branży gier wszyscy zarabiają mało, ale… są miejsca, gdzie jak trafisz i przestaniesz się rozwijać, to skończysz zarabiając 6 tys. PLN / mc przez 10 lat. Zaraz wywołam tu jakąś kontrowersję, więc uściślę – dla programisty ze specjalistyczną wiedzą. Myślę, że zgodzimy się, że jest to raczej niski standard.

Jak wyglądały Twoje początki z technologią blockchain. Dlaczego to właśnie na nią poświęcasz teraz czas?

Byłem na wakacjach w Indiach i dostałem telefon z pytaniem czy chciałbym pójść w tym kierunku. Po powrocie zacząłem zgłębiać wiedzę na ten temat. Teraz właśnie poświęcam na nią czas, bo branża jest na tyle młoda, że jest szansa dużo w niej zdziałać – wywrzeć globalny wpływ na cały ekosystem – w moim przypadku – Ethereum. Po pięciu miesiącach pracy w pierwszej “blockchainowej” firmie trafiłem do elity, za jaką uważam ChronoLogic.

Osoby odpowiedzialne za projekt pierwszy raz ze zjawiskiem kryptowalut i blockchain zetknęły się w 2011 roku i przeprowadziły wiele udanych ICO. To są ludzie, którzy starają się za wszystko płacić kryptowalutami i korzystać jak najmniej z tradycyjnych walut.

Tobie też płacą w kryptowalutach?

Kiedy wyraziłem chęć otrzymywania pensji za swoje usługi w dolarach zamiast kryptowalucie Ethereum, ze względu na niejasne zasady księgowości w Polsce, osoba po drugiej stronie wydała się bardzo poruszona. Odpuściłem więc i można powiedzieć, że na dzisiejszy dzień

jestem jedną z niewielu osób na świecie, która w ten sposób otrzymuje wypłatę – w Ethereum.

Z minusów tego typu rozwiązania – nie obyło się bez zmiany księgowej.

Dla ludzi pracujących w technologii blockchain kryptowaluty to niejako styl życia. Samo ChronoLogic zebrało około 8 milionów dolarów i teraz kilkunastoosobowy zespół pracuje nad projektem. Ci ludzie są dla mnie autorytetami. Jeśli chodzi o programistów pracuję m. in. z Piotrem Kosińskim, byłym CTO Pracowni Nowych Technologii. Pracujemy zdalnie, jedziemy do Paryża na konferencję, to co robimy jest pionierskie – nie wiem czy byłbym w stanie wrócić do normalnej pracy front-end developera.

Wynagrodzenie w Ethereum to dość niespotykany wątek. Jak wymieniasz pieniądze na te uznawane przez banki? A może nie wymieniasz tylko za wszystko płacisz kryptowalutami?

Przede wszystkim zaznaczę, że mam działalność – na umowę o pracę takie coś prawdopodobnie by nie przeszło. Co do samego procesu – Ethereum zamieniam na złotówki ze względu na to, że w ciągu dnia kurs potrafi się zmienić o 20%… W praktyce wygląda to tak, że wystawiam fakturę w USD, a na niej podaję mój adres do wpłaty ETH na giełdzie. Sam przelew trwa bardzo krótko, do 10 minut. Otrzymane ETH na giełdzie sprzedaję od razu na PLN. Wypłacone pieniądze przelewam na firmowe konto rozliczeniowe.

Różnice między kwotą na fakturze, a de facto zapłaconymi pieniędzmi traktuje się jako różnicę kursową, a więc – zysk, lub koszt firmy. Kryptowalutami można zapłacić za Airbnb czy bilety lotnicze, aczkolwiek samemu wolę płacić złotówkami. Może z czasem się to zmieni, kiedy spędzę więcej czasu wśród ludzi, którzy unikają tradycyjnych walut.

Jak znalazłeś pracę w firmie zajmującej się blockchainem? Jakie wymagania musiałeś spełnić?

W ramach mojej poprzedniej firmy powstał zespół odpowiadający za nowe blockchainowe przedsięwzięcie.

Na początku wymaganiem był entuzjazm do nauki tej technologii oraz odwaga

, żeby wziąć na siebie dość skomplikowany proces budowy MVP zdecentralizowanego rynku dla Big Data. Kiedy przyszła oferta od ChronoLogic miałem już za sobą doświadczenie w budowaniu zdecentralizowanej aplikacji. Trafiła ona do mnie przez rekrutera z Hong Kongu na LinkedIn.

W ChronoLogic poza programowaniem wymaga się od nas również dużej transparentności oraz komunikacji. Nasz kod jest open-source, piszemy artykuły, robimy webinary, będziemy nagrywać sporo materiałów wideo. Ostatnio spotkałem się ze stwierdzeniem, że obecnie najbardziej pożądaną umiejętnością jest wszechstronność. Zgadzam się z tym. Oprócz tego, że tworzymy produkt, w jakiś sposób odpowiadamy również za jego sprzedaż.

Jak uczyłeś się blockchaina? Tak samo jak pierwszego języka, czyli poprzez YouTube?

Obejrzałem kawałek kursu na Pluralsight na temat blockchain, mieliśmy również prezentację wewnątrz firmy odnośnie tego jak działa. Jeśli natomiast chodzi o to w jaki sposób nauczyłem się najwięcej to… wtedy jak w pół miesiąca mieliśmy zrobić MVP zdecentralizowanej aplikacji. Sam język – Solidity – jest bardzo podobny do JavaScript, narzędzia wokół blockchain są również napisane w JavaScript. Jako team mieliśmy dużo problemów ze zrozumieniem tego jak to wszystko działa w praktyce, ale byliśmy zachwyceni pracą z blockchainem i płynnie zdobywaliśmy wiedzę budując jednocześnie projekt.

Wiedzę więc zdobyłem czytając dokumentację (jeśli można powiedzieć, że ona istnieje w przypadku blockchain), odpowiedzi na StackOverflow, wątki na GitHubie z problemami… Jeśli mam coś zrobić nie uznaję innego wyjścia niż doprowadzenie tego do końca. Potraktowałem to ambicjonalnie i mimo że droga nauki była wyboista – była jedyną sensowną dla mnie drogą.

Koniec końców w ten krótki czas zrobiliśmy naprawdę dużo i aplikacja od tamtej pory jest na produkcji

Co przemawia za tym, że technologia blockchain zmieni świat?

Ludzie, którzy za nią stoją – oni sprawią, że blockchain zmieni świat. To prawdziwi fanatycy. Nie odczytujcie tego pejoratywnie. Osoby oparły o kryptowaluty swoje życia czasami zdobywając fortuny w przeciągu dwóch lat. Wiem, że pytanie było o technologię, ale pod pewnym względem można postrzegać to drugorzędnie. W cały ekosystem zostały zainwestowane pieniądze na tyle duże, że jeszcze przez wiele lat będziemy obserwować rozwój.

Wracając do technologii – największym argumentem korzystania z blockchain jest paradoksalnie brak zaufania. Nie ufamy nikomu, że naszym środkom nic się nie stanie – lub, że aplikacja zadziała tak jakbyśmy sobie tego życzyli… Sprawdzamy to. Kryptografia sprawia, że raz opublikowanego kodu nie da się edytować – możemy przeczytać go linijka po linijce i dokładnie wiedzieć, co się stanie jeśli np. na adres X przelejemy Y środków.

Bitcoin to tylko niewielki ułamek tego, co da się dzisiaj stworzyć za pomocą technologii blockchain. Jakie blockchain ma dzisiaj ograniczenia? Co utrudnia rozwój tej technologii?

Są to ograniczenia na różnych poziomach – fluktuacji walut, dojrzałości narzędzi, braku dokumentacji i baz wiedzy czy skalowalności. Dla przykładu – w Ethereum jeśli chcemy wykonać fragment kodu płacimy cenę za tak zwany gaz. Jeśli sieć jest obciążona, to np. za deploy kodu na produkcję możemy zapłacić $200, kiedy normalnie potrzebne by było tylko $40. Oczywiście alternatywą jest czekać 7 godzin zamiast 5 minut. To sprawia, że aplikacje się nie skalują.

Użytkownicy bowiem nie chcą czekać 7 godzin na kupno “kryptokota”. Tutaj dochodzimy do fenomenu CryptoKitties

Po pojawieniu się tej aplikacji w blockchainie Ethereum – koszty gazu, a więc i opłat za transakcje wzrosły kilkunastokrotnie.

Jeśli chodzi o narzędzia to mamy np. dwa klienty sieci Ethereum – Geth i Parity. Oba z nich mają problemy już w momencie synchronizacji (a więc przygotowania się do pracy!). Nie jest niczym zdumiewającym, że zanim program zadziała będziemy musieli trzy razy ściągnąć 50 GB łańcucha Ethereum. Jeśli mamy SSD to sama synchronizacja będzie trwała około 3 godzin, ale jeśli mamy HDD to… Tak właśnie wyglądają te narzędzia. Potem dochodzą takie rzeczy jak problemy z protokołem JSON RPC, niejasności w korzystaniu z Web3.js i tak dalej…

Dokumentacja i tutoriale robienia rzeczy powyżej “Hello World” prawie nie istnieją i ciężko znaleźć odpowiedzi na pojawiające się przy tworzeniu aplikacji pytania. Kolejne narzędzie IPFS (to nie jest blockchain, ale wiele aplikacji zdecentralizowanych z niego korzysta do przechowywania plików), przed skorzystaniem z niego, a więc w momencie uruchomienia od razu ostrzega, że jest w fazie “pre-alpha” i nie nadaje się do wykorzystania produkcyjnego.

Ile Twoim zdaniem minie czasu zanim większość z nas będzie wykorzystywać blockchain w życiu codziennym?

Uważam, że będzie to od od czterech do pięciu lat. Do 2022 roku projekty, które teraz i w poprzednich latach zebrały pieniądze powinny być już w fazie produkcyjnej, live. Już teraz AXA wykorzystuje Ethereum do oferowania ludziom ubezpieczeń za odwołane loty. Produkt nazywa się fizzy. Za Airbnb niektórym właścicielom zapłacimy krypto, np. Ethereum. Wracając do biletów lotniczych – LOT oferuje je w zamian za Bitcoiny. Mam nadzieję, że niejasne prawnicze umowy zostaną zastąpione smart-kontraktami Ethereum. Obecnie podpisując umowę mamy do czynienia ze sformułowaniami, które są dla nas niejasne.

Po pierwsze jesteśmy skazani na to jak zinterpretuje te zapisy np. bank (jako podmiot, z którym tą umowę podpisaliśmy), lub jak zmienią się interpretacje prawa. W przypadku blockchain i kontraktów Ethereum nie ma szansy na zmianę interpretacji przepisów. Przed podpisaniem takiej umowy na blockchainie dokładnie wiemy, co się stanie, nie ma ryzyka, że Ministerstwo Finansów zmieni trzy razy interpretację prawa podatkowego, jak np. w przypadku podatku od obrotu kryptowalutami. Kod, a więc kontrakt po wrzuceniu do łańcucha jest niezmienny, a więc nie jesteśmy skazani na łaskę lub niełaskę sądów oraz urzędników.

Czym zajmuje się powiedzmy junior, a czym senior w firmie zajmującej się blockchainem?

Dotychczas nie spotkałem się z zestawieniem pojęć junior i blockchain. Zazwyczaj osoby, które pracują w branży albo mają szansę do niej wejść to regular/senior.

Odpowiedzialność pisania np. w Solidity jest zbyt duża, żeby nawet regular/senior bez dłuższej praktyki pisał kod obracający pieniędzmi

Szczerze mówiąc samemu trzymam się bardziej warstwy JavaScript wokół samych smart-kontraktów. Tutaj dochodzimy do podziału na kilka rodzajów developerów blockchain.

Może być to niski poziom – programista mechaniki samego łańcucha bloków piszący np. w C++. Następnie mamy pisanie już pod maszyny wirtualne konkretnych blockchainów, np. w Ethereum możemy pisać w Solidity. Jest to język smart-kontraktów. Natomiast interakcja z tymi smart-kontraktami, wszystkie narzędzia wokół to już jest w większości JavaScript.

Deweloperzy Solidity piszą w JavaScript np. testy czy skrypty deploymentu. Zwieńczeniem pracy nad projektem w blockchain najczęściej jest aplikacja webowa. Pracują nad nią osoby, które są hybrydami front-end developerów i programistów Solidity. Warstwą pomiędzy JavaScript a Solidity jest API Web3.js i to jest głównie to czym ja się zajmuję.

Jak wygląda typowa ścieżka developera blockchain?

Do głowy przychodzą mi dwa przypadki. Pierwszy, developer C++ zaczyna interesować się tematem blockchainów i np. jego firma zaczyna tworzyć projekt w tym języku. Taka osoba zaczyna uczyć się Solidity i po jakimś czasie staje się efektywna w tym języku.

Znajomość niskopoziomowego języka jak C++ pomaga tej osobie pisać i rozumieć kod pod maszynę wirtualną Ethereum Virtual Machine

Alternatywna ścieżka to rozwój mechaniki własnego blockchaina, gdzie językiem będzie C++. Drugi przypadek, ścieżka, którą można objąć to bycie front-end developerem, który ma za zadanie dodać elementy interakcji ze smart-kontraktami i zaczyna dowiadywać się o Web3.js. Następnie uczy się więcej o Solidity, który jest podobny do JavaScript.

Co najbardziej zaskoczyło Cię w blockchainie, gdy zacząłeś zajmować się nim na full time?

Najbardziej zaskoczyło mnie to, że wśród osób, które zajmują się tą technologią jest to zupełnie naturalne, że rzeczy nie działają. Trzeba wziąć poprawkę na ogromne fundusze, które idą na marketing i przedstawianie kryptowalut jako zbawienia dla świata. Od środka wygląda to dużo bardziej delikatnie i nikogo to nie dziwi. Jeśli przychodzisz z zewnątrz i miałeś styczność ze stabilnymi technologiami, istniejącymi od piętnastu lat, to tutaj będzie to jazda bez trzymanki – przyjemna lub nie, zależy czy masz deadline’y.

Jest też duże podobieństwo do Ember.js – brak dokumentacji, rozwiązywanie problemów i debugging “na intuicję”. Narzędzia strzelają ci w kolano jeśli masz jakikolwiek pomysł, który chcesz skalować dla większej ilości użytkowników. Większość programów jest tutaj w fazie alpha lub beta…

Podoba mi się, że wymagania wobec programistów blockchain są racjonalne. W dużej mierze jest to research and development

Jakie masz plany? Co chcesz osiągnąć za rok, dwa i pięć lat?

Chcę bardziej związać się z technologią blockchain. Chciałbym również więcej podróżować. Z kolegą z nowej firmy – Chorwatem niegdyś pracującym rok w Krakowie – lecę do Tajlandii, stolicy “cyfrowych nomadów”. Spędzimy tam miesiąc wynajmując dom z basenem i dobrym internetem. Profesjonalnie chciałbym występować w roli conference speakera oraz zajmować się zarządzaniem przedsiębiorstwami IT. Już w tej chwili moje obowiązki nie są czysto programistyczne – zajmuję się również pisaniem artykułów, czy nagrywaniem kursów.

Jeden z nich jest już opublikowany przez brytyjskie wydawnictwo Packt Publishing – “JavaScript Choice Made Easy: Angular vs React vs Vue”. Drugi jest dostępny w tej chwili w formie preorderu – “Web Development with Angular and PHP”. Poza kursami, nawiązałem też dla moich pracodawców kilka strategicznych współprac. Powoli buduję znajomości z ludźmi, których potem ze sobą kontaktuję. Ostatnio więc często występowałem w roli łącznika między jednym a drugim biznesem pozwalającego na realizację celów współpracy. Nie do końca wiem czy takie stanowisko istnieje, ale generalnie robię dużo więcej ponad programowanie.

Za rok chcę być mocno zaangażowany w biznesową stronę firmy, w której będę pracował, a za pięć być może całkowicie oddać się zarządzaniu w IT. Potrzebuję znaleźć tylko więcej odpowiednich ludzi na swojej drodze.


Technologia blockchain budzi wiele pytań, dlatego razem z Danielem postanowiliśmy zorganizować pierwszy livestream JustGeek.IT. Jeśli chcecie dowiedzieć się więcej, jak wygląda praca w firmie zajmującej się blockchainem – zostawcie swoje pytania w komentarzach. Zadamy je podczas livestreamu!

Zapraszamy do dyskusji
Nie ma więcej wpisów

Send this to a friend