Praca na własnych zasadach. Historia Kamila Skalskiego

Kamil Skalski od lat podróżuje i pracuje w wielu krajach. Teraz pracuje i zatrudnia programistów w Wietnamie, jak mówi, bardzo ciekawym kraju pod względem technologii. — Zaskakująco dużo dzieje się w branży crypto / blockchain i wszelakiego rodzaju fintechu. Głównie są to filie firm z USA czy Australii, które po znalezieniu tu odpowiedniej osoby mogącej poprowadzić zespół przerzucają IT tutaj — mówi. Jak wygląda życie nomady? Czy podróżowanie pomaga rozwinąć się programiście? Na te i na wiele innych odpowiedział nam Kamil, którego zaprosiliśmy do rozmowy.

Dlaczego zdecydowałeś się zostać nomadą?

Na różnych etapach mojej pracy czy na rekrutacjach w zagranicznych firmach byłem zachęcany do przeprowadzki blisko ich central, jednak nigdy specjalnie nie podobała mi się idea takiego wyjazdu za pracą.

A w jakich krajach proponowano Ci zamieszkać?

Kiedyś Microsoft mnie rekrutował, ale nie mógł załatwić odpowiedniej wizy i zaproponował rozpoczęcie pracy w Kanadzie. Wtedy nie przyjąłem propozycji, bo konkurencja otworzyła biuro w Krakowie. Wiele lat później kiedy mój projekt przesuwano z Polski proponowano mi przeniesienie się za nim do Szwajcarii albo USA, choć i kilka innych miejsc na świecie było w zasięgu, gdybym znalazł odpowiedni projekt, w którymś z większych biur na świecie.

Kiedy zdecydowałem się spróbować dłużej pobyć poza Polską, chciałem to zrobić na własnych zasadach, mieć możliwość poznania wielu miejsc, wykorzystania czasu w bardziej elastyczny sposób i kształtowania tego co robię samemu. Zawsze lubiłem podróże, jednak tryb pośpiesznego zwiedzania w trakcie urlopu odbierał sporą część przyjemności. Obecnie cenię sobie tzw. “slow travel”, nawiązywanie relacji z lokalnymi mieszkańcami, a także przeplatanie pracy i podróży, bo obie te aktywności potrafią jednocześnie męczyć i relaksować, ale w inny sposób, więc naturalnie się uzupełniają.

Jakie kraje zwiedziłeś w trybie “slow travel”?

Głównie Tajlandię i Wietnam, także Filipiny, a z naszego lokalnego podwórka Ukrainę i Litwę. W nieco krótszych wyjazdach, ale też dość “wolnym” trybem zwiedziłem także Indonezję, Japonię, Tajwan, Nepal, Malezję, Kambodżę, Hong Kong. Można powiedzieć, że dużo łatwiej się zasiedzieć w jednym miejscu, gdy się tak podróżuje.

Pracowałeś w Krakowie zanim wyjechałeś z kraju. W jaki sposób wybrałeś kierunek pierwszej zagranicznej podróży?

Jeszcze podczas studiów i pracy na etacie odwiedziłem sporo miejsc na różnych kontynentach i choć były to wyjazdy głównie turystyczne, to pozwoliły mi odczuć specyfikę różnych państw. Mój pierwszy dłuższy wyjazd był jednak inspirowany przez znajomego, który kilka lat wcześniej przebył podobną ścieżkę i po wielomiesięcznych podróżach w wielu krajach zatrzymał się na stałe w Wietnamie. Zacząłem tam bywać na coraz dłuższe okresy, bo pod względem przyjazności dla obcokrajowców, pogody, stylu życia, dostępu do internetu i wielu innych jest to dość dogodna opcja dla nomady.

Jaki był Twój stan umiejętności przed wyjazdem?

