Projekt: KYC: Proces ponownej identyfikacji za pośrednictwem MyRaifRequirements — Doświadczenie zawodowe: Minimum 5 lat doświadczenia w programowaniu w języku Java, z udokumentowanym doświadczeniem na stanowiskach kierownictwa technicznego — Wiedza architektoniczna: Dokładne zrozumienie zasad architektury mikrousług, z możliwością projektować, wdrażać i optymalizować skalowalne systemy oparte na mikrousługach - Biegłość w Spring Boot: Zaawansowana wiedza i praktyczne doświadczenie w Spring Boot,
Projekt: KYC: Proces ponownej identyfikacji za pośrednictwem MyRaifRequirements — Doświadczenie zawodowe: Minimum 5 lat doświadczenia w programowaniu w języku Java, z udokumentowanym doświadczeniem na stanowiskach kierownictwa technicznego — Wiedza architektoniczna: Dokładne zrozumienie zasad architektury mikrousług, z możliwością projektować, wdrażać i optymalizować skalowalne systemy oparte na mikrousługach - Biegłość w Spring Boot: Zaawansowana wiedza i praktyczne doświadczenie w Spring Boot, w tym między innymi w MVC, REST, danych, bezpieczeństwie i przesyłaniu komunikatów - Konteneryzacja i orkiestracja: Biegła w konteneryzacji Dockera w różnych różnych środowiskach i doświadczenie w Kubernetes i Helm do orkiestracji i wdrażania-Systemy przesyłania wiadomości: Praktyczne doświadczenie z platformami Kafka i Kafka Streams do tworzenia potoków danych w czasie rzeczywistym i aplikacji do przesyłania strumieniowego-Protokoły komunikacyjne: Znajomość różnych protokołów komunikacyjnych, w tym REST, gRPC i przesyłanie komunikatów sterowanych zdarzeniami-Ciągła integracja/ciągłe wdrażanie (CI/CD): Zrozumienie praktyk CI/CD, w tym wdrażanie bramek jakości w celu zapewnienia wysokich standardów jakości i niezawodności kodu-Testowanie: Wszechstronne doświadczenie w zakresie jednostek, integracji i API testowanie mikrousług, zapewniające solidne i niezawodne dostarczanie oprogramowania - Wzorce projektowe: Dobra znajomość wzorców projektowych Gang of Four (GoF), wykazująca zdolność do stosowania tych wzorców w celu skutecznego rozwiązywania problemów z projektowaniem oprogramowania - Testowanie kontraktowe: Biegłość w testowaniu kontraktowym w celu zapewnienia mikrousług poprawnie współdziałać i wypełniać wcześniej określone umowy - Wersjonowanie API: Doświadczenie w zarządzaniu wersjami API w celu utrzymania kompatybilności i wspierania stopniowego ulepszania usług - Własność: Bierze pełną odpowiedzialność za wyniki swojej pracy, zapewniając doskonałość w dostarczaniu i ciągłe doskonalenie praktyk. Umiejętności opcjonalne - Obrazy natywne i GraalVM: Doświadczenie z GraalVM do kompilowania aplikacji Java w samodzielne obrazy natywne, skracające czas uruchamiania i zmniejszające zużycie pamięci - Protokoły kryptograficzne: Zrozumienie protokołów kryptograficznych i ich zastosowania w zabezpieczaniu danych i komunikacji w systemach rozproszonych - Usługi w chmurze AWS: Znajomość Usługi AWS Cloud, w tym EC2, RDS i DynamoDB oraz ich wykorzystanie we wdrażaniu, zarządzaniu i skalowaniu aplikacji w chmurze. Obowiązki kierownika technicznego Java - Projektowanie rozwiązań technicznych: Ocena i wybór odpowiednich rozwiązań technicznych i architektur po dokładnej dekompozycji, z konkretnym skoncentruj się na mikroserwisach. Obejmuje to ocenę różnych opcji i podejmowanie decyzji zgodnych z celami projektu i wymaganiami technicznymi. Zapewnienie jakości kodu: Egzekwuj standardy i konwencje kodowania w całym zespole, aby utrzymać wysoką jakość kodu. Obejmuje to prowadzenie przeglądów kodu, ustalanie najlepszych praktyk i zapewnianie spójności stylów i podejść do kodowania. Dekompozycja i dystrybucja zadań: Podziel złożone historie użytkowników na możliwe do wykonania zadania i rozdziel te zadania pomiędzy programistów, aby zoptymalizować produktywność zespołu i postęp projektu. Wymaga to głębokiego zrozumienia zakresu projektu i możliwości poszczególnych członków zespołus-Software Development: Aktywnie przyczyniaj się do kodowania i działań programistycznych, demonstrując najlepsze praktyki w inżynierii oprogramowania i służąc jako model dla zespołu programistów.-Proof of Concept (PoC) Development: Kieruj i wykonuj rozwój dowodów koncepcji dla innowacyjnych rozwiązań, nowe technologie i wzorce architektoniczne. Ma to kluczowe znaczenie dla walidacji pomysłów i określenia ich wykonalności w zakresie integracji z projektem. Współpraca między zespołami: Ułatwianie i uzgadnianie wkładu z innymi zespołami, zapewniając płynną integrację i współpracę pomiędzy różnymi częściami organizacji. Obejmuje to przekazywanie wymagań technicznych, zależności i harmonogramów — Zaangażowanie interesariuszy: Ściśle współpracuj z właścicielami produktów i interesariuszami, aby dokładnie oszacować czas trwania zadań, informować o wyzwaniach technicznych i w razie potrzeby dostosowywać harmonogramy projektu. Obejmuje to przełożenie szczegółów technicznych na kontekst biznesowy i zapewnienie, że produkty projektu spełniają potrzeby biznesowe