inhire.ioBlogPraca w ITStep by step – od studenta do DevOps Engineer’a

Step by step – od studenta do DevOps Engineer’a

Praca w IT
Praca w IT
25/08/2022

Mateusz Janczura w Sente pracuje blisko 2 lata i pełni funkcję lidera komórki DevOpsów. Sam również jest zatrudniony jako DevOps Engineer. Jak łączy te dwie role? Z jakich narzędzi korzystają w zespole? Poznaj jego historię.

Mateusz, na początek powiedz, co zadecydowało o Twoim dołączeniu do Sente

Pierwsze moje doświadczenie z firmą Sente miało miejsce w październiku 2019 roku na drugim roku studiów. Brałem wtedy udział w Akademii Wiedzy SQL, czyli warsztatach, w których pod okiem doświadczonej osoby można otrzymać darmową dawkę praktycznej wiedzy.

Warsztaty zrobiły na mnie bardzo pozytywne wrażenie. Miałem możliwość podjąć się ciekawych dyskusji, zadawać najróżniejsze pytania, na które prowadzący cierpliwie odpowiadał oraz poznać klimat Sente.  Osoby z mojego otoczenia również odbywały praktyki letnie w Sente, gdzie następnie rozpoczęły swoją pierwszą pracę zawodową.  Potwierdziły się moje wnioski wyciągnięte po wizycie w firmie – jest to idealne miejsce do rozwoju w branży IT.

Pod koniec studiów, Sente było jedną z pierwszych firm, do których zaaplikowałem. Po pewnym czasie dostałem telefon od rekruterki, która dopytała o kilka szczegółów i przesłała mi test do rozwiązania.

Zadania były z różnych obszarów i nawiązywały do wybranego przeze mnie stanowiska. Po tygodniu zostałem zaproszony na rozmowę, gdzie z dwoma osobami z zespołu rozmawiałem o studiach, teście oraz zadawano mi merytoryczne pytania. Cała rozmowa rekrutacyjna przebiegała w bardzo przyjemnej atmosferze, co pozwoliło mi zapomnieć o stresie. Ostatnim krokiem był wymarzony telefon oraz mail z tytułem “Witamy na pokładzie Sente!”

Pracujesz w Sente już dwa lata. Jak oceniasz te dwa lata z perspektywy rozwoju zawodowego?

Przez dwa lata mojej pracy w Sente miałem możliwość rozwinąć się na kilku płaszczyznach – tych związanych z umiejętnościami twardymi oraz miękkimi. Moja kariera zawodowa zaczęła się w Zespole Rozwoju Technologii, gdzie moim głównym zadaniem było zajmowanie się błędami zgłaszanymi przez zespoły dedykowane.

Dodatkowo pomagałem innym developerom rozwiązać ich problemy w formie wsparcia, co z każdym dniem zwiększało moje umiejętności związane z C# oraz SQL–em. Kolejnym etapem mojego rozwoju było objęcie komórki IT Support, której zadaniem było m.in. wspieranie pracy wszystkich zespołów, utrzymywanie infrastruktury serwerowej, udział w procesie emisji wersji oprogramowania oraz utrzymywanie środowisk innych zespołów tworzonych w procesach Jenkinsowych.  

W trakcie rozwijania komórki ITSu dołączyły do mnie kolejne osoby. W pewnym momencie komórka ta przerodziła się w komórkę DevOpsów, a jej Leaderem jestem do dziś. Z kolei w obszarze umiejętności miękkich brałem udział w cyklu szkoleń menedżerskich, które pozwoliły mi szerzej spojrzeć na sposób pracy z zespołem.

Przez 2 lata pracy w Sente sukcesywnie przechodziłem przez kolejne obszary, gdzie spotykałem się z nowymi dla mnie narzędziami oraz mogłem zaimplementować zupełnie nowe rozwiązania od podstaw.

Jak radzisz sobie z dzieleniem pracy jako Leader komórki DevOps i jako DevOps Engineer?

Praca lidera od pracy kierownika różni się tym, że lider wspólnie z resztą realizuje wciąż te same zadania, ale stara się dodatkowo moderować przepływem tematów. Wiążę się to na przykład z pewną liczbą spotkań, gdzie ustalane są projekty, w których jako komórka DevOps będziemy brać lub bierzemy udział.

