inhire.ioBlogPraca w ITDziesięć lat pracy, niezliczone możliwości rozwoju — rozmowa z Pawłem Dyrkiem z Codete

Dziesięć lat pracy, niezliczone możliwości rozwoju — rozmowa z Pawłem Dyrkiem z Codete

Praca w IT
23/04/2020

Jak zatrzymać programistę na dekadę w jednej firmie? Odpowiedź na to pytanie zna krakowski software house Codete. Zapytaliśmy pracującego w niej już od dziesięciu lat Pawła Dyrka, obecnie pełniącego funkcję Technology Consulting Managera, jak wygląda praca w Codete i jakie daje możliwości rozwoju specjalistom z branży IT.

Opowiedz proszę, czym zajmuje się Codete? W obszarze jakich technologii się poruszacie?

Codete to software house, który od 2010 roku wspiera firmy we wszelkich aspektach technicznych i pomaga im urzeczywistnić postępującą cyfryzację w wielu obszarach biznesu. Obecnie w Codete pracuje 150 osób, z których 120 to programiści. Mamy dwa biura, w których rozwijamy oprogramowanie — główną siedzibę w Krakowie oraz mniejsze biuro w Lublinie. Współpracujemy z wieloma firmami, głównie z regionu DACH i USA.

W naszych codziennych zadaniach posługujemy się najnowocześniejszym stackiem technologicznym, dzięki czemu jesteśmy w stanie udzielić naszym klientom wsparcia w zakresie praktycznie każdej technologii, będącej obecnie w powszechnym użyciu. Zawsze staramy się dopasować odpowiednią technologię do projektu. Dla projektów enterprise będą to najczęściej technologie oparte o JVM (np. Java, Scala, Kafka, Spark). Dla rozwiązań webowych typowymi technologiami są PHP, Python czy JavaScript we wszelkich odmianach. Z kolei aplikacje mobilne mogą być czy to natywne (Swift/Kotlin), czy też hybrydowe (Xamarin, Flutter albo React Native).

Codete w ramach swoich usług realizuje też projekty R&D, świadczy usługi audytowe i konsultacyjne, tworzy też dedykowane zespoły programistyczne oraz dostarcza gotowe oprogramowanie wykonane wg projektu.

Jak wygląda proces wytwarzania oprogramowania w Waszej firmie?

Nie ma jednego, uniwersalnego procesu. W Codete jesteśmy zwolennikami metodyk Agile’owych i posiadamy dużą wiedzę oraz doświadczenie w tym zakresie. W zależności od zapotrzebowania danego projektu, zespołu, jak i dynamiki zmian w zakresie prac, staramy się zawsze tak dobrać i dopasować proces wytwarzania oprogramowania, by otrzymać optymalne rezultaty.

W środowisku IT toczy się wiele debat pomiędzy zwolennikami różnych metodyk. Ja wolę traktować różne metodologie jako alternatywy i dobierać je w zależności od potrzeb — projekty bardziej nastawione na maintenance, czyli utrzymanie oprogramowania (np. z dużym odsetkiem zadań przychodzących z supportu) przebiegają sprawniej w procesach kanbanowych, a budowanie aplikacji od podstaw realizuje się efektywniej w procesie Scrum. Większość metodyk zaleca, by zespół pracował razem, najlepiej w jednym pokoju. W obecnych czasach, kiedy firmy mocno skalują się również geograficznie, jest to wyzwanie, które zawsze musimy zaadresować, przede wszystkim przez prowadzenie odpowiednich procesów komunikacyjnych.

Niezwykle istotnym celem, który przed sobą stawiamy, jest transparentność naszego procesu i aktualnego stanu prac. Mamy świadomość, że dla części naszych klientów to są pierwsze kroki z outsourcingowymi zespołami, więc chcemy ich przeprowadzić przez tę drogę w najlepszy możliwy sposób.

Przeczytaj także – Motywacja do pracy. Przewodnik bardzo motywujący.

W jaki sposób i jak często osoby techniczne komunikują się z biznesem i z klientami?

Wierzymy, że przy zespołach outsourcingowych i generalnie przy pracy zdalnej, komunikacja jest najbardziej istotnym aspektem. Organizując nasze zespoły, staramy się unikać typowych „proxy-managerów”, którzy niestety często tworzą wąskie gardła komunikacyjne. Zdecydowanie wolimy układ, w którym każdy członek zespołu ma bezpośredni kontakt z osobami odpowiedzialnymi za komunikację po stronie klienta, co pozwala na rozwiązywanie problemów jak tylko się pojawią i buduje lepszą relację z klientem, który ma też bliższy kontakt z budowaną aplikacją.

