W skrócie
- Zadania: Prowadzenie zaawansowanych projektów inżynieryjnych w obszarze bezpieczeństwa i modernizacji aplikacji.
- Firma: Dynamiczna firma technologiczna z innowacyjnym podejściem do rozwoju oprogramowania.
- Benefity: Stabilne zatrudnienie, prywatna opieka medyczna, program sportowy i możliwości rozwoju kariery.
- Pozostałe informacje: Możliwość pracy z najnowszymi technologiami w dynamicznym środowisku.
- Dlaczego ta praca: Pracuj nad kluczowymi projektami, które mają realny wpływ na branżę bankową.
- Kwalifikacje: Doświadczenie w programowaniu w Java oraz umiejętności w zakresie DevOps i testowania.
Przewidywane wynagrodzenie mieści się w przedziale 55688 - 68063 zł za rok.
Projekt koncentruje się na poprawie bezpieczeństwa, niezawodności wydania, utrzymania i odporności operacyjnej krytycznych aplikacji bankowych. Inżynierowie wdrożeni 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ągnięciem 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ę CI/CD, konteneryzację aplikacji, automatyzację wdrożeń oraz wprowadzenie standardowych wzorców obserwowalności i odporności.
Inżynier FDE jest zobowiązany do prowadzenia skomplikowanych działań, bezpośredniej współpracy z interesariuszami deweloperskimi i klientami, definiowania podejścia do usuwania problemów technicznych, osobistego wprowadzania krytycznych zmian oraz umożliwienia zespołom klientów utrzymania 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, CI/CD, obserwowalności i ryzyk operacyjnych.
- Pisanie, debugowanie, przeglądanie i ulepszanie kodu produkcyjnego oraz konfiguracji w trakcie 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, kontraktowych i testów dymnych wdrożeniowych przy użyciu praktyk Test-Driven Development.
- Wybór odpowiednich podejść do automatyzacji testów dla aplikacji i kierowanie ich wdrażaniem, w tym wykorzystanie AI do pomocy w kodowaniu.
- Źródło odpowiednich danych testowych i wdrażanie zabezpieczeń 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 zabezpieczeń 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ła, zarządzania gałęziami, pull-requestów i praktyk przeglądu kodu.
- Projektowanie, wdrażanie i optymalizacja pipeline'ów CI/CD, aby zapewnić bezpieczne, powtarzalne, zautomatyzowane i łatwe wydania.
- Automatyzacja zainstalowanego oprogramowania i zmian środowiskowych 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 między centrami 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.
- Przyjęcie 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 Java i JVM jest niezbędna, podczas gdy silne umiejętności TypeScript są cenione w projektach opartych na Node.js.
- Znajomość ekosystemu 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 z pipeline'ami 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 projektu po przekazanie 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.
(Możliwość dla kandydatów z siedzibą w Polsce) Koszty uzyskania przychodu na umowie o pracę dla wszystkich ról rozwojowych. Stabilne zatrudnienie na podstawie umowy o pracę. Prywatna opieka medyczna i dentystyczna oraz ubezpieczenie na życie. Program MyBenefit (karta sportowa, program wellness itp.). Program mobilności wewnętrznej - możliwość rotacji między projektami, lokalizacjami, kontami.
Senior Forward Deployment Engineer (Java) in Katowice – 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.