Od „informatyka” do CEO firmy w Teksasie. Historia Damiana Nowaka
Damian Nowak w 2015 roku przeniósł się do Stanów Zjednoczonych, by pracować dla firm spoza Polski. Wcześniej parał się różnymi zajęciami – naprawiał komputery, tworzył strony internetowe, za sobą ma także doświadczenie prowadzenia własnego portalu geograficznego. Te wszystkie i wiele innych umiejętności doprowadziły go do otwarcia własnej firmy, pozyskania miliona dolarów finansowania i do miejsca, w którym właśnie jest. Poznajcie Damiana i jego niesamowitą historię (to pierwsza część naszej rozmowy, drugą opublikowaliśmy tydzień później).
Od 2000 roku (gdy miałeś 12 lat) przez blisko pięć lat byłeś “freelancerem”, czyli… naprawiałeś komputery. Kiedy zainteresowałeś się programowaniem?
Było to chyba właśnie około roku 2000, gdy w czasopiśmie “CD-Action” pojawiła się pierwsza część kursu Turbo Pascala. W podobnym czasie dołączyłem do “redakcji” e-zina “decha” jako redaktor i z czasem zacząłem pomagać redaktorowi naczelnemu o nicku “Anzelmo” w składzie gazetki, która była w HTML-u.
Rok czy dwa później, gdy już HTML miałem “w małym palcu”, zadałem Anzelmowi pytanie: “Jak zrobić, żebym nie musiał powtarzać headera i footera w każdym pliku HTML?”. Anzelmo powiedział, że do tego potrzebuję PHP i tak się zaczęła moja przygoda z dynamicznymi stronami internetowymi, a później aplikacjami internetowymi.
Pamiętam też, że na lekcjach informatyki w pierwszej klasie gimnazjum, czyli w wieku 13 lat, umiałem już Turbo Pascala do tego stopnia, że nauczyciel dawał mi jakieś zadania z koła naukowego informatyki z liceum.
Przez następne pięć lat zajmowałeś się – także jako freelancer – pracą nad małymi lokalnymi stronami, głównie w PHP, CSS i HTML. Pamiętasz pierwsze zlecenie?
Zdecydowanie! Ojciec mojego kolegi ze szkoły, pan Piotr zajmujący się kowalstwem artystycznym, rozumiał, że internet to sposób na prezentację swojej sztuki klientom w całej Polsce. Strona nie zachowała się nawet w web.archive.org, ale, cytując klasyka, wspaniała to była strona i nie zapomnę jej nigdy. Napisana została w jednym pliku HTML – ot, prawdziwa single page application!
Jak wyglądał wówczas najtrudniejszy projekt? Jak rozwiązałeś problem z nim związany?
Żadna z prac najemnych nie była trudna. Strony internetowe, nawet te dynamiczne, to zwykłe “rinse and repeat”. Aktualności? Check. Kilka stron informacyjnych? Check. Galeria zdjęć? Check. Nic skomplikowanego. Moim najtrudniejszym projektem, jeszcze przed zdobyciem prawdziwej pracy, było GeoZone.pl. Kolega z e-zina, Rafał “snaakee” Czerwonka, wpadł na pomysł portalu internetowego o geografii. Napisałem własnego CMS-a w PHP, którego przepisałem od zera kilka razy. Przy okazji, na portalu zarabialiśmy do 2000 zł miesięcznie na czysto per osoba. Zaznaczę, że byłem wtedy w liceum i miałem 17 lat.
2000 zł na miesiąc na osobę w tak młodym wieku – świetny wynik. Na czym zarabialiście?
Głównie na spamie e-mailowym i trochę na reklamach bezpośrednio na stronie. Pełny dostęp do treści wymagał zalogowania. Nasi odwiedzający musieli zarejestrować się, wyrazić zgodę na otrzymywanie wiadomości marketingowych od naszych klientów, i potwierdzić swój e-mail poprzez kliknięcie linka aktywacyjnego. To była pierwsza część układanki.
Druga to pozyskanie klientów na reklamy, do tego używaliśmy Allegro. Nasza oferta na mailing reklamowy była jedną z najdroższych per e-mail, ponieważ mieliśmy uczciwie pozyskaną bazę, zawsze świeżą, o bardzo wąskiej demografii – uczniowie, studenci lub nauczyciele. Zachowała się nawet oferta – archiwum.allegro.pl.
Ten sukces nie poprowadził Cię do tego, by tworzyć takie małe projekty i na nich zarabiać?
GeoZone to wielki sukces. W swoim czasie GeoZone było na pierwszym miejscu w Google na wiele różnych zapytań, w tym “portal geograficzny” oraz, od czasu do czasu, “geografia”. W teorii była to koncepcja, którą można by zreplikować i odpalić HistoryZone albo PhysicsZone. Największym problemem w tego typu projektach jest zawartość. Ktoś musi pisać content i bynajmniej nie chciałem być to ja! Content musi być porządny, wartościowy, pisany z pasji – nie przez “eksperta” od streszczeń z Fiverra. O ile content dla GeoZone to nie był problem, bo snaakee był laureatem olimpiady geograficznej i lubił pisać, to CokolwiekZone nie miałoby pisacza.
Poza tym, choć 2000 złotych na miesiąc dla licealisty to dużo, to przy pełnej profesjonalizacji byłby to biznes ujemny. Poza tym efektywność e-maili reklamowych malała z czasem, dzięki popularyzacji Gmaila. Dzisiaj ten biznes modelowy nie działa, bo wszystko trafia do spamu. Reklamy na stronach też nie działają, co widać po kolejnych upadających lub upadłych portalach informacyjnych. Widać to na przykładzie choćby Univision, które w 2016 roku kupiło kilka portali internetowych, m.in. Gizmodo i Kotaku, za $135 milionów, a trzy lata później sprzedało je z dużą stratą.
Zatrzymajmy się na chwilę. Pamiętasz jak w 2010 roku wyglądał rynek programistów w Gdańsku? Jakie technologie były wówczas popularne?
Trochę przez mgłę. Java pojawiała się przy większych firmach ze skomplikowanymi systemami. PHP pojawiało się zwykle w małych firmach i nieskomplikowanych projektach. Pamiętam jedną firmę, która specjalizowała się w Ruby. Coś tam było w C#, ale nigdy nie byłem fanem Windows i aplikacji desktopowych, więc to odpadało z definicji.
Wierzyłem, że aplikacje internetowe to przyszłość, bo łatwiej zagwarantować poprawne działanie aplikacji. Coś tam w C++ też było, ale nie pamiętam ile, bo programowanie w językach o niskiej sile ekspresji nigdy mnie nie jarało. Jest to zapewne powód, dla którego ostatecznie porzuciłem Javę dla Ruby’ego.
Dziś zrobiłbyś inaczej? Nie odstawiłbyś na bok Javy?
Nadal bym odstawił! I tu nie chodzi o Javę. Każdy kolejny język programowania to kolejne narzędzie w warsztacie programisty. Narzędzie, które ma wiele podobieństw do innych narzędzi, które już dobrze znasz, więc nie jest tak trudno się go nauczyć. W moim życiu odstawiłem wiele języków. PHP, JavaScript, Java, Groovy. Do każdego z tych narzędzi mogę wrócić. Każde z nich mogę zdebugować, a nawet i naprawić. Mimo że Ruby to mój ulubiony język, a Rails to mój ulubiony przepis na aplikację internetową, je w zasadzie też już odstawiłem, bo ostatnio najwięcej czasu spędzam w DevOps – z naciskiem na build pipelines oraz continuous delivery.
Jak znalazłeś pierwszą pracę?
W okolicach końca pierwszego roku studiów poszedłem na targi pracy zorganizowane na moim wydziale. Jedną z firm, która się tam wystawiała, był Atlassian. Wiesz, ta firma od JIRA i Confluence. Ci goście byli jacyś… inni. Nie mieli ze sobą ludzi z HR, gadali w zrozumiałym języku, to znaczy technicznym. Gadali o testowaniu kodu, code review, extreme programmingu. Ich ulotki były wyłącznie po angielsku.
Opisane perks były bardzo interesujące – takie, które podobałyby się nerdom, a nie typowym pracownikom w korpo. Mówili, że ze względu na wymagany poziom zaawansowania, zatrudniają wyłącznie absolwentów lub studentów na ostatnim roku. Zachowałem ich ulotki. W zasadzie to zachowałem wszystkie ulotki, nie tylko od Atlassian. Umieściłem je wszystkie w segregatorze. Atlassianowe były na samym przedzie.
Każdy student informatyki musi “odbębnić” bodajże 4 czy 6 tygodni “praktyki” w zawodzie. Mimo że studenci wykonują je typowo na trzecim lub przed czwartym rokiem, ja zdecydowałem się je zrobić pod koniec drugiego roku, ale na trochę innych zasadach. Nie chciałem “odbębniać” bezcelowych rzeczy. Chciałem iść do faktycznej pracy full-time przez całe wakacje, popracować z profesjonalistami, nauczyć się czegoś oraz zarobić. Dość już miałem pisania crapu w PHP. Tak więc otworzyłem mój segregator z ofertami z targów pracy 2008 i 2009, i jedyne, co mnie przekonywało, to praca w Atlassian.
Co było dalej z tym Atlassianem?
Na ich stronie w sekcji Careers nie miała żadnego słowa o biurze w Gdańsku. Strona internetowa z ulotek nie działała – pojawiał się błąd 404. Wpisałem adres do Google Map i pojawił mi się jakiś “Spartez”. Według ich strony internetowej była to firma konsultingowa w ekosystemie Atlassiana. OK… Udało się. Zaaplikowałem i dostałem się. Byłem pierwszym studentem, który zaczął pracę w Spartez. Dużo się tam nauczyłem, przede wszystkim od moich dwóch osobistych mentorów, Wojtka i Sławka. Bez ich pomocy nie zaszedłbym tak daleko.
Podobno to pierwsza praca w zawodzie daje nam najwięcej lekcji. Pamiętasz najważniejszą z nich?
Tak. Oto ona, nie bądź mną i nie pisz czegoś takiego:
public void handle(request, response) { if (!auth.isAuthorized(user)) { response.setStatus(Response.AccessDenied); } else { response.setStatus(Response.OK); } // business logic here }
A tak bardziej na serio, moja najważniejsza lekcja ze Spartezu to dbałość o jakość. Jako developer musisz upewnić się, że twoje rozwiązanie działa we wszystkich przypadkach. Nie tylko w tym jednym, najprostszym. Musisz nauczyć się samodzielnie identyfikować wartości brzegowe i je testować. Musisz nauczyć samodzielnie identyfikować luki w specyfikacji biznesowej i pytać o nie swojego product ownera. Do dziś pamiętam, jak Wojtek testował mój nowy feature i znalazł ponad 10 bugów i niedociągnięć w kilkuminutowej sesji walidacji. Dzisiaj to ja jestem “Wojtkiem” dla moich pracowników.
Rozpoczęcie pracy w Spartez to niezaprzeczalnie punkt krytyczny w mojej karierze. Dzięki Wojtkowi i Sławkowi przestałem być “zwykłym” developerem wykonującym średniawą robotę, a stałem się profesjonalistą, który dba o szczegóły.
Myślisz, że gdybyś zaczął od pracy w korporacji albo firmie produktowej, to Twoja ścieżka kariery potoczyłaby się inaczej?
Spartez z roku 2012 ciężko jakoś precyzyjnie skategoryzować. Z jednej strony, była ta grupa ośmiu kolegów, którzy głównie wykonywali stały kontrakt dla Atlassian, pracując nad core’owymi produktami Atlassiana. O ile dobrze pamiętam, Atlassian miał otworzyć biuro w Polsce, ale Great Recession pokrzyżowało plany i współpraca wystartowała jako B2B. Była to więc formalnie firma konsultingowa Spartez, ale w praktyce jeden z wielu dev teamów korporacji Atlassian.
Z drugiej strony, byłem pierwszym pracownikiem Spartezu, który nie wykonywał usług dla Atlassian. Pisałem pluginy do JIRA i Confluence, które Spartez sprzedawał. Tak więc byłem w faktycznej sekcji produktowej Spartezu!
Praca w korporacji nigdy mnie nie interesowała, a przynajmniej nie na niskim stanowisku, a jako student tylko niskie stanowisko było w zasięgu ręki. Jestem bardzo energiczny i “głośny”. Zawsze mam dużo do powiedzenia i tak się też składa, że to, co mówię, jest wartościowe. Międzynarodowe korporacje mają zbyt dużo warstw, byś miał jakikolwiek wpływ na to, co nie jest twoim przydzielonym zadaniem.
Dodatkowo rozmawiasz tylko z osobami równymi sobie lub niewiele wyżej w hierarchii. Jesteś bardzo daleko od osób, które podejmują decyzje. Dlatego przez kilka pierwszych lat faktycznej pracy wybierałem mniejsze firmy, gdzie byłem blisko osób decyzyjnych, ucząc się od nich produktu i biznesu. Korporacja by mi tego nie dała. Tam musiałbym udowadniać swoje walory przez długie lata, a awanse miałyby w większości wyłącznie efekty materialne – nadal byłbym gdzieś na szarym końcu w hierarchii. Wyrobnikiem, a nie myślicielem.
W Spartez pracowałeś przez blisko trzy lata. Dlaczego zakończyłeś współpracę z tą firmą?
Przychodzenie do pracy w biurze to nie mój ulubiony styl pracy. O ile było to super, gdy jako junior uczyłem się pracy w zespole, technik extreme programming i szlifowania mojej Javy, tak z czasem stałem się coraz bardziej niezależny i stałem się czarną skrzynką, do której wrzucały się taski, a z której wychodził kod całkiem dobrej jakości. Nie umiałem znaleźć motywującego powodu, by przychodzić codziennie do pracy na 8 godzin, i to na rano.
Brakowało mi pracowania z domu na moim własnym komputerze przy moim własnym biurku. A taki był przecież mój styl pracy jeszcze przed Spartezem, jak i codziennie po przyjściu do domu z pracy. Dodatkowo w domu masz temperaturę jaką chcesz, ciszę lub głośną muzykę wedle uznania, i nikt nie będzie ci wyliczał liczby monitorów. A mam ich obecnie cztery. Oto zdjęcie mojego obecnego biura:
A tak wyglądało 5 lat temu, jeszcze w Polsce:
Czego potrzebowałeś w tamtym czasie? Pytam, żeby pokazać, jakimi potrzebami kieruje się młody programista szukający wyzwań.
W tamtym czasie chłonąłem wiedzę. Jeździłem na każdą konferencję związaną z Javą, JVM lub technikami programowania. Trochę później doszedł też Ruby. Uczyłem się tych rzeczy od mądrzejszych ode mnie za dnia, a potem piłem piwo i gadałem z tymi samymi ludźmi z wieczora. Poznałem w taki sposób wiele znanych osób ze świata programistów w Polsce, np. założycieli SoftwareMill, do których poszedłem pracować po Spartezie!
Jak przebiegał proces rekrutacji do SoftwareMill?
Pogadaliśmy o kodzie, o technikach pisania kodu i jakoś to przeszło. Przed tą rozmową byłem już znany co nieco w szeregach SoftwareMill jako młody, ambitny i szybko rozwijający się developer o bardzo specyficznym stylu bycia… Była to w owym czasie jedyna firma, która zatrudniała Javowców do pracy zdalnej i płaciła dobre pieniądze “na fakturę”. Nigdy nie przepadałem za ściśle regulowaną i mocno opodatkowaną umową o pracę, więc był to strzał w dziesiątkę.
W SoftwareMill pracowałeś na stanowisku seniora. Co to znaczyło i czy dziś ta definicja wygląda inaczej?
W owym czasie czasie SoftwareMill zatrudniał wyłącznie seniorów. Nie chodziło tam jednak o “staż” w pracy, ale o jakość pisanego kodu, rozumienie specyfikacji biznesowych oraz jakość współpracy z zespołem. Jeśli jesteś wyjątkowo dobry w tych trzech rzeczach, jesteś seniorem. Uważam to za prawdziwe również dzisiaj i również u mnie w Ameryce. To nie staż, certyfikat lub dyplom mówią kim jesteś, lecz rezultaty twojej pracy.
Kilka lat “treningu” pod skrzydłami fachowców ze Spartezu pomogło wznieść się na wyższy poziom. 5 lat freelancingu w budowaniu stron internetowych w PHP, o ile nie jest czymś “seniorskim”, dało mi dużo obeznania z programowaniem i rozumieniem biznesu, a Spartez pomógł z technikami programowania oraz pracą w zespole.
Warto coś dodać o jakości kodu… Wojtek Seliga, jeden z założycieli Spartezu, w swojej prelekcji o job interviews powiedział o “certyfikowanych analfabetach Javowych”. Mowa o pracownikach korporacji, którzy jakoś się tam się prześlizgiwali mimo mizernych efektów ich pracy i po dziesięciu latach nadal nie wiedzą, że lepiej użyć strumieni do parse’owania struktur danych o nieznanej wielkości. Peter Norvig z Google powiedział kiedyś, że “being a winner at programming contests is a negative factor for performing well at the job”.
Pracowałeś jako kontraktor? W jaki sposób poradziłeś sobie ze sprawami podatkowymi?
Własna działalność gospodarcza. Rejestracja VAT EU i faktura 0% “międzywspólnotowe świadczenie usług” dla podmiotów w EU. Faktura “zwolniony z VAT” i “reverse charge” dla podmiotów poza EU. Całkiem proste sprawy, może dlatego, że miałem do czynienia z biznesem i podatkami już od czasu liceum, kiedy moje usługi były oficjalnie pod moim nazwiskiem, ale imię się nie zgadzało…
W tzw. międzyczasie byłeś CEO AtlasHost. Dlaczego otworzyłeś swoją firmę? Pensja seniora była za niska?
Jako ambitnemu developerowi zawsze mi było mało. Programowania, rzecz jasna, ale kaski też nigdy za wiele. Programowałem podczas roboty, jak i po robocie. AtlasHost był połączeniem dwóch światów, w których się obracałem: ekosystemu aplikacji firmy Atlassian (JIRA, Confluence), które poznałem w Spartez oraz mojego doświadczenia z serwerami Linux, które poznałem przy okazji GeoZone.pl.
Wraz z kolegą ze studiów otworzyliśmy firmę hostującą aplikacje firmy Atlassian. Był to mój pierwszy poważny biznes zorientowany na zagraniczne firmy. AtlasHost nauczył mnie przede wszystkim obsługi klienta oraz pogłębił moją wiedzę w temacie serwerów, a konkretniej wirtualizacji. Sprzedaliśmy tę firmę w roku 2014, gdy stało się jasne, że Virtkick – który jest nowym, świeżym podejściem do tematu wirtualizacji – zaczyna wyglądać bardzo obiecująco.
O tym, jak potoczyły się dalsze losy Damiana, w jaki sposób pozyskał milion dolarów finansowania na swój projekt oraz o tym, jak zmienił się jego dzień pracy, gdy przestał zajmować się głównie programowaniem, a rozwijaniem własnej firmy – dowiecie się za tydzień, w drugiej części wywiadu.
Damian Nowak. CEO w Virtkick. Inżynier oprogramowania, menedżer i właściciel firmy z siedzibą w Teksasie. Dzięki temu, że pracuje zdalnie, cieszy się wyjątkowymi swobodami: spędza więcej czasu z rodziną i słucha muzyki z prawdziwych głośników. Od 2012 roku w trybie remote – za sobą ma pracę dla takich firm jak SoftwareMill, 8×8 Inc., AtlasHost oraz Tenfold.