Można powiedzieć, że w momencie opuszczenia pracy na pełnym etacie (przez 7 lat pracowałem w Google’u w Krakowie) osiągnąłem pewien szczyt, bardzo dużo nauczyłem się w amerykańskiej korporacji, ale ten proces już spowalniał, więc naturalnym krokiem było spróbować czegoś nowego, być może stworzenia lub pchnięcia na nowy poziom własnych projektów.

Co przed wyjazdem myślałeś o Wietnamie, a jaka była rzeczywistość?

Przed Wietnamem byłem trochę w Birmie i Tajlandii, więc spodziewałem się dość dużej egzotyki, do tego ze względu na wojnę z USA i komunizm może sporej biedy. To, co zaskoczyło, to mimo wszystko relatywnie większa niż w okolicznych krajach bliskość kulturowa Wietnamu. Wydaje się, że kolonializm francuski zostawił w tym kraju sporo śladów zarówno w architekturze, jak i funkcjonowaniu społeczeństwa. Może też pewne podobieństwa historii naszych krajów sprawiają, że ludzie nieraz podobnie myślą i nawiązuje się z nimi lepszy kontakt. Z rzeczy, które są częstą niespodzianką przy wizycie w Wietnamie, to ilość skuterów na drogach (to jakieś 70% ruchu ulicznego), kawa, której Wietnam okazuje się drugim na świecie eksporterem, a serwowana lokalnie ma dość unikalny smak i… częste w miejscach publicznych flagi z sierpem i młotem.

Jakie są najpopularniejsze firmy z branży IT w Wietnamie i czym się zajmują?

Największe firmy IT tutaj to telekomy i duże przedsiębiorstwa outsourcingowe, głównie dla Japonii i USA czy wręcz założone przez kapitał japoński. Jest też stosunkowo prężna branża gier komputerowych.

Jakie technologie królują w tym kraju?

Poza popularnymi chyba wszędzie web i mobile, zaskakująco dużo w Wietnamie dzieje się w branży crypto / blockchain i wszelakiego rodzaju fintechu. Głównie są to filie firm z USA czy Australii, które po znalezieniu tu odpowiedniej osoby mogącej poprowadzić zespół przerzucają IT tutaj. Gdzieś w przestrzeni publicznej pojawia się nacisk na nowe rzeczy typu AI, IoT i ogólnie industry 4.0, ale mam wrażenie, że w praktyce jest tego jeszcze mało, choć na pewno wiele firm buduje lub już ma takie zespoły.

Komu łatwiej znaleźć pracę w Wietnamie: juniorowi, regularowi czy seniorowi?

Przede wszystkim należy sobie zdać sprawę z różnicy wynagrodzeń. To, co w Polsce oferuje się juniorom, w Wietnamie podchodzi pod drogiego seniora czy leadera, choć oczywiście są różnice w koszcie życia, więc nie wypada aż tak źle. Rynek chłonie wszystkich, są i tu już duże braki kadry, więc każdy znajdzie pracę. Natomiast z punktu widzenia obcokrajowca najlepiej jednak celować przynajmniej w seniora, a najcenniejsza umiejętność to i tak będzie angielski, organizacja pracy, pokonywanie barier komunikacji, elastyczność dostosowania się do wymogów biznesowych bez utraty jakości produktu.

Wiele firm zagranicznych chciałoby mieć zespół w Wietnamie, ale potrzebuje kogoś, kto by go poprowadził, był w stanie dobrze zrozumieć zachodni sposób myślenia i wymagania biznesowe, a lokalnie, siłami zdolnych technicznie deweloperów, dostarczył dobrej jakości rozwiązania. W Polsce oczywiście takie osoby też są poszukiwane, ale mimo wszystko myślę, że łatwiej nam wejść w taką rolę niż absolwentom lokalnych uczelni. Co innego Azjaci, którzy studiowali na Zachodzie i wrócili, co jest dość popularne wśród zamożniejszej części populacji.

Jak wygląda kultura pracy? Pracuje się od 9 do 17? Popularne są nadgodziny, premie, bonusy?