Poza komunikacją ad-hoc, oczywiście są pewne stałe ceremoniały, w trakcie których zespół komunikuje się z klientem. Najważniejszym takim ceremoniałem, zarówno z perspektywy zespołu, jak i biznesu, jest demo. Każda iteracja pracy powinna się kończyć prezentacją aktualnego stanu aplikacji, co pozwala biznesowi lepiej adaptować dalsze plany (często łatwiej jest doprecyzować pewne wymagania, gdy zobaczy się już część aplikacji), jak i buduje w zespole poczucie celu — każdy etap pracy kończy się pokazaniem czegoś, co da się już „dotknąć”. Tego typu stałe ceremoniały, tak samo jak planowanie pracy, zazwyczaj odbywają się co iterację, typowo co dwa tygodnie.

Czym Twoim zdaniem Codete przyciąga do siebie specjalistów? Dlaczego ludzie chcą u Was pracować?

W Codete mamy aktualnie około 35 aktywnych projektów. Daje to ogromne pole do znalezienia odpowiedniego projektu dla siebie, zwłaszcza że zdecydowana większość z nich opiera się na najnowszym stacku technologicznym. W większości projektów to my odpowiadamy za techniczne decyzje, więc wybieramy odpowiednie narzędzia. Mamy też

projekty oparte o rzadziej używane technologie, takie jak Blockchain czy techniki związane z big data i data science.

Aktualnie pracuje u nas ponad 100 programistów, z których duża część to seniorzy, co pozwala nam na aktywną wymianę wiedzy wewnątrz firmy i możliwość ciągłego rozwoju.

A jak Ty trafiłeś do Codete?

Przez przypadek. 🙂 Przez większość studiów pracowałem jako barman, co było dla mnie formą realizacji mojej ówczesnej pasji. Podczas studiów magisterskich zacząłem się rozglądać za pracą „w zawodzie” i rozważałem różne opcje, zaczynając od najbardziej zbieżnych z moim profilem, czyli programista C++, najprawdopodobniej w jakiejś korporacji (zresztą rozmawiałem wtedy z kilkoma).

Tak się złożyło, że jedne z zajęć na mojej uczelni prowadził Karol Przystalski — teraz CTO w Codete, a wtedy doktorant. Kiedyś w czasie ćwiczeń Karol oznajmił, że zakłada swoją firmę programistyczną i zapytał, czy ktoś z nas miałby ochotę do niej dołączyć. Stwierdziłem, że do korporacji jeszcze zdążę, że może warto spróbować, a nuż będzie to coś ciekawego. W ten sposób dołączyłem do Codete jako jeden z czterech pierwszych programistów.

Jak wyglądała Twoja ścieżka rozwoju w firmie?

Muszę przyznać, że udało mi się przejść przez wiele etapów rozwoju zawodowego wraz z rozwojem firmy. Zacząłem jako Web Developer, z PHP jako główną technologią. Co prawda, w tamtych czasach zajmowałem się również front-endem i wszelkimi aspektami DevOps-owymi, czyli łączyłem różne role, jak to często bywa w startujących firmach. 🙂 Później w naturalny sposób, wraz z nabraniem doświadczenia, zostałem seniorem.

Projekty rozwijały się, aż w pewnym momencie pojawił się zespół na tyle duży, że wymagał pierwszego Team Leadera w Codete, a ja nim zostałem. Z czasem pojawiły się następne projekty wymagające wsparcia. W chwili, kiedy zacząłem zajmować się drugim projektem, przyjąłem rolę Project Managera, a kilka projektów później — General Project Managera. Wówczas miałem pod sobą naprawdę sporo projektów.

W ostatnich latach skupiam się głównie na tematach konsultacyjnych i audytowych, a moje obecne stanowisko to Technology Consulting Manager.

Co sprawiło, że tak długo pracujesz w jednym miejscu? Dla osoby ze świata IT to chyba dużo powyżej średniej?

