Jako inżynier DevOps, po angielsku DevOps Engineer, nadzoruję prace zespołów tworzących nowe oprogramowanie i administratorów systemów, zajmujących się jego wdrażaniem oraz utrzymaniem środowisk, w których te nowe programy i aplikacje działają.
DevOps to szeroko stosowane podejście do tworzenia programów i aplikacji, polegające na bliskiej współpracy zespołu utrzymania IT i twórców oprogramowania. Moim zadaniem jest, żeby ci, którzy tworzą nowe oprogramowanie lub aplikacje współpracowali z zespołami odpowiedzialnymi za utrzymanie oraz obsługę IT, potrafili wspólnie szukać nowych rozwiązań, najlepszych z punktu widzenia całego projektu, dbając o zachowanie jego wysokiej jakości.
Dbam o szybką i sprawną komunikację między wszystkimi osobami zaangażowanymi w powstawanie nowych programów i aplikacji. Wiem też, jak można usprawnić cykl pracy nad nowym produktem dzięki narzędziom służącym automatyzacji pracy. Takie narzędzia pozwalają wielu programistom na jednoczesne wprowadzanie zmian w tym samych plikach programu/aplikacji. Automatycznie porównują zmiany wprowadzone przez jednego dewelopera z modyfikacjami wykonanymi przez pozostałych i znajdują konflikty.
W trakcie pracy nad nowym projektem koordynuję działania programistów i testerów, pomagając im korzystać z aplikacji typu JIRA, Puppet, Selenium, GIT i innych. Wybieram najlepsze rozwiązania techniczne, np. języki programowania, serwery, interfejsy użytkownika, pasujące do projektu, nad którym akurat pracujemy. Oceniam wydajność tych rozwiązań pod kątem używanego w naszej firmie hardware’u, czyli sprzętu i urządzeń peryferyjnych, i software’u, czyli oprogramowania.
Co powinienem umieć?
Muszę znać środowisko Windows i Linux, np. CentOs, RedHat, Debian, Ubuntu, języki skryptowe, w tym Bash, Perl/Python, csh, Groovy, Fedora, Ruby, narzędzia do automatyzacji, takie, jak Puppet, Jenkins, Ansible, Hudson, oraz do do tworzenia oprogramowania. Oprócz tego ważna jest umiejętność budowy i administrowania bazami danych oraz pracy w chmurze obliczeniowej typu Amazon Web Services, czy Azure.
Aby sprawnie opracowywać algorytmy niezbędne do tworzenia nowych aplikacji i programów komputerowych, potrzebuję dobrej znajomości matematyki.
W mojej pracy ważna jest dobra znajomość języka angielskiego, a zwłaszcza terminologii technicznej, bo większość instrukcji do programów komputerowych i języków programowania jest napisana po angielsku, mają też angielski interfejs. Sprawne posługiwanie się językiem angielskim pozwala mi uczestniczyć w kursach i szkoleniach podnoszących moje kwalifikacje, śledzić w sieci światowe nowinki z mojej branży oraz znaleźć dobrą pracę za granicą.
Jakie kompetencje miękkie są ważne w mojej pracy?
- komunikatywność,
- umiejętność zarządzania ludźmi,
- otwartość na nowe idee,
- chęć rozwoju,
- kreatywność,
- odpowiedzialność,
- wielozadaniowość.
Gdzie mogę pracować?
Mogę znaleźć zatrudnienie w firmach z branży IT, zwłaszcza w tych zajmujących się tworzeniem oprogramowania.