Wietnamczyków określiłbym jako pracowitych, a godziny pracy nie są tutaj zbyt mocną normą (poza IT bardzo często pracuje się tu 6 dni w tygodniu, a w usługach wręcz 28 dni w miesiącu, po 10-12 godzin). Ciekawostka — kulturowo w zwyczaju jest prawie godzinna drzemka po obiedzie, choć chyba w realiach korporacyjnych trochę odchodzi do lamusa.

Jest też duża rotacja między firmami. Zwyczajowo Wietnam działa w cyklu rocznym między księżycowym nowym rokiem (zazwyczaj na koniec stycznia / początek lutego), kiedy to wypłaca się premie roczne, a pracownicy szukają lepszej pracy, nowy rok stanowi mentalnie pewne “nowe otwarcie”. Firmy oczywiście próbują temu przeciwdziałać, ale niestety raczej w negatywny sposób, np. ograniczając pracownikom okazje do nauki i osiągania samodzielności. Myślą, że jeśli ktoś będzie specjalizował się w wąskiej działce przydatnej na jego stanowisku, to ciężej będzie mu odejść, co według mnie działa na niekorzyść zarówno firm, jak i ludzi.

W jaki jeszcze sposób firmy ograniczają rozwój pracowników?

To już bardziej typowe sytuacje, czyli mikrozarządzanie czy sposób wyznaczania stawek wynagrodzenia. Ale tu jest więcej odcieni szarości, bo przecież często właśnie pracowników, którym można dać wolną rękę trudno znaleźć, a sposób zarządzania zależy indywidualnie od menadżera. Stawki zaś mimo wszystko reguluje rynek i tak jak w Polsce robi się tu już rynek pracownika, przynajmniej w IT.

Ciebie też spotkały tego typu ograniczenia?

W Wietnamie bardziej występuję w roli pracodawcy, nigdy sam w lokalnej firmie nie pracowałem. Od tej strony zaś są częste sytuacje, że pracownicy bardzo łatwo decydują się odejść i trudno utrzymać spójny zespół. Trzeba mieć dla nich coś atrakcyjnego, czy to pod względem wynagrodzenia czy możliwości nauki i rozwoju. Branża IT ma na tyle duże braki kadrowe, że jednak wspomniane ograniczenia wobec pracowników nie przyjmują takiej skali jak w wielu innych zawodach.

Jak wygląda rozkład firm? Większość to software house’y, startupy czy firmy consultingowe?

Największe firmy to outsourcing usług IT i pewnie rozwój produktów biznesowych o przeciętnej złożoności. Software house’ów trochę jest, ale, zdaje się, najczęściej są to przedsiębiorstwa założone przez ekspatów (lub zatrudnionych do tego przez firmy zagraniczne). Branża startupów pojawia się, mam odczucie, w skali takiej jak w Polsce mniej więcej dekadę temu, ale dokładnych porównań nie robiłem. Zdecydowana większość ma zaś wśród co-founderów Wietnamczyków, którzy studiowali w USA albo po prostu obcokrajowców.

Jak wyglądały Twoje poszukiwania pracy?

Wydaje mi się, że kontakty, które nawiązujemy na uczelni czy w firmach, w których pracujemy, to bardzo dobra podstawa dla budowania kariery. Na uniwersytecie brałem udział w studenckim projekcie, który technicznie i pod względem organizacji pracy bardzo mnie rozwinął, a ponieważ został doceniony przez giganta z USA grantem, dał mi też dobry wpis w CV oraz grono znajomych, którzy rekomendowali mnie w firmach, w których znaleźli się przede mną. W moim przypadku były też własne projekty tworzone z moim wujkiem, które rozwinęły się z czasem w biznes. Miałem też sytuację, w której pracując dla jednej firmy robiłem patcha do projektu opensource’owego, który zauważył ktoś w innej firmie i zaoferował mi współpracę. Moje doświadczenie można podsumować tak: być dobrym w czymś, co się robi i tworzyć kontakty, a reszta sama się znajdzie.

