
Citi to globalna firma z sektora bankowości i usług finansowych, obsługująca konsumentów, korporacje, rządy i instytucje. Jej oferta obejmuje bankowość konsumencką, karty kredytowe, zarządzanie majątkiem, bankowość korporacyjną i inwestycyjną, a działalność operacyjna prowadzona jest w ponad 100 krajach. Jako duża międzynarodowa organizacja finansowa Citi łączy zespoły pracujące w obszarach bankowości, usług finansowych i fintechu.
Starszy główny programista mikrousług Java
Kieruj mikrousługami Java i modernizacją integracji z podstawowymi systemami bankowymi w Citi. Prowadź zespoły techniczne pracujące nad niezawodnym przesyłaniem komunikatów, bazami danych i architekturą natywną dla chmury.
Opis
- Wyznaczać architekturę i kierować tworzeniem integracji z podstawowymi systemami bankowymi oraz nowoczesnego ekosystemu mikrousług.
- Mentorować programistów, inżynierów backendu i specjalistów ds. integracji.
- Planować realizację złożonych integracji: od architektury i podziału prac po szacunki, przydział zasobów i priorytety kamieni milowych.
- Weryfikować kod, pull requesty i projekty architektury.
- Koordynować współpracę z zespołami biznesowymi, architektury korporacyjnej, baz danych i infrastruktury, bezpieczeństwa informacji oraz dostawcami.
- Doradzać w sprawach eskalacji, wstępnej analizy incydentów produkcyjnych i badania ich przyczyn źródłowych.
- Prowadzić spotkania Agile i Scrum wspierające niezawodną realizację.
- Tworzyć i wdrażać skonteneryzowane mikrousługi Java z użyciem Spring Boot, Spring Cloud oraz API REST lub gRPC.
- Projektować modele danych i warstwy trwałego przechowywania, optymalizować zapytania i indeksy oraz rozwiązywać problemy z pulami połączeń i blokowaniem wierszy.
- Tworzyć wysoce dostępne, odporne na awarie integracje z odtwarzaniem po awarii i minimalnym zakłóceniem działalności firmy.
- Modernizować systemy TIBCO BusinessWorks i IBM MQ za pomocą Apache Kafka oraz natywnych dla chmury mikrousług Java.
- Łączyć platformy bankowe na potrzeby wykrywania oszustw, systemów płatniczych, rozliczeń i rozrachunków oraz korporacyjnych ksiąg głównych.
- Stosować podstawowe zabezpieczenia, mechanizmy kontroli audytowej, regulacje finansowe, zasady ochrony danych, zarządzanie certyfikatami i standardy odporności operacyjnej.
- Zarządzać komunikacją w czasie rzeczywistym przy dużym wolumenie, przepustowością, kolejkami wiadomości niedostarczonych i routingiem z SLA poniżej sekundy.
Wymagania
- Zaawansowana znajomość Core Java, w tym Java 11, 17 lub 21, wielowątkowości, współbieżności i strojenia JVM.
- Bardzo dobra praktyczna znajomość Spring Framework, w tym Spring Boot, Spring Cloud, Spring Data, Spring Security i Spring Batch.
- Dogłębna znajomość wzorców mikrousług, takich jak Saga, CQRS, wyłączniki obwodu i routing API Gateway.
- Doświadczenie z Dockerem, Kubernetesem i OpenShift.
- Zaawansowane umiejętności w zakresie Oracle 19c lub nowszej wersji, SQL i PL/SQL, w tym procedur składowanych, funkcji, pakietów i wyzwalaczy.
- Ekspercka wiedza w zakresie optymalizacji zapytań, analizy planów wykonania, projektowania indeksów, partycjonowania i gromadzenia statystyk.
- Biegłość w HikariCP, rozwiązywaniu konfliktów o blokady i zakleszczeń oraz znajomość poziomów izolacji transakcji.
- Znajomość Hibernate i JPA, w tym sposobów unikania antywzorców ORM.
- Ekspercka znajomość TIBCO BusinessWorks, TIBCO EMS oraz TIBCO Administrator lub TEA.
- Doświadczenie z IBM MQ i Apache Kafka.
- Doświadczenie z REST, OpenAPI lub Swagger, SOAP, gRPC, JSON, XML, XSD, WSDL, XPath, XSLT i kanonicznym modelowaniem danych.
- Znajomość SSL/TLS, mTLS, PKI, OAuth2, OIDC, SAML oraz zarządzania kluczami API lub tokenami.
- Doświadczenie z Git, Maven, Gradle, Harness, TeamCity, Jenkins i uDeploy.
- Doświadczenie ze Splunk, AppDynamics, Dynatrace, Prometheus, Grafana, Micrometer i śledzeniem rozproszonym.
- Doświadczenie z TDD, BDD, JUnit 5, Mockito, Testcontainers, Spring Boot Test, Pact, Spring Cloud Contract, JMeter, Gatling, SonarQube i Checkstyle.
- Dogłębna wiedza ekspercka z zakresu architektury integracyjnej w bankowości i usługach finansowych.
- Doświadczenie z wykrywaniem oszustw, systemami płatniczymi, księgowością księgi głównej oraz systemami przetwarzania transakcji lub operacji handlowych.
- Znajomość przepływów transakcyjnych, STP, dostarczania dokładnie jeden raz, idempotencji i odporności komunikacji przy dużym wolumenie.
- Znajomość regulacji bankowych, gotowości audytowej, odporności operacyjnej i ram ochrony danych.
- Udokumentowana umiejętność kierowania zespołami technicznymi, mentoringu i zarządzania nimi.
- Udokumentowana umiejętność zarządzania realizacją od początku do końca, mapami drogowymi architektury, zakresem, porządkowaniem backlogu, szacowaniem i ustalaniem priorytetów.
- Umiejętności zarządzania relacjami z interesariuszami, komunikacji technicznej i prezentacji, pracy w Agile, Scrum lub Kanban, planowania sprintów i nadzoru nad wydaniami.
Benefity
- Równe szanse zatrudnienia.
- Racjonalne usprawnienia dla osób z niepełnosprawnościami.
- Wsparcie dostępności w procesie ubiegania się o pracę.