Tak, zdecydowanie. 🙂 Myślę, że było to możliwe głównie dlatego, że przez tę dekadę firma mocno się rozwijała i moja rola ciągle ewoluowała wraz z zapotrzebowaniem — praktycznie co 2-3 lata zmieniał się zakres moich obowiązków. Cały czas czułem, że mogę uczyć się czegoś nowego.

Bardzo angażowałem się też na pierwszej linii, w kontaktach z klientami i potencjalnymi partnerami, co pozwoliło mi często uczestniczyć w ciekawych wydarzeniach. Miałem okazję wystąpić jako jeden z głównych mówców (tzw. keynote) na Polish Tech Night w Berlinie, czy być jurorem w konkursie dla startupów organizowanym przez Alibabę, co dało mi możliwość poznać raczkujące firmy, które później odniosły sukces, przykładowo SatoshiPay.

Przez ostatni rok pełniłem też rolę Interim CTO dla naszego klienta z zespołem programistów w Barcelonie, co pozwoliło mi sprawdzić się w tej roli w warunkach bojowych. 🙂

Czym aktualnie zajmujesz się w Codete?

Obecnie moim głównym zajęciem jest consulting. Oznacza to bliską współpracę z zespołami sprzedaży i rekrutacji, które staram się wspierać jeśli chodzi o aspekty techniczne. W ramach usług Codete, wspieram obecnych i potencjalnych klientów w decyzjach związanych z technologiami, jak i w optymalizacji procesów wytwarzania oprogramowania. Ostatnim, bardzo dużym dla mnie wyzwaniem, o którym wspomniałem już wcześniej, było pełnienie roli tymczasowego CTO dla naszego klienta i organizacja zespołów technicznych w Barcelonie.

Jesteś również zaangażowany w proces rekrutacyjny. Jakie kompetencje i umiejętności cenisz w kandydatach najbardziej?

Podczas rozmów kwalifikacyjnych staram się zawsze ocenić kandydata w trzech kwestiach: znajomości technologii (oczywiście tej, w której mieliby pracować na stanowisku, na które aplikują), ogólnych umiejętności i wiedzy programistycznej, a także ich podejścia do rozwiązywania problemów.

Oczekuję, że kandydat będzie aktywnie zainteresowany technologią, którą zajmuje się na co dzień. Technologie zmieniają się bardzo często i niezwykle istotne jest bycie na bieżąco. Jeśli chodzi o ogólną wiedzę, to wiele umiejętności i zasad wytwarzania oprogramowania jest niezależnych od technologii, np. wzorce projektowe czy podstawowe algorytmy. Zawsze wyznawałem zasadę, że programista jest programistą, niezależnie od języka, w którym pisze, to właśnie staram się zweryfikować. Ostatnim etapem jest rozwiązywanie problemów. Zazwyczaj jest to konkretne, praktyczne wyzwanie — wspólnie z kandydatem przechodzimy przez proces myślowy prowadzący do jego rozwiązania. Interesują mnie pytania, które zadaje i rozwiązania, które proponuje.

Jeśli miałbyś udzielić jednej rady dotyczącej rozwoju nowicjuszom z szeroko rozumianej branży IT byłoby to…?

Przede wszystkim programiści powinni starać się jak najlepiej rozumieć to, co tworzą — nie tylko w kwestiach technicznych, ale również funkcjonalnych czy biznesowych. Coraz częściej ważniejsza jest umiejętność doradzenia klientowi, jak zrobić dobry produkt, który pomoże mu odnieść sukces, niż ewangelizacja techniczna. Coraz bardziej liczy się kompleksowe podejście do wytwarzania oprogramowania.

—-

Bio Paweł Dyrek — Technology Consulting Manager w Codete

Doświadczony programista, entuzjasta technologii i metodyki Agile. ​Uzyskał tytuł magistra informatyki na Uniwersytecie Jagiellońskim w Krakowie w 2016 roku, obecnie pracuje jako Technology Consulting Manager w Codete. Ma wieloletnie doświadczenie w prowadzeniu międzynarodowych projektów z wykorzystaniem najnowocześniejszych technologii. Współpracował zarówno ze startupami, jak i korporacjami. Na co dzień wspiera managerów w podejmowaniu technologicznych decyzji, które pomogą ich firmom rozwinąć skrzydła. Przeprowadza audyty i doradza wielu biznesom. Jego kompleksowe podejście i oko do detali pozwalają mu kierować kilkoma zespołami programistów równocześnie i z sukcesem doprowadzać projekty do końca.