Jak wygląda praca Głównego Programisty i Lidera Technicznego w BGK?

W Javie zacząłem programować na studiach, czyli jakieś 17 lat temu. Tam nauczyłem się tego języka, ale jeszcze nie wiązałem z nim przyszłości – mówi Paweł Arciszewski, który opowiedział nam o specyfice pracy w Banku Gospodarstwa Krajowego, o technologiach, zespole i możliwościach rozwoju.

Pawle, swoje doświadczenie jako programista zdobywałeś zarówno w małych software housach, jak i dużych korporacjach. Na czym z Twojej perspektywy polega specyfika pracy w banku?

Zacznę od tego, że BGK różni się znacząco od banków komercyjnych. Jego podstawową rolą jest wspieranie rozwoju społeczno-gospodarczego Polski. Z tego powodu jego klientami są głównie przedsiębiorstwa, współpracujemy też z innymi bankami i instytucjami finansowymi.

Jeśli chodzi o bankowość, pierwszą różnicą, którą dostrzegam względem innych branż jest podział aplikacji, które developujemy na portal wewnętrzny oraz zewnętrzny. Odbiorcami pierwszego są pracownicy banku, drugiego inne banki, instytucje, klienci. Czyli de facto piszemy zawsze po 2 aplikacje.

Od strony programistycznej, praca wygląda dość podobnie do innych branż. Departamenty obsługujące programy i klientów, czyli pracownicy banku będący docelowymi odbiorcami aplikacji, definiują wymagania. Te jednak muszą być zgodne z ustawą, co z kolei również jest specyficzne dla BGK: to co robimy często jest podyktowane ustawami i rozporządzeniami.

Idąc dalej mamy analityków działu IT, którzy otrzymują te wymagania. Ich zadaniem jest przełożyć je na funkcjonalności aplikacji. Wytwarzają w ten sposób dokumenty specyfikacji funkcjonalnej lub piszą bezpośrednio w Jira.

Następnie omawiamy z analitykami wszelkie wątpliwości, ewentualnie nanosimy uwagi. Gdy już mamy jasność, co trzeba zrobić, rozpisujemy zadania w Jira, szacujemy ile trzeba włożyć w nie pracy oraz określamy priorytety.

W końcu przychodzi czas na pisanie kodu. Jesteśmy wtedy w stałym kontakcie z analitykiem IT. Do nowych funkcjonalności piszemy także testy jednostkowe oraz integracyjne.

Po jakimś czasie, gdy napiszemy już np. cały moduł, wdrażamy daną wersję aplikacji na środowisko testowe. Tam testerzy manualni weryfikują jej działanie i zgłaszają nam błędy do poprawy, a Departament Bezpieczeństwa sprawdza podatność aplikacji na ataki.

Wykonywane są również testy wydajnościowe. Po poprawieniu przez nas błędów, aplikacja wchodzi na środowisko przedprodukcyjne. Wtedy odbiorcy wykonują na niej testy UAT i zgłaszają swoje uwagi, które uwzględniamy w nanoszonych poprawkach. Gdy aplikacja jest już wolna od nieprawidłowości i gotowa, wchodzimy w fazę produkcji.

To jest typowy tok pracy nad oprogramowaniem w BGK.

“Poważną przygodę z Javą rozpocząłem dopiero podczas trzeciej pracy. Zostałem wtedy programistą Android. Był to dla mnie kolejny zawód z cyklu wytwarzania aplikacji mobilnych”.

Jak zaczęła się Twoja przygoda z programowaniem w Javie i jak na przestrzeni lat to ewoluowało?

W Javie zacząłem programować na studiach, czyli jakieś 17 lat temu. Tam nauczyłem się tego języka, ale jeszcze nie wiązałem z nim przyszłości.

W mojej pierwszej pracy, którą zacząłem na ostatnim roku studiów Java była obecna, ale bardziej w tle. Tworzyłem wtedy aplikacje webowe we frameworku napisanym w Javie. Jednak niewiele pracowałem nad samym jego mechanizmem.

Poważną przygodę z Javą rozpocząłem dopiero podczas trzeciej pracy. Zostałem wtedy programistą Android. Był to dla mnie kolejny zawód z cyklu wytwarzania aplikacji mobilnych.

Po mniej więcej 4 latach aplikacje mobilne przestały mnie interesować, ale Java jak najbardziej pozostała moim konikiem. Zmieniłem projekt i przesiadłem się na backend aplikacji webowych pisanych w Spring’u i technologiach dookoła. Od tamtej pory rozwijam się właśnie w tej technologii i nie zapowiada się, żeby mi się to znudziło.

Na czym polegają Twoje codziennie obowiązki i jakie masz wyzwania na stanowisku Głównego Programisty Java i Lidera Technicznego Zespołu?

Mój typowy dzień w BGK zaczyna się od prowadzenia daily, czyli spotkania zespołowego, podsumowującego prace programistyczne nad najnowszym projektem. Omawiamy problemy jakie wyniknęły w trakcie developmentu nowych funkcjonalności czy poprawy bug’ów. Określam i przypisuję zadania lub mobilizuję do tego zespół. Pilnuję również koordynacji wewnątrz zespołu i sukcesywnego kończenia rozpoczętych działań. 

Odpowiadam także za planowanie prac. Z departamentami odpowiedzialnymi za produkty banku nadzoruję kolejne wdrożenia produkcyjne aplikacji, ustalam architekturę dla przyszłego projektu, spotykam się z przełożonymi i omawiam bieżące tematy, przeprowadzam rozmowy rekrutacyjne itd. 

Nie należy zapominać, że również jestem developerem, więc jak tylko mogę, chwytam za klawiaturę i kodzę ?

Za co najbardziej cenisz pracę w swoim zespole?

Kolegów i koleżanki z zespołu cenię przede wszystkim za profesjonalizm. Są to młodzi ludzie z mocno ugruntowaną wiedzą i otwartością, aby tę wiedzę poszerzać.

Te cechy podziwiam nie tylko w życiu zawodowym, więc są dla mnie szczególnie ważne. Oprócz tego bardzo dobrze się dogadujemy. Między nami panuje świetna atmosfera – widać, że ludzie tu robią to, co lubią.  Praca w takim zespole to dla mnie zaszczyt.

Jakie inicjatywy rozwojowe ma BGK na swoim koncie w ostatnim czasie?

Jeśli chodzi o inicjatywy rozwojowe dla programistów to BGK ma sporo do zaoferowania. Bezpłatne udziały w konferencjach IT dla słuchaczy oraz możliwość wystąpienia jako prelegent, bezpłatny dostęp do pakietu kursów online na platformie Pluralsight oraz w tym roku Udemy.

Oprócz tego mamy swoje cele roczne, które są dopasowane do pracownika tak, aby mógł się rozwijać w interesującym go kierunku. To wszystko powoduje, że nie stoimy w miejscu, poszerzamy swoją wiedzę i umiejętności. Na tym korzystamy zarówno my jak i pracodawca.

“(…) Piszemy aplikacje w Java 11 z wykorzystaniem Spring Boot 2, Spring Security, Spring Data JPA i innych dookoła Spring’owych modułów. Dane trzymamy w MSSQL, wkrótce będzie również NoSQL. Front piszemy w Angularze”.

Jakie projekty czekają na kandydatów w BGK?

Nie mogę zdradzić nad czym aktualnie pracujemy, jednak projekty są naprawdę ciekawe. Dają poczucie robienia czegoś wartościowego i rozwijającego polską gospodarkę.

Mamy również dobry stack technologiczny: piszemy aplikacje w Java 11 z wykorzystaniem Spring Boot 2, Spring Security, Spring Data JPA i innych dookoła Spring’owych modułów. Dane trzymamy w MSSQL, wkrótce będzie również NoSQL. Front piszemy w Angularze.

Integrujemy się z Keycloakiem i szyną ESB, usługi mamy zamknięte w Docker’owych kontenerach.  Wdrażamy pełne CI/CD przy użyciu JFrog Artifactory, Bamboo i Ranchera. Taski definiujemy i przydzielamy w Jira, zarządzamy repozytoriami oraz robimy code review w Bitbucket’cie.

Podsumowując sporo się dzieje i jeszcze więcej będzie się działo 🙂

***

Paweł Arciszewski – programista z kilkunastoletnim stażem. W swojej karierze pracował zarówno w małych software house’ach jak i wielkich korporacjach. Posiada doświadczenie m.in. w branżach technologicznej, consultingowej oraz finansowej. W Banku Gospodarstwa Krajowego realizuje się jako Główny programista Java i lider techniczny zespołu. Praca w BGK to dla niego przede wszystkim świetna atmosfera i kompetentni ludzie. Ceni w niej również dobre technologie oraz realny wpływ na rozwój cyfryzacji polskiej gospodarki. Czas wolny i drogę do biura chętnie spędza na dwóch kółkach.

Sprawdź oferty pracy w BGK

RAPORT Zarobki w branży IT - Q3 2021

Sprawdź jak wyglądają zarobki w branży IT, na podstawie analizy ogłoszeń 3 675 pracodawców.

POBIERZ RAPORT