Jak rozwijała się Twoja kariera dalej?

Miałem więcej czasu, aby rozwinąć technicznie mój dawny projekt, który w wersji jeszcze pisanej na studiach utrzymał się na rynku i potrzebował usprawnień. Zajmujemy się nim rodzinnie do dzisiaj. Obecnie współpracujemy z kilkoma freelancerami, w tym od niedawna z Wietnamczykami, których zatrudniłem będąc na miejscu.

Były też i nieudane próby — tworzyłem sam lub ze znajomymi projekty związane z rekomendacjami do podróży czy IoT dla smart home, ale z różnych względów nie chwyciło.

W tak zwanym międzyczasie robię też konsultacje i trochę programowania dla firm z Polski. Dzięki elastycznym kontraktom mogę to robić w odpowiadającym mi zakresie czasu i lokalizacji, a zawsze jest też coś, czego można się przy okazji nauczyć.

Myślisz, że gdybyś został w Polsce szybciej podniósłbyś swoje umiejętności? Nauczyłbyś się więcej?

Musiałbym trafić do firmy oferującej ambitne wyzwania i współpracowników, od których mógłbym się uczyć. W korporacji takie możliwości raczej wymagały wyjazdu z kraju, bo najciekawsze projekty są w centrali. Natomiast scena startupowa w Polsce była i jest coraz bardziej prężna, więc potencjalnie taka możliwość jest. Uczymy się jednak w wielu wymiarach, z jednej strony są to twarde umiejętności techniczne, z innej doświadczenia ogarniania projektu od końca do końca, dopasowanie biznesowe pomysłów, praca z ludźmi, ale też i życiowe doświadczenia, jakie daje poznanie innych kultur i sposobu działania w innych krajach oraz podróże.

Wspomniałeś o ambitnych wyzwaniach. Jakie to wyzwania dla Ciebie?

Ambitne wyzwania to dla mnie rzeczy, których dotąd nikomu nie udało się stworzyć, a ponieważ technologia ciągle posuwa się do przodu, wiele z nich otwiera przed nami nowe możliwości. Z drugiej strony są potrzeby ludzkie, które dotąd były niemożliwe lub zbyt kosztowne do spełnienia. Miejsce, gdzie można te dwa punkty połączyć to niewątpliwie bardzo motywujące do działania środowisko. Dużo częściej oczywiście mamy do czynienia z zadaniami, które tylko dla nas samych są nowe, ale jednocześnie ich rozwiązania sprawiają satysfakcję, bo uczymy się i tworzymy coś, co jest jednak na świetnym poziomie technicznym. Choć wtedy bardziej mowa o wyzwaniach biznesowo-integracyjnych niż z samej istoty programowania.

Opowiedz o projektach, które stworzyłeś przez lata pracy. Który z nich zaciekawił Cię najbardziej?

Myślę, że najbardziej ciekawy był dla mnie projekt, który robiliśmy na studiach: był to język programowania Nemerle pod .NET. Łączył wiele technik i funkcjonalności, które do języków głównego nurtu zaczęły wchodzić dopiero 10-15 lat później lub dopiero są planowane. Projekt swego czasu zyskał trochę popularności i wsparcia deweloperów, jednak obecnie raczej jest już mocno niszowy.

Najbardziej rozwijająca była praca nad backendem wyszukiwarki internetowej. Technicznie wszedłem na zdecydowanie wyższy poziom, tworząc tak duże systemy, a praca w zespole była świetnym przeżyciem. Natomiast projekt, z którym jestem najbliżej związany, to rodzinny biznes. Budujemy systemy do głosowania — niewielkie urządzenia mobilne własnej produkcji i spinające je oprogramowanie sterujące.

Skąd pomysł na stworzenie własnego języka? Nie lepiej było napisać DSL?