Prowadzę w zespole również cyklicznie rozmowy rozwojowe. Podczas takich rozmów daję przestrzeń do tego, aby porozmawiać o ostatnim okresie w pracy – co nam się podobało, a co powinniśmy poprawić. Jest to dla mnie szczególnie ważne, bo otrzymuję wtedy informację, czy wszystko idzie w dobrym kierunku.

Prowadzisz również szkolenia – z jakiego zakresu, kiedy można spodziewać się najbliższego i jak znajdujesz na to czas

Przygotowałem szkolenia wewnątrzfirmowe z systemu kontroli wersji. Jest to narzędzie używane w codziennej pracy przez większość osób w Sente, jednak chciałem, aby wiedza z tego zakresu była wyrównana i omówiona od podstaw. Postanowiłem stworzyć dwie części takiego szkolenia: zakres podstawowy – dla osób, które są nowe i nie korzystały z tego narzędzia wcześniej lub nie współdzieliły swoich projektów z innymi oraz zakres rozszerzony, gdzie w zamyśle omawiamy, jak poradzić sobie w konkretnych przypadkach.

Całość zebrałem w materiałach do kursu, a dodatkowo każdy dostaje tzw. cheat sheeta umożliwiającego szybkie sprawdzenie najpotrzebniejszych komend. Szkolenie odbywa się cyklicznie. Dzięki temu, że mam świetny zespół, który wspiera mnie w działaniach, mogę bez problemu pozwolić sobie na angażowanie się w takie inicjatywy.

Z jakich narzędzi do pracy korzystacie w Waszym zespole?

Jako zespół mamy dość szeroki zakres narzędzi, z których na co dzień korzystamy. Dodatkowo sukcesywnie poznajemy kolejne w celu ułatwienia nam pracy. Najwięcej wysiłku wkładamy w utrzymanie oraz rozwijanie procesów automatycznych opartych na Jenkinsie.

Automatyzujemy zespoły należące do działu badawczo – rozwojowego, jak i samych klientów, którzy są pod opieką zespołów dedykowanych lub serwisowych. Bacznie obserwujemy stan usług, serwerów lub kontenerów za pomocą Zabbixa informującego nas o wszelkich awariach.

Przy okazji na Grafanie obserwujemy wzrost zużycia poszczególnych zasobów serwerowych, które wirtualizujemy głównie w oparciu o Proxmoxa, natomiast same maszyny do pracy pomaga nam przygotować Ansible.

Innymi narzędziami wspierającymi naszą pracę jest Elasticsearch, Docker czy Rundeck. Skrypty najczęściej piszemy w Bashu lub Powershellu, a jak słyszymy, że jest git, to nie myślimy o stanie danej rzeczy tylko o systemie kontroli wersji 🙂

Narzędzi jest dużo, ale pozwala nam to przede wszystkim na pogłębianie swojej wiedzy w wielu technologiach, za co szczególnie doceniam obszar, którym się zajmujemy.

Jakie kompetencje Twoim zdaniem są kluczowe, jeśli ktoś chce rozwijać swoją karierę jako DevOps?

Jest to bardzo trudne pytanie, ale postaram się wyciągnąć wspólny mianownik z cechami, które mamy wszyscy w zespole. Podstawą na pewno jest wiedza techniczna z różnych obszarów, m. in. sieci komputerowych oraz systemów operacyjnych – tutaj warto podkreślić Linuxa i codzienną pracę w terminalu.

Kolejnym elementem jest umiejętność programowania, najczęściej w językach skryptowych. Dodatkowo konteneryzacja, security, administracja systemami, a przede wszystkim chęć do automatyzacji zadań, procesów i zdarzeń wykonywanych nawet raz na jakiś czas. Obecnie nowoczesne systemy korzystają z platform chmurowych, więc również wiedza z zakresu np. AWS’a jest w wielu miejscach wymagana.

Osoba, które chce się rozwijać się w kierunku DevOpsa powinna cechować się dużą chęcią do nauki w różnych obszarach. W moim przypadku wygląda to tak, że stworzyłem sobie “domowe laboratorium”, które jest niczym innym jak pospinanymi w cluster kilkoma laptopami służącymi mi do stawiania serii maszyn wirtualnych i nauki.

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