W skrócie
- Zadania: Prowadzenie technicznych projektów związanych z bezpieczeństwem i modernizacją aplikacji bankowych.
- Firma: Dynamiczna firma technologiczna w branży finansowej.
- Benefity: Atrakcyjne wynagrodzenie, elastyczne godziny pracy i możliwości rozwoju zawodowego.
- Pozostałe informacje: Możliwość pracy w zespole ekspertów i rozwijania umiejętności w dynamicznym środowisku.
- Dlaczego ta praca: Zyskaj doświadczenie w nowoczesnych technologiach i wpływaj na kluczowe projekty.
- Kwalifikacje: Doświadczenie w programowaniu w Java oraz umiejętności w zakresie DevOps.
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 napotykają wyzwania związane z usuwaniem luk w zabezpieczeniach, automatycznym testowaniem, technologią dziedziczną, stabilnością produkcji lub osiąganiem bezpiecznego i szybkiego cyklu wydania.
Rola łączy w sobie senior engineering software, 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ę procesó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 wyzwań technologii dziedzicznej z zespołami deweloperskimi.
- Ocena kodu aplikacji, zależności, środowiska uruchomieniowego, pokrycia testami, architektury wdrożenia, procesów CI/CD, obserwowalności i ryzyk operacyjnych.
- Pisanie, debugowanie, przeglądanie i ulepszanie kodu i konfiguracji produkcyjnej podczas działań.
- Definiowanie i wdrażanie praktycznych planów modernizacji i usuwania problemów z jasnymi priorytetami, zależnościami, ryzykiem i mierzalnymi wynikami.
- Rozwój lub poprawa testów jednostkowych, integracyjnych, komponentowych, umownych 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 wdrażaniem, w tym wykorzystanie narzędzi AI do pomocy w kodowaniu.
- Źródłowanie odpowiednich danych testowych i wdrażanie zabezpieczania danych dla niższych środowisk.
- Przeprowadzanie triage 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, wewnętrznych zależności, 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łowej, zarządzania gałęziami, pull-requestów i praktyk przeglądu kodu.
- Projektowanie, wdrażanie i optymalizacja procesów CI/CD, aby zapewnić bezpieczne, powtarzalne, zautomatyzowane i łatwe wydania.
- 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 tajemnicami, uwierzytelniania, autoryzacji i kontroli minimalnych uprawnień.
- Wprowadzenie standardowych wzorców obserwowalności, w tym strukturalnego logowania, metryk aplikacji, śledzenia, pulpitów nawigacyjnych, 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 w różnych centrach danych, gdy jest to wymagane.
- Prowadzenie warsztatów technicznych i skuteczne komunikowanie decyzji technicznych, ryzyk, przeszkód, kompromisów i postępów do inżynierii, bezpieczeństwa, architektury, operacji, zarządzania projektami i interesariuszy.
- 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.
Wymagane umiejętności:
- Rola wymaga obszernego doświadczenia w inżynierii oprogramowania, 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 opartym na Javie 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 procesach 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 konieczna, w tym umiejętność analizy wpływu aplikacji przed zastosowaniem poprawek bezpieczeństwa.
- Doświadczenie w aktualizacji środowisk uruchomieniowych, 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 do produkcji.
- Silna komunikacja z klientem jest niezbędna, w tym prowadzenie dyskusji technicznych, konstruktywne kwestionowanie niebezpiecznych praktyk oraz 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.
Senior Forward Deployment Engineer (Java) 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.