W skrócie
- Zadania: Popraw bezpieczeństwo i niezawodność aplikacji bankowych, prowadząc techniczne zaangażowania z zespołami deweloperskimi.
- Firma: Wiodąca firma technologiczna w branży finansowej z innowacyjnym podejściem.
- Benefity: Atrakcyjne wynagrodzenie, elastyczne godziny pracy oraz możliwości rozwoju zawodowego.
- Pozostałe informacje: Dynamiczne środowisko z doskonałymi możliwościami rozwoju kariery.
- Dlaczego ta praca: Zyskaj doświadczenie w nowoczesnych technologiach i wpływaj na krytyczne systemy bankowe.
- Kwalifikacje: Doświadczenie w programowaniu, znajomość Java i umiejętności współpracy w zespole.
Przewidywane wynagrodzenie mieści się w przedziale 118800 - 145200 zł za rok.
Projekt koncentruje się na poprawie bezpieczeństwa, niezawodności wydania, utrzymania i odporności operacyjnej krytycznych aplikacji bankowych. Inżynierowie wdrożeniowi będą prowadzić ukierunkowane, praktyczne działania z zespołami deweloperskimi, które borykają się z wyzwaniami związanymi z usuwaniem luk w zabezpieczeniach, automatycznym testowaniem, technologią dziedziczną, stabilnością produkcji lub osiągnięciem bezpiecznego i szybkiego cyklu wydania. Rola łączy w sobie senior software engineering, DevOps, SRE, automatyzację testów, bezpieczeństwo aplikacji oraz modernizację technologii dziedzicznych. Około 70% pracy polega na praktycznym kodowaniu i konfiguracji.
Zakres techniczny obejmuje budowanie skutecznych zestawów testów automatycznych, usuwanie luk w zabezpieczeniach, przeprowadzanie analizy zależności i dostępności, aktualizację środowisk Java i NPM, modernizację aplikacji Spring i technologii dziedzicznych, poprawę pipeline'ów CI/CD, konteneryzację aplikacji, automatyzację wdrożeń oraz wprowadzenie standardowych wzorców obserwowalności i odporności.
Oczekuje się, że Ekspert FDE będzie prowadził złożone działania, współpracował bezpośrednio z interesariuszami deweloperskimi i klientami, definiował podejście do usuwania problemów technicznych, osobiście wdrażał kluczowe zmiany oraz umożliwiał zespołom klientów utrzymanie poprawionych praktyk inżynieryjnych.
Obowiązki:
- Prowadzenie ukierunkowanych działań technicznych dotyczących bezpieczeństwa, testowania, wydania, odporności i technologii dziedzicznych z zespołami deweloperskimi.
- Ocena kodu aplikacji, zależności, środowiska uruchomieniowego, pokrycia testami, architektury wdrożenia, pipeline'ów CI/CD, obserwowalności i ryzyk operacyjnych.
- Pisanie, debugowanie, przeglądanie i ulepszanie kodu i konfiguracji o jakości produkcyjnej w trakcie działań.
- Definiowanie i wdrażanie praktycznych planów modernizacji i usuwania problemów z wyraźnymi priorytetami, zależnościami, ryzykiem i mierzalnymi wynikami.
- Rozwój lub poprawa testów jednostkowych, integracyjnych, komponentowych, kontraktowych i testów dymnych wdrożeniowych przy użyciu praktyk Test-Driven Development.
- Wybór odpowiednich podejść do testowania automatycznego dla aplikacji i kierowanie ich wdrożeniem, w tym wykorzystanie asystentów kodowania AI.
- Przeprowadzanie triage'u luk w zabezpieczeniach, analiz przyczyn źródłowych i dostępności zależności, priorytetyzacja usuwania problemów, zmiany w kodzie zabezpieczającym i testy regresyjne.
- Aktualizacja Java, JVM, NPM, Spring, bibliotek open-source, zależności wewnętrznych, zainstalowanego oprogramowania, obrazów bazowych i systemów operacyjnych do wspieranych wersji.
- Ustanowienie zrównoważonych procesów zarządzania zależnościami z ciągłymi aktualizacjami bibliotek przy użyciu Renovate lub równoważnych narzędzi.
- Modernizacja aplikacji dziedzicznych i stosów middleware, w tym tych wdrożonych na WebSphere lub WebLogic.
- Konteneryzacja aplikacji przy użyciu Dockera i wsparcie wdrożenia do OpenShift.
- Poprawa kontroli źródła, zarządzania gałęziami, pull-requestów i praktyk przeglądu kodu.
- Projektowanie, wdrażanie i optymalizacja pipeline'ów CI/CD w celu zapewnienia bezpiecznych, powtarzalnych, zautomatyzowanych i łatwych wydań.
- Automatyzacja zmian w zainstalowanym oprogramowaniu i środowisku przy użyciu Ansible lub równoważnych narzędzi do zarządzania konfiguracją.
- Wdrażanie wzorców bezpiecznego kodowania, zarządzania sekretami, uwierzytelniania, autoryzacji i kontroli minimalnych uprawnień.
- Wprowadzenie standardowych wzorców obserwowalności, w tym strukturalnego logowania, metryk aplikacji, śledzenia, pulpitów, alertów i wykonalnych kontroli zdrowia.
- Udoskonalenie obsługi wyjątków, diagnostyki operacyjnej, procedur wycofywania i kontroli walidacji produkcji.
- Projektowanie lub poprawa odpornych architektur wdrożeniowych, w tym wdrożeń hot-hot cross-datacenter, gdzie to konieczne.
- Prowadzenie warsztatów technicznych i skuteczne komunikowanie decyzji technicznych, ryzyk, przeszkód, kompromisów i postępów inżynieryjnych, bezpieczeństwa, architektury, operacji, zarządzania projektami i interesariuszami.
- Zapewnienie przywództwa technicznego poprzez przeglądy kodu, coaching, standardy wielokrotnego użytku, dokumentację i transfer wiedzy do zespołów deweloperskich.
- Przyjmowanie odpowiedzialności od początkowej oceny przez wdrożenie, wdrożenie produkcyjne, stabilizację i przekazanie.
Wymagania:
- Rola wymaga obszernego doświadczenia w programowaniu, z naciskiem na rozwijanie i utrzymywanie aplikacji produkcyjnych. Kandydaci muszą aktywnie pisać i konfigurować kod, a nie tylko nadzorować architekturę lub zadania zarządzające.
- Ekspertyza w rozwoju Java i JVM jest niezbędna, podczas gdy silne umiejętności TypeScript są cenione w projektach opartych na Node.js.
- Biegłość w ekosystemie Spring i modernizacji aplikacji przedsiębiorstw Java jest wymagana.
- Kandydat powinien wykazać się niedawnym osobistym zaangażowaniem w kodowanie, debugowanie i przeglądanie kodu produkcyjnego.
- Umiejętności twarde obejmują praktyczne doświadczenie w Test-Driven Development w różnych frameworkach testowych, z solidnym zrozumieniem różnych typów testów, takich jak testy jednostkowe, integracyjne i regresyjne.
- Rola obejmuje tworzenie zautomatyzowanych zestawów testów zintegrowanych w pipeline'ach CI/CD, wraz z projektowaniem automatyzacji wydania i bram jakości.
- Silna wiedza na temat praktyk bezpiecznego kodowania, usuwania luk w zabezpieczeniach i zarządzania ryzykiem zależności jest niezbędna, w tym umiejętność analizy wpływu aplikacji przed zastosowaniem poprawek bezpieczeństwa.
- Doświadczenie w aktualizacji środowisk, frameworków, bibliotek, platform kontenerowych, takich jak Docker lub OpenShift, oraz zarządzaniu środowiskami Linux - najlepiej Red Hat Enterprise Linux - jest również ważne.
- Znajomość narzędzi do budowy, takich jak Maven, Gradle lub npm, zaawansowane przepływy pracy Git oraz kompleksowe techniki debugowania produkcji są oczekiwane.
- Kandydaci powinni rozumieć obserwowalność aplikacji, obsługę wyjątków i gotowość produkcyjną, a także podstawowe zasady inżynierii systemów rozproszonych i krytycznych.
Umiejętności miękkie:
- Skupienie na wykazanej odpowiedzialności za złożoną pracę techniczną na wszystkich etapach, od projektowania po przekazanie produkcji.
- Silna komunikacja z klientem jest niezbędna, w tym prowadzenie dyskusji technicznych, konstruktywne kwestionowanie niebezpiecznych praktyk i wyjaśnianie kompromisów różnym interesariuszom.
- Umiejętność coachingu inżynierów i wdrażania zrównoważonych standardów inżynieryjnych bez nadmiernej personalizacji jest kluczowa.
- Odpowiedzialne i aktywne korzystanie z narzędzi AI do kodowania w celu poprawy wyników inżynieryjnych, testowych i dostarczających jest również oczekiwane.
Miłe widzieć:
- Doświadczenie w modernizacji lub migracji aplikacji hostowanych na IBM WebSphere lub Oracle WebLogic, wykazujące znajomość tych platform.
- Doświadczenie w aktualizacjach głównych wersji i migracji z starszych wersji Spring lub Spring Boot, wskazujące na biegłość w przejściach frameworków.
- Doświadczenie w konfigurowaniu narzędzi do ciągłych aktualizacji zależności, takich jak Renovate lub Dependabot, pokazujące zdolność do automatyzacji zarządzania zależnościami.
- Doświadczenie w analizie dostępności zależności, analizie składu oprogramowania, ocenie CVE i usuwaniu transytywnych zależności, odzwierciedlające wiedzę o bezpieczeństwie oprogramowania i zgodności.
- Doświadczenie w automatyzacji zmian w bazach danych przy użyciu Liquibase lub Flyway, wskazujące na umiejętności w automatyzacji migracji baz danych.
- Doświadczenie w korzystaniu z Ansible lub równoważnych narzędzi do zarządzania konfiguracją i automatyzacji wdrożeń, demonstrujące biegłość w automatyzacji infrastruktury.
- Silne doświadczenie w TypeScript, Node.js i ekosystemie npm, podkreślające ekspertyzę w tych technologiach.
- Doświadczenie z Kubernetes oprócz OpenShift, pokazujące zrozumienie platform orkiestracji kontenerów.
- Doświadczenie w projektowaniu architektur wdrożeniowych hot-hot, active-active, multi-region lub cross-datacenter, denotujące wiedzę o systemach wysokiej dostępności.
- Doświadczenie w testowaniu odporności, odzyskiwaniu po awarii, kontrolowanym przełączaniu awaryjnym i ćwiczeniach odzyskiwania produkcji, podkreślające umiejętności w zakresie niezawodności systemów i planowania ciągłości.
- Doświadczenie z narzędziami do obserwowalności przedsiębiorstw, takimi jak Splunk, ELK, Grafana, Prometheus, OpenTelemetry, AppDynamics lub Dynatrace, odzwierciedlające biegłość w monitorowaniu i diagnostyce.
- Doświadczenie w modernizacji monolitycznych lub dziedzicznych aplikacji przedsiębiorstw w celu ich utrzymania.
Senior Forward Deployment Engineer in Warsaw – pracodawca: Luxoft Poland
Nasza firma to doskonały pracodawca, który oferuje stabilne zatrudnienie oraz bogaty pakiet benefitów, w tym prywatną opiekę medyczną i programy rozwoju zawodowego. Pracując jako DevOps/Cloud Engineer w dynamicznym środowisku, będziesz miał możliwość pracy z nowoczesnymi technologiami, takimi jak Azure i Kubernetes, a także korzystania z programów wewnętrznych, które wspierają rozwój kariery i mobilność między projektami. Nasza kultura pracy sprzyja innowacyjności i współpracy, co czyni nas idealnym miejscem dla osób poszukujących satysfakcjonującej i znaczącej kariery.