Pomysłodawcą i głównym twórcą był mój kolega z roku Michał Moskal. Koncepcja była taka, aby stworzyć statycznie kompilowany język ogólnego zastosowania, który godziłby ze sobą koncepcje obecne wtedy głównie w językach akademickich (inferencja typów, generyki, struktury algebraiczne, metaprogramowanie) ze składnią i możliwościami języka i platformy z głównego nurtu / przemysłu (C# / .NET). Wtedy tego brakowało i nie byliśmy jedynymi, którzy próbowali (Scala, Groovy, Boo) i do dziś próbują zapełnić tę lukę (Kotlin, Swift, Rust).

O jakich technikach i funkcjonalnościach mówisz?

Obecnie to wydaje się normą, ale jeszcze ciut ponad dekadę temu takie rzeczy jak automatyczne wykrywanie typu zmiennych przez kompilator, funkcje lambda czy nawet typy generyczne kolekcji nie były dostępne w językach, których używało większość programistów.

To jednak nie koniec. To, co do C# wchodzi teraz, to typy algebraiczne, mechanizm ich rozbioru, krotki i kilka różnego rodzaju składniowych ułatwień, a to wszystko było już u nas. Kto wie w jakim stopniu nasze wybory projektowe wpłynęły na te obecne integracje i inne języki. Najbardziej jednak według mnie unikatową cechą jest system metaprogramowania, nad którym pracowałem. Pozwala on na programowe przetwarzanie kodu aplikacji (jak w Lisp), rozszerzanie składni głównego języka (zbudowanie własnego DSL-a kompilowanego jako część programu jest dość trywialne), czy wręcz na generowanie klas, pól, metod na podstawie atrybutów dodawanych w kodzie (ta akurat technika stała się dość popularna w innych językach, ale realizowana jest, jak w Javie, przez specjalny krok obok kompilacji, a w Nemerle każdy może sobie napisać coś w stylu projektu Lombok nie znając się nawet za bardzo na kompilatorach).

W jaki sposób przebiegały prace nad językiem? Od czego zaczęliście i w jaki sposób wybieraliście nowe funkcje do wprowadzenia?

Michał miał pomysł i napisał pierwszy kompilator w OCamlu, po czym przedstawił innym studentom gdzieś podczas przerw w zajęciach swoją wizję. Ja i jeszcze kilka osób zaczęliśmy mu pomagać, wkrótce powstał kompilator Nemerle napisany w Nemerle, a gdy zaczynał się kolejny semestr udało nam się zaproponować wykładowcom stworzenie seminarium w ramach studiów, na którym dyskutowalibyśmy decyzje projektowe i techniki implementacji języka. Zapisało się kilka osób i trwały burze mózgów, a gdy wracaliśmy do domu czy akademika było ostre kodowanie.

Dziś, jak mówisz, język jest bardziej niszowy. Co musiałoby się stać, żeby więcej osób zainteresowało się właśnie nim?

Było kilka powodów, dla których projekt nie stał się bardzo popularny. Według mnie głównym była relatywnie niska popularność i wieloplatformowość środowiska .NET — powstająca mniej więcej w tym samym czasie i oferująca część, ale dość podobnych, cech Scala stała się hitem prawdopodobnie dlatego, że Java jako taka miała większą społeczność i sama platforma była lepiej widziana w świecie opensource.

Na pewno jednak część naszych wyborów projektowych na to wpłynęła. Niektóre paradygmaty języków funkcyjnych próbowaliśmy może zbyt mocno narzucać programistom, a w części zabrakło doświadczenia i pragmatyzmu. Wreszcie to, co było dość istotnym aspektem systemu metaprogramowania, czyli dostęp do API kompilatora, sprawiło sporo problemów pod względem spójności i łatwości użycia… W zasadzie my się dopiero wtedy uczyliśmy projektować duże i skomplikowane systemy, API, itp.

Gdy skończyły się studia, trochę jeszcze zajmowaliśmy się projektem, ale praca odciągnęła nas do innych rzeczy. Co ciekawe, w tym czasie społeczność już była w stanie przejąć projekt, szczególnie grupa developerów .NET-owych z Rosji stała się bardzo aktywna i przez kolejne lata, aż do dzisiaj, opiekują się projektem, zrobili integrację z Visual Studio itp. Czasami widać na forum pomysł “nowego otwarcia”, odświeżenia składni i zrobienia łatwiejszego w użyciu kompilatora, ale nie wiem co z tego będzie, bo C# skopiował już bardzo dużo tego w czym Nemerle był lepszy, hahaha.

Najbardziej związany jesteś z projektem mobilnego systemu do głosowania. Z jakimi wyzwaniami wiąże się tworzenie tego niewielkiego urządzenia?

Tworząc tego typu urządzenie od zera pracuje się na styku elektroniki i programowania, a przy wyborze najprostszych możliwych komponentów trzeba napisać cały niskopoziomowy kod. Zmieszczenie w 1KB bootloadera ściągającego radiowo kod i aktualizującego firmware, siedzenie nad oscyloskopem śledząc sygnały z układów elektronicznych i z miernikiem sprawdzając pobór mocy podczas uśpienia procesora to były pewne wyzwania, ale i sporo zabawy. Do tego oczywiście dochodzi cały proces produkcji, np. projekt formy do wtryskarki, zachowanie plastiku w różnych sytuacjach, certyfikacja, szlifowanie protokołów radiowych do skali setek urządzeń. Dobrze mieć wtedy zespół uzupełniający się umiejętnościami.

Czym zajmujesz się dzisiaj?

Nasz produkt, Elector.pro, ostatnio przechodzi intensywny rozwój, więc inwestuję w niego najwięcej czasu i prowadzę mały zespół, w większości zdalnie, z którym dopisujemy nowe sposoby interakcji i przepisujemy dość mocno przestarzały już UI systemu.

Jakie masz plany na przyszłość?

Wiele wskazuje na to, że w najbliższym czasie wrócę i zostanę na dłużej w Polsce, gdyż mój szef z dawniejszych czasów prowadzi ciekawy startup związany ze sztuczną inteligencją. Praca z ciekawymi ludźmi i rozwój w dziedzinie wiedzy, którą uważam za istotną i przyszłościową, może zatrzymać mnie na dłużej w jednym miejscu.

Przestaniesz zatem być nomadą. Komu odradzasz ciągłe przeprowadzanie się i pracę w innym miejscu?

Tryb nomady wymaga przede wszystkim odpowiedniej motywacji i samodyscypliny. Brak typowej rutyny chodzenia do biura i skupienia się na pracy tak, jak wszyscy dookoła, wymaga wytworzenia sobie czegoś analogicznego samemu. Nie wszyscy to potrafią, ale na pewno łatwiej jest, gdy praca jest dla nas przyjemnością i traktuje się ją jako formę odpoczynku, np. od wycieczki w góry czy zwiedzania nowego miasta. Praca zdalna jest też dość izolująca, nie spotykamy się na co dzień ze znajomymi z pracy, trzeba nadrabiać poznawaniem ludzi w miejscu, gdzie się przebywa.


Kamil Skalski. Urodzony w Bydgoszczy absolwent informatyki na Uniwersytecie Wrocławskim. Zawodowo zajmuje się programowaniem od 15 lat, głównie systemów backendowych i niskiego poziomu. Współtwórca języka programowania Nemerle, przez 5 lat zajmował się rozwojem infrastruktury i silnika wyszukiwarki Google, obecnie CTO firmy produkującej systemy do głosowania Elector. Od 4 lat cyfrowy nomada łączy pracę z podróżami.

Patronujemy

 
 
Polecamy
Jak programista może wejść w nową rolę. Historia Moniki Wolak i Pawła Miry