Cześć, wystartowaliśmy z nowym cyklem podcastów Comarch Careeres. W każdym odcinku nie tylko przekazujemy Wam porcję informacji o różnych stanowiskach, ale także opowiadamy o ścieżkach kariery, projektach i możliwościach. Słuchając nas, dowiecie się, jakie umiejętności i doświadczenie warto posiadać.
Anna Rzemińska: Cześć, nazywam się Anna Rzemińska. W Comarch odbyłam staż na profilu inżynier systemowy. Od tego czasu pracuję w sektorze administracji publicznej, jest to już około pół roku i obecnie zajmuję stanowisko inżyniera systemowego.
Chciałabym opowiedzieć Wam o moim stażu, o tym, nad jakim projektem i z jakimi technologiami pracowałam, a także przedstawić sam profil stażu inżynier systemowy. Zaczynając zatem od projektu, dotyczył on konteneryzacji aplikacji do zarządzania dokumentami, a także przygotowania dla niej procesu CI/CD. Tutaj może od razu może wyjaśnię, CI/CD to z angielskiego Continuous Integration, Continuous Delivery bądź Deployment i jest to najprościej mówiąc, zbiór zasad, narzędzi, praktyk, prowadzący do tego, żeby zautomatyzować oraz skracać czas potrzebny do tego, żeby od zmian w kodzie źródłowym aplikacji, przejść do kolejnej wersji aplikacji, bądź też do wdrożenia kolejnej wersji aplikacji na środowisku klienta.
Jeśli chodzi o technologie, z którymi miałam okazję pracować, przede wszystkim były one właśnie związane z narzędziami do procesu CI/CD. Był to praktycznie cały stos technologiczny, z którym można się spotkać w przypadku pracy w metodologii DevOps. Idąc po kolei, GitLab CI/CD, który oferuje wsparcie dla podstawowej automatyzacji. Skoro była mowa o konteneryzacji, to można się było domyśleć, że będzie też Docker i tak było. Oprócz tego, skoro Docker i kontenery, do zarządzania nimi Kubernetes, a do zarządzania wersjami, można powiedzieć dzieje w Kubernetesie, Helm Charts. Oprócz tego pracowałam z Jenkinsem i Ansible. Jenkins to tutaj bardziej narzędzie do CD, a Ansible pozwala na zarządzanie dużą liczbą serwerów i ogólnie na automatyzację. Także w przypadku Docker’a, było to utworzenie Dockerfile, w przypadku Kubernetesa, utworzenie plików Joomla, które będą opisywać tę aplikację, w kolejnym kroku tworzenie Helm Charts i tak dalej, i tak dalej. Dzięki temu te technologie, które wymieniłam, były poznane na zasadzie faktycznie zrobienia czegoś w nich, na przykładzie już istniejącej, dużej można powiedzieć, aplikacji. To nie było tylko takie szkolenie na sucho, więc tutaj zdecydowanie była to pozytywna strona tego stażu.
Oczywiście w zależności od profilu i od projektu mogą się tutaj pojawiać inne obowiązki. W moim przypadku w formie bonusowej, oprócz projektu głównego, miałam też okazję wesprzeć zespół w bieżących zadaniach, chodziło tutaj o migrację repozytoriów z kodem źródłowym i miałam okazję przygotować kilka skryptów w Pythonie.
Przechodząc do zalet tego profilu oraz tego, czego można się nauczyć, to myślę, że tutaj tak naprawdę główną zaletą są te technologie, które wymieniłam oraz to, że można zobaczyć je w faktycznym, produkcyjnym środowisku, gdzie mamy do czynienia z dużo bardziej złożonymi projektami i jakby całą układanką tych różnych elementów, gdyż najprawdopodobniej w przypadku samodzielnej nauki, gdzie jednak ma się jakąś aplikację demonstracyjną, która jest mała, nieskomplikowana i jakby pisana po to, żeby była jak najprostsza.
Dodatkowo myślę, że zaletą jest to, że te wspomniane technologie, obecnie zyskują na popularności. Tutaj one wspierają automatyzację, więc coś, co ma wiele zalet i jeśli się na tym spróbuje pracować w ten sposób, to myślę, że samemu bardzo prosto jest je docenić i nie będzie trzeba takiej osoby więcej o tym przekonywać, a z drugiej strony, przynajmniej w moim doświadczeniu są to technologie, które ciężko jest poznać na przykład na uczelni. Z trzeciej strony pracując samodzielnie, nie mamy do czynienia z tak złożonymi projektami, nie mamy też do czynienia z opieką mentora i tutaj pracując w tak dużej firmie, jak Comarch, można mieć do dyspozycji zgromadzoną bazę wiedzy, łącznie z rekomendowanymi technologiami czy też na przykład najlepszymi praktykami, więc dostajemy tak naprawdę w bonusie bardzo praktyczne, bardzo techniczne i szczegółowe doświadczenia, nie tylko suchą wiedzę teoretyczną, którą możemy wyczytać z dokumentacji.
Jeśli chodzi o profil, myślę, że pozwala on na poznanie trochę szerszego wycinka świata IT, niż na przykład profile programistyczne, czy testerskie, chociażby dlatego, że na przykład tak, jak jeżeli chodzi o metodologię DevOps, to tak naprawdę ta rola, te narzędzia, zaczynają się już w przypadku kodu źródłowego i tego, co się dzieje po wprowadzeniu zmiany, dowolnej zmiany, a kończą się na architekturze klienta i to nie tylko na samym wdrożeniu, ale i na utrzymaniu jej, na wprowadzeniu aktualizacji, więc tak naprawdę mamy do czynienia z bardzo dużą częścią życia projektu i tego, co się z nim dzieje. Myślę, że dzięki temu można zobaczyć więcej technologii, można się też sprawdzić i zobaczyć czy coś takiego jest interesujące – dla mnie było. Natomiast też nie sądzę, że byłabym w stanie to powiedzieć, gdybym miała się z tym sama zmierzyć.
Jeśli chodzi o wymagania dla kandydatów, myślę, że to dość logiczne, przydadzą się kierunki studiów informatycznych, czy też szeroko pojętego IT, ponieważ czy zadania administracyjne, czy automatyzacja, czy narzędzia, o których wspominałam, generalnie nie wymagają programowania samego w sobie, natomiast podstawy programowania dobrze mieć, choćby dlatego, że duża część tych narzędzi operuje na plikach w formacie, który nazywa się Joomla. Jest to forma, można powiedzieć, modyfikacja JSON, która jest czytelniejsza, zwłaszcza do odczytu dla człowieka.
Natomiast pojawiają się również proste elementy języków programowania takie jak warunki logiczne, if else, pętle for, czy ogólnie samo pojęcie zmiennych. W związku, z czym takie zaplecze programistyczne z pewnością w tym momencie pomaga. Nie mówiąc już o fakcie, że tak naprawdę „pod spodem” cały czas pracuje się na aplikacji, więc czasami po prostu dobrze jest wiedzieć, co się dzieje w tej aplikacji.
Z pewnością przydatna będzie też ogólna wiedza o sieciach IP, takie rzeczy jak adresacja, proxy, NAT, w różnych miejscach się przydają. Natomiast tutaj mówię raczej o dość podstawowych, prostych koncepcjach. Myślę, że większość kierunków z rodziny IT, w jakimś zakresie te tematy omawia. Myślę, że jeśli chodzi o inżyniera systemowego, tutaj mogą się odnaleźć, nie tylko osoby po czystej informatyce, natomiast również osoby po kierunkach takich jak: teleinformatyka, elektronika i telekomunikacja, bądź wszelakie pokrewne.
Natomiast jeśli chodzi o same wymagania, myślę, że tutaj najistotniejsze nie są, w przypadku stażu, wymagania techniczne i konkretne technologie, nie są aż tak istotne, o ile istotne jest zrozumienie pewnych koncepcji, co znaczy znajomość cyklu życia aplikacji, znajomość, ogólna nawet, czym jest proces CI/CD, w przypadku obszaru DevOps to będzie ogólnie też znajomość procesu CI/CD i jakie są etapy, po co, tutaj ogólnie chodzi bardziej o to, żeby mieć świadomość, po co są pewne rzeczy i żeby być w stanie nauczyć się pewnych technologii. Dlatego, że ja przychodząc na staż z większością technologii i narzędzi, z którymi pracowałam, nie miałam doświadczenia praktycznego, więc w większości uczyłam się ich podczas stażu. Także myślę, że osoby, które nawet nie mają dużego doświadczenia praktycznego, ale mają jakieś podstawy programistyczne, radzą sobie w linii wierszu poleceń, mają podstawową wiedzę, jeśli chodzi o systemy operacyjne Windows i Linux i mają tę podstawową wiedzę z sieci IP, powinny sobie dać radę, o ile tylko przyjdą z otwartym umysłem i będą na bieżąco przyjmować to, co się dzieje.
I tak kończąc już, podsumowując, myślę, że z mojej strony mogę zdecydowanie polecić udział w stażu na profilu inżynier systemowy. Dzięki temu, że zdecydowałam się w nim wziąć udział, poznałam nowe popularne technologie, miałam okazję zobaczyć, jak wygląda praca w dużej firmie, nad też dużymi projektami, gdzie jednak ta specyfika, jest zdecydowanie inna i myślę, że przede wszystkim, jeśli chodzi o szansę na rozwój osobisty, zwłaszcza techniczny, jest to dobra opcja.