Szukasz projektu, w którym będziesz mieć realny wpływ na modernizację dużej platformy finansowej wykorzystywanej przez tysiące organizacji na całym świecie? Interesuje Cię praca przy skalowaniu systemów, refaktoryzacji monolitu oraz stopniowej transformacji w kierunku architektury rozproszonej?
Dla naszego klienta z obszaru finansowego poszukujemy doświadczonego Senior Java Engineera, który dołączy do zespołu odpowiedzialnego za rozwój i skalowanie kluczowej platformy SaaS. To rola dla osoby, która dobrze odnajduje się zarówno w pracy z dużymi aplikacjami monolitycznymi, jak i nowoczesnymi rozwiązaniami opartymi o mikroserwisy oraz architekturę zdarzeniową.
Senior Java Engineer
Twój zakres obowiązków
- Projektowanie i rozwój rozwiązań wspierających skalowalność oraz niezawodność platformy.
- Udział w modernizacji i stopniowej dekompozycji aplikacji monolitycznej.
- Projektowanie nowych komponentów oraz mikroserwisów.
- Analiza istniejącego kodu i identyfikacja obszarów wymagających usprawnień.
- Refaktoryzacja oraz optymalizacja istniejących rozwiązań.
- Współtworzenie architektury systemów rozproszonych.
- Projektowanie i rozwój rozwiązań zgodnie z zasadami Domain-Driven Design oraz Event-Driven Architecture.
- Współpraca z międzynarodowym zespołem inżynierów w środowisku Agile.
- Dbanie o jakość kodu, testowalność, wydajność i niezawodność aplikacji.
- Wdrażanie najlepszych praktyk programistycznych oraz wspieranie inicjatyw modernizacyjnych.
Nasze wymagania
- Minimum 10 lat doświadczenia komercyjnego w programowaniu.
- Minimum 8 lat doświadczenia w Java oraz Spring Framework.
- Bardzo dobre doświadczenie w pracy z dużymi aplikacjami monolitycznymi.
- Praktyczna znajomość Hibernate oraz technologii ORM.
- Doświadczenie w refaktoryzacji i modernizacji systemów legacy.
- Bardzo dobre umiejętności analityczne i rozwiązywania złożonych problemów technicznych.
- Doświadczenie w projektowaniu systemów rozproszonych.
- Znajomość wzorców projektowych oraz dobrych praktyk programistycznych.
- Doświadczenie z TDD, BDD, Clean Code oraz projektowaniem API.
- Znajomość Domain-Driven Design (DDD).
- Znajomość Event-Driven Architecture.
- Doświadczenie z CI/CD.
- Bardzo dobra znajomość SQL oraz projektowania baz danych.
- Znajomość zagadnień związanych z monitoringiem, observability i niezawodnością systemów.
- Bardzo dobra znajomość języka angielskiego.
- Kubernetes.
- Architektura heksagonalna.
- Programowanie funkcyjne (FP).
- Doświadczenie w migracji systemów monolitycznych do architektury mikroserwisowej.
- Doświadczenie w środowiskach SaaS o dużej skali.
- Doświadczenie w sektorze finansowym lub fintech.