Opis stanowiska
Twoim zadaniem będzie rozwój części systemu rozproszonego obsługującego branżę hotelarską. System składa się z wielu mikroserwisów zorientowanych na określone obszary biznesowe i jest rozwijany przez kilka zespołów międzyfunkcyjnych. Obecnie budujemy nowy zespół, który będzie rozszerzał tę platformę o funkcje związane z systemami zamawiania jedzenia. Poszukujemy kandydatów, którzy dołączą do zespołu i pomogą nam w poprawie doświadczeń użytkowników oraz usprawnieniu operacji dla naszych klientów. Pracujemy w iteracjach z refinamentami, planowaniem i spotkaniami retrospektywnymi. Używamy GitLab do synchronizacji kodu z gałęziami develop i master, tworząc osobną gałąź dla każdej User Story. Codziennie zatwierdzamy zmiany i korzystamy z CI/CD w GitLab. Tworzymy merge requesty i czekamy na ich zatwierdzenie przez innych członków zespołu przed scaleniem. Do lokalnego rozwoju i wdrażania wszystkich mikroserwisów używamy Docker i Docker Compose. Komunikujemy się za pomocą Teams i uczestniczymy w spotkaniach z członkami zespołu oraz współpracujemy z działem UI/UX, aby zapewnić najlepszy wygląd i działanie aplikacji. Tworzymy wewnętrzne pakiety NPM, by dzielić się pracą, tworzyć systemy projektowe i unikać powtórzeń.
Technologie, których używamy:
- .NET 8, Entity Framework, Dapper, PostgreSQL, ElasticSearch, Kafka
- XUnit, NSubstitute,
- Kibana, Grafana
- GitLab
- Jira, Confluence
Kluczowe obowiązki:
- Dostarczanie wysokiej jakości kodu, który jest zarówno funkcjonalny, jak i wydajny
- Projektowanie i rozwój funkcjonalności oprogramowania na podstawie wymagań
- Współpraca z projektantami UI/UX, Product Ownerami, deweloperami i innymi członkami zespołu
- Wspieranie infrastruktury wykorzystywanej przez zespół w procesie developmentu
- Udział w przeglądach kodu
- Udział w wydaniach usług
- Monitorowanie usług, metryk i logów
Wymagania:
- Około 5 lat doświadczenia zawodowego
- Zaawansowana znajomość i praktyka w programowaniu w języku C# oraz platformie .NET
- Zaawansowana znajomość struktur danych, algorytmów i wzorców projektowych
- Zaawansowana znajomość SQL i relacyjnych baz danych (RDS)
- Znajomość Gita i systemów kontroli wersji
- Znajomość architektury oprogramowania, w szczególności mikroserwisów, EDA oraz powszechnie stosowanych wzorców projektowych
- Znajomość Dockera i konteneryzacji
- Znajomość procesów CI/CD
- Chęć dalszego rozwoju kariery w programowaniu/IT
- Motywacja do nauki, programowania i poznawania domeny biznesowej firmy
- Zainteresowanie nowinkami technologicznymi oraz nowymi bibliotekami/pakietami/narzędziami
- Komunikatywność i otwartość
- Umiejętność pracy zarówno samodzielnej, jak i zespołowej
Proces rekrutacyjny:
- Rozmowa telefoniczna z rekruterem
- Wewnętrzna rozmowa techniczna
- Rozmowa techniczna u klienta
Model pracy – zdalna/hybrydowa
- Pracownicy do 50 km od biura (Katowice) – 4 razy w miesiącu w biurze
- Pracownicy od 50 do 100 km od biura – 2 razy w miesiącu w biurze
- Pracownicy powyżej 100 km – praca w pełni zdalna