Inżynier systemowy - dlaczego warto wybrać tę ścieżkę kariery?
Czym zajmuje się inżynier systemowy? Jakie wyzwania przed nim stoją? I dlaczego warto wybrać tę ścieżkę kariery? Na te i inne pytania odpowiada Jacek Kurek, uczestnik stażu w 2018 w Comarch, a dziś inżynier systemowy. Pasjonat kultury DevOps i programowania aplikacji webowych.
Jak trafiłeś do Comarch?
Do Comarchu trafiłem trochę przez przypadek. Na trzecim roku studiów byłem w trakcie wybierania swojej ścieżki zawodowej. Wahałem się między pracą jako menager projektu, a pracą w bezpieczeństwie. Od kolegi ze studiów dowiedziałem się o rekrutacji na staż programistyczny w Comarch. Wysłałem zgłoszenie, przeszedłem testy i zostałem przyjęty. W ten sposób zostałem programistą aplikacji webowych. Prywatnie tworzyłem i do dzisiaj je tworzę, więc stwierdziłem czemu nie.
Trafiłem do zespołu, który zajmował się głównie bezpieczeństwem, wydajnością aplikacji, a duża część grupy to byli inżynierowie systemowi. Staż był bardzo intensywny i owocny. Razem z kolegą stworzyliśmy aplikację webową, która w znaczący sposób automatyzowała pewne procesy związane z raportowaniem skanów bezpieczeństwa. Mogę się pochwalić, że aplikacja do dzisiaj działa i jest używana. Już w momencie stażu stwierdziłem, że nie chcę być programistą etatowo. Z drugiej strony spodobało mi się bardzo to, co robili moi starsi koledzy. Historia może trochę długa, ale w taki oto sposób zostałem inżynierem systemowym.
Jak mógłbyś wyjaśnić laikowi, czym zajmuje się inżynier systemowy, to jakbyś opisał swoje stanowisko?
Inżynier systemowy jest przede wszystkim osobą mocno techniczną. Ma bardzo szeroki zakres kompetencji, ale zazwyczaj specjalizuje się w jednej lub kilku dziedzinach. Podstawą pracy jest sprawne korzystanie z systemów Windows, czy Linux/Unix.
Kolejnym aspektem jest automatyzacja pracy, czyli tworzenie i wdrażanie rozwiązań, które ułatwiają i pozwalają znacząco zmniejszyć pracę wykonywaną przez człowieka. W swoim działaniu musi on pamiętać o bezpieczeństwie i ściśle współpracować z zespołami odpowiedzialnymi za ten obszar.
Inżynier systemowy pomaga klientom i kolegom z pracy w kwestii aspektów technicznych. Kolejnym zadaniem jest monitorowanie infrastruktury, w tym m.in. jej wydajności.
Dlaczego zdecydowałeś się zostać inżynierem systemowym?
Właściwie, to wcześniej nie miałem pojęcia, że istnieje takie stanowisko. Informatyka kojarzyła mi się głównie z programowaniem. Dopiero na stażu zobaczyłem, jaką ta rola ma wartość dla organizacji i jaką ogromną wiedzę posiadają koledzy, z którymi współpracowałem. Bardzo imponowała mi również ilość rozwiązań i narzędzi dostępnych do wykonywania zadań. Bardzo lubię się uczyć, szczególnie usprawnień, które automatyzują pracę. W pracy inżyniera systemowego czasami trzeba napisać jakiś kod, więc moje umiejętności programistyczne były i są dużym atutem.
Czego oczekuje się od kandydata, który aplikuje na stanowisko inżynier systemowy?
Inżynier systemowy musi sprawnie poruszać się po systemach Windows/Linux, poczynając od administracji aż do pisania skryptów. Osoba na tym stanowisku powinna mieć wiedzę na temat konfiguracji i administracji bazami danych, a także bardzo dobrze orientować się w tematyce związanej z sieciami komputerowymi. Atutem jest również posiadanie umiejętności z obszarów wirtualizacji, konteneryzacji, czy orkiestracji kontenerów jak np. Kubernetes. Znajomość narzędzi do automatyzacji (np. Ansible i monitoringu, np. Nagios, Zabbix, ELK) również będzie zaletą.
Osobiście uważam, że inżynier systemowy oprócz znajomości Basha, musi znać drugi język skryptowy, np. Python. Z doświadczenia mogę powiedzieć, że Python wielokrotnie ułatwiał mi życie i pomagał w wielu sytuacjach rozwiązać problem bardzo szybko i efektywnie. Równię ważną, a czasami zaniedbywaną kwestią, jest podejście do wykonywania pracy zorientowane na bezpieczeństwo.
Osoba na tym stanowisku powinna posiadać umiejętność analitycznego myślenia, otwartość na nowe rozwiązania, a także chęć zdobywania i dzielenia się wiedzą z innymi pracownikami i klientami.
W branży IT jest wiele możliwości zawodowych. Dlaczego poleciłbyś wybór akurat inżyniera systemowego?
Według mnie to stanowisko daje ogromne możliwości rozwoju, praca jest pełna wyzwań, codziennie są nowe problemy. Jest bardzo dużo narzędzi, które można poznać, więc ktoś, kto lubi uczyć się nowych rzeczy, na pewno nie będzie się nudził.
Pracujesz z kwestiami związanymi z bezpieczeństwem i wydajnością aplikacji. Na czym dokładnie polegają Twoje zadania?
Jeżeli chodzi o bezpieczeństwo, to ściśle współpracuje z osobami odpowiedzialnymi za ten obszar. Kontaktuję się z nimi głównie przy konfiguracji narzędzi, tak aby spełniały wymagane normy bezpieczeństwa, np. web-serwery. Dodatkowo uczestniczę w testach penetracyjnych, czy też przygotowuje rozwiązania, które ułatwiają pracę w obszarach związanych z bezpieczeństwem.
Mówiąc o wydajności aplikacji, mam na myśli konfigurację narzędzi, które pozwalają na monitorowanie serwerów/aplikacji (ELK Stack). Tworzę rozwiązania, które zbierają dane z różnych miejsc, następnie przetwarzam je w odpowiedni sposób, zasilam bazę danych i przedstawiam klientom/współpracownikom w postaci przeróżnych wizualizacji (Kibana, Grafana). Znacząco ułatwia to szukanie problemów wydajnościowych czy błędów na bieżąco, a także pozwala na dobrą komunikację z klientem.
Jakie są ścieżki rozwoju dla inżyniera systemowego?
Inżynier systemowy może rozwijać się w wielu kierunkach. Jeżeli ktoś bardzo lubi pracować z bazami danych, to może pracować jako administrator baz danych. Podobnie jest z systemami operacyjnymi, gdzie istnieje możliwość pracy jako administrator systemów. Osoba na tym stanowisku znajdzie też pracę jako specjalista ds. bezpieczeństwa albo osoba pracująca we wdrożeniach. Ścieżka programistyczna też nie jest zamknięta, gdyż tak jak wspominałem często używa się jakiegoś języka programowania w swojej pracy. Nic nie stoi na przeszkodzie, żeby pójść w kierunku zarządzania ludźmi/projektami, ponieważ inżynier systemowy musi bardzo dobrze rozumieć potrzeby biznesowe, a także na co dzień pracować z klientami.
Co jest najbardziej interesujące w Twojej pracy?
Najbardziej interesujące w mojej pracy jest ciągła nauka nowych narzędzi, rozwiązań. Codziennie spotykam się z różnymi problemami, do których trzeba podchodzić nierzadko w sposób nieszablonowy. Bardzo lubię też pomagać innym i dzielić się swoją wiedzą. Mam to szczęście, że pracuje ze świetnym zespołem i ludźmi, od których bardzo dużo się nauczyłem i dalej się uczę.
Czego nauczyła Cię Twoja praca?
Moja praca nauczyła mnie przede wszystkim cierpliwości, elastyczności i dzielenia problemów na mniejsze części. Nauczyłem się też, jak ważny jest dobry kontakt z klientem, a także jak świetna atmosfera w zespole pozwala na szybki rozwój i wydajną pracę. Praca pokazała mi też, jak istotna jest nauka na własnych błędach i systematyczność.
Gdzie widzisz siebie za kilka lat?
Nie będę ukrywał, że w przyszłości chciałbym wrócić do swojego pierwotnego planu, czyli zostać menadżerem zespołu/projektu. Teraz jednak wiem, że długa droga przede mną, wiele nauki i pracy. Obecnie chciałbym dalej rozwijać się w kierunkach technicznych. Bardzo interesuje mnie kultura organizacyjna DevOps, która kładzie nacisk na współpracę pomiędzy działami wytwarzania oprogramowania, a działami związanymi z utrzymaniem, co pozwala na zwiększanie efektywności wdrożenia rozwiązań i późniejszego ich utrzymana. Jestem również ogromnym pasjonatem bezpieczeństwa i w tym kierunku chciałbym się nadal rozwijać.