inhire.ioBlogPraca w ITJak wytrzymać dekadę w jednej firmie IT i nie zwariować? Mikołaj Winczewski z Daftcode o rozwoju własnym i firmy

Jak wytrzymać dekadę w jednej firmie IT i nie zwariować? Mikołaj Winczewski z Daftcode o rozwoju własnym i firmy

Praca w IT
14/12/2020

Dołączył do warszawskiej fabryki startupów, gdy ta dopiero startowała z pierwszymi przedsięwzięciami. Dziś pełni rolę Team Leadera najstarszego zespołu deweloperskiego Daftcode i jednocześnie jest CTO najnowszego startupu ze stajni tego Venture Buildera. Mikołaj Winczewski opowiada o swojej drodze od stażysty do kadry menedżerskiej – o wyzwaniach nakręcających do działania i sposobach na łapanie dystansu w pędzącym świecie nowych technologii.

Jak zaczęła się Twoja przygoda z Daftcode?

Moja przygoda z Daftcode zaczęła się w 2011 roku, kiedy po obronie tytułu inżyniera zacząłem ponownie szukać pracy w IT. Daftcode szukał wtedy Ruby on Rails developera. Ja wcześniej pracowałem w innej firmie jako fullstack z PHP na backendzie, więc miałem jakieś doświadczenie w web devie.

Jak zmieniła się w tym czasie firma i Twoja rola?

Przyszedłem do Daftcode na staż, firma liczyła wtedy mniej więcej 7 lub 8 osób. Przez pierwsze 3–4 lata poszerzałem swoją wiedzę w dziedzinie programowania w Ruby, RoR, DevOps i uczyłem się zarządzania pracą w zespole. Tego ostatniego z dnia na dzień było coraz więcej. W pewnym momencie zapadła decyzja, żebym objął stanowisko Team Leadera w zespole, który zyskał piękna nazwę DevOne. Nazwa DevOne oznacza pierwszy zespół deweloperski w Daftcode i pozostała z nami do dziś, chociaż struktura firmy znacznie zmieniła się na przestrzeni lat. I tak oto 9 lat później jestem nadal w Daftcode: jednocześnie Team Leaderem DevOne oraz od niedawna CTO w nowym startupie Daftcode’u – Stery.

9 lat w jednej firmie IT to całkiem niezły wynik.

Wiem – kiedy czytam CV kandydatów rzadkością jest wynik powyżej 3 lat! Oczywiście miałem na przestrzeni tych 9 lat kilka kryzysów, ale za każdym, przy wsparciu zarządu, udawało mi się je pokonać. Pamiętam swój ostatni słabszy moment. Miałem wrażenie, że stoję w miejscu, czułem potrzebę zmiany, czułem się wypalony. Wziąłem wtedy dość spontaniczny, dłuższy urlop. Wyjechałem, dowiedziałem się czegoś o sobie i wróciłem z nową energią i spojrzeniem na świat.

Od tamtej pory jestem ewangelistą wyjazdów w pojedynkę i poszukiwania odpowiedzi na pytanie, czego wymagam od siebie, a nie od innych. Dzisiaj mogę stwierdzić z czystym sumieniem, że uwielbiam Daftcode i uwielbiam ludzi, z którymi tu pracuję. Nasze relacje mocno wybiegają poza relacje zawodowe i w takim środowisku czuję się naprawdę dobrze.

W Daftcode budujecie nowe startupy technologiczne od zera. Jak wygląda proces wyboru technologii dla nowego produktu i biznesu?

Po określeniu założeń projektu i tego, co chcielibyśmy zrobić, następuje etap konfrontacji tych pomysłów z dostępnymi technologiami na rynku. Żyjemy w czasach, gdzie budowanie monolitycznych aplikacji nie ma już sensu – głównie przez poziom skomplikowania aplikacji oraz utrudnione późniejsze rozwijanie tych aplikacji. Dlatego pierwszym krokiem zazwyczaj jest rozbicie pomysłu na mniejsze usługi. Następnie analizujemy każdą z nich, aby zdefiniować najważniejsze cechy, na których nam zależy. Kolejnym krokiem jest dopasowanie tych cech do danej technologii. Każda technologia ma swoje plusy i minusy. W przypadku startupu Stery wiemy na przykład, że zależy nam na szybkości wyszukiwania lotów, hoteli itp. Zdecydowaliśmy się na język programowania Go, który nam to ułatwi. W kwestii budowania logiki biznesowej padł wybór na Pythona. Łatwość kodowania i dostęp do bardzo dużej liczby sprawdzonych bibliotek pomoże nam w szybszy sposób zaimplementować wymagania.

Jak zabierasz się do tak złożonych zadań i decyzji, których skutki będą długofalowe dla nowego startupu?

Lubię podejście budowania matrycy, rozważania wszystkich plusów i minusów. Na początek zadajemy sobie pytanie, w jakich językach i frameworkach napisać daną aplikację lub serwis. Potem dodajemy punktacje w kolumnach odpowiednio dla, np.: szybkości zbudowania danej funkcji, kompetencji wewnątrz Daftcode lub zdobycia ich na rynku, łatwości rozwijania i wspierania oraz optymalizacji pod specyfikę danej aplikacji.

Takich pytań na początek jest kilka do każdego “micro serwisu”. Z nich powstaje swojego rodzaju przewodnik do stacku technologicznego. Decyzje dotyczą zazwyczaj wyboru języków programowania, frameworków, baz danych i infrastruktury, czyli wyboru cloudu, wyboru pomiędzy serverless czy k8s, etc.

Przeczytaj także – Historie kobiet, które odmieniły świat IT.

Wspomniałeś o znudzeniu, wręcz początkach wypalenia. Co, oprócz urlopu w pojedynkę, dodało Ci wiatru w żagle?

Myślę, że nowe wyzwania technologiczne, jakie mamy w Stery. Przy nowej spółce i nowym produkcie mamy ambitne podejście do systemu wyszukiwania lotów i hoteli. Chcemy, aby było ono bardzo szybkie i aktualizowane częściej niż u konkurencji. Tutaj jest duże pole do popisu, jeśli chodzi o dobór odpowiednich algorytmów wyszukiwania oraz projektowanie optymalnej bazy grafowej połączeń. Jest też kilka wyzwań związanych z samą logiką biznesową, np. zaawansowane polityki podróży czy sam zakup odpowiednich biletów w dowolnych konfiguracjach. Muszę też przyznać, że nasz UX wykonuje świetną robotę przy projektowaniu platformy i przygotował kilka bardziej wymagających designów dla frontendu. Nie ma czasu na nudę i mam się gdzie wyżyć!

Pełnisz rolę CTO i Team Leadera. Jakie kompetencje wśród pracowników cenisz najbardziej?

Przede wszystkim pracownik powinien lubić to, co robi. Piekarz musi kochać wypieki, a programista po prostu musi lubić programować i kropka. Nie widzę możliwości rozwoju i dobrego wypełniania zadań, kiedy ktoś nie lubi swojej pracy. Pomijając kompetencje twarde typu Python 3.7, znajomość bibliotek standardowych itp., liczą się też kompetencje miękkie. Ważne jest pozytywne nastawienie – taka postawa “can do”, która rozwiązuje wiele problemów. Z kolei empatia bardzo pomaga przy komunikacji wewnątrz zespołu, między technologiami itp. Liczy się też szczerość – przyznanie się do niewiedzy wymaga bardzo dużo odwagi, a może bardzo usprawnić funkcjonowanie zespołu.

Rekrutując do swoich zespołów, zwracam też uwagę na to, czy kandydat umie dobrze zarządzać własnym czasem i czy ma potrzebę ciągłej nauki. W świecie IT to bardzo ważny element, bo tu wszystko zmienia się w zawrotnym tempie. Nadążanie za tym tempem powinno napędzać dobrego developera.

STERY – Daftcode new venture

Wszystkich zainteresowanych kandydatów zapraszam na nasz profil na inhire lub do bezpośredniego kontaktu.