Senior Software Development Engineer in Test (Backend) in Katowice

Senior Software Development Engineer in Test (Backend) in Katowice

Katowice Pełny etat 63000 - 77000 zł / rok (szac.) Hybrydowo
L

W skrócie

  • Zadania: Twórz i rozwijaj automatyzację testów backendowych w nowoczesnej platformie handlowej.
  • Firma: Innowacyjna firma technologiczna z kulturą współpracy.
  • Benefity: Prywatna opieka medyczna, ubezpieczenie na życie oraz możliwość rotacji projektów.
  • Pozostałe informacje: Dynamiczne środowisko z doskonałymi możliwościami rozwoju kariery.
  • Dlaczego ta praca: Pracuj z najnowszymi technologiami i wpływaj na rozwój innowacyjnych rozwiązań.
  • Kwalifikacje: 5+ lat doświadczenia w automatyzacji testów backendowych oraz umiejętności programowania w Pythonie i Javie.

Przewidywane wynagrodzenie mieści się w przedziale 63000 - 77000 zł za rok.

Private Medical & Dental care & Life Insurance covered

Internal Mobility program - możliwość rotacji między projektami, lokalizacjami, kontami i innymi!

Opis projektu: Budujemy wewnętrzną platformę handlową obejmującą zarządzanie zamówieniami, realizację i analizę danych. Działa na rozproszonym, zdarzeniowym backendzie.

Szukamy praktycznego SDET, który przejmie odpowiedzialność za automatyzację testów backendowych: testy usług, integracji, kontraktów, danych, odporności i wydajności w całej platformie. Będziesz współprojektować i współwłasny z naszym UI SDET zintegrowany framework testowy, który obejmuje testy UI, API, komunikacji, danych i wydajności w jednym miejscu.

Obowiązki:

  • Współprojektowanie i współwłasność z naszym UI SDET zintegrowanego frameworku testowego, który obejmuje wszystkie obszary, które testujemy:
    • Wspólne fundamenty: fixture, dane testowe, konfiguracja, środowiska i raportowanie są wspólne dla REST, WebSocket, Kafka, baz danych, wydajności i zestawów UI.
    • Scenariusze międzywarstwowe: jeden scenariusz może śledzić przepływ pracy od UI przez usługi i zdarzenia do bazy danych.
    • Jedna perspektywa jakości: wyniki z każdego zestawu zasilają jedną perspektywę jakości wydania.
  • Projektowanie i budowanie zautomatyzowanych testów usług, integracji i kontraktów dla REST API, usług WebSocket oraz producentów i konsumentów Kafka.
  • Testowanie przepływów zdarzeń od początku do końca: porządek wiadomości, idempotencja, semantyka co najmniej raz i dokładnie raz, powtórki, obsługa offsetów, kolejki martwych listów i ewolucja schematu (Avro, Protobuf, JSON Schema, Schema Registry).
  • Budowanie narzędzi z kontrolowanymi danymi testowymi i wirtualizacją usług, aby zestawy działały konsekwentnie i mogły być powtarzane.
  • Projektowanie i budowanie izolowanych, na żądanie środowisk testowych na Linuxie i AWS:
    • Cykl życia: pełne stosy usług (usługi, Kafka, bazy danych) są tworzone na podstawie gałęzi lub uruchomienia, zaczynają się z danymi wstępnymi i znanym stanem, a następnie są automatycznie usuwane.
    • Izolacja: uruchomienia testów nie zakłócają się nawzajem ani nie wpływają na wspólne środowiska.
    • Infrastruktura: środowiska są definiowane jako kod, z uwagą na koszty.
  • Pisanie testów walidacji danych w relacyjnych i analitycznych bazach danych. Pokrycie poprawności uzgadniania i agregacji.
  • Pokrycie odporności i trybów awarii: awarie brokera i konsumenta, partycje sieciowe, przekroczenia czasu, ograniczenia, wolni konsumenci i ciśnienie zwrotne, ponowne połączenia i błędy uwierzytelniania.
  • Posiadanie testów wydajności backendu:
    • Opóźnienie i przepustowość: projektowanie i uruchamianie testów obciążeniowych, stresowych, wytrzymałościowych i szczytowych na usługach, pipeline'ach komunikacyjnych, interfejsach API do strumieniowania i zapytań.
    • Podstawy i regresje: ustalanie podstaw i celów poziomu usług (p50/p99 opóźnienia, przepustowość, opóźnienie konsumenta) oraz wychwytywanie regresji w CI.
    • Wąskie gardła: profilowanie ich aż do poziomu CPU, GC, zapytania lub warstwy sieciowej.
    • Zapytania do baz danych: śledzenie wydajności zapytań w sklepach analitycznych. Wiedza o tym, jak kształt zapytania i objętość danych wpływają na czas odpowiedzi.
  • Posiadanie wykonania testów backendowych w CI/CD: równoległe uruchomienia, zaplanowane regresje, konfiguracja i usuwanie środowisk oraz bramy jakości wydania.
  • Uczynienie awarii diagnozowalnymi: strukturalne logi, rozproszone ślady (OpenTelemetry), identyfikatory korelacji między usługami i jasne raporty.
  • Współpraca z inżynierami backendowymi, infrastrukturą, analitykami biznesowymi i traderami w celu zdefiniowania i zautomatyzowania krytycznych przepływów pracy biznesowej.
  • Używanie narzędzi wspomaganych AI tam, gdzie przyspieszają pisanie testów i analizowanie awarii.

Wymagane umiejętności:

  • 5+ lat doświadczenia w automatyzacji testów backendowych lub usługowych, w tym projektowanie frameworków.
  • Silna znajomość Pythona (pytest, requests, asyncio, confluent-kafka lub podobne) do frameworków testowych, narzędzi i walidacji danych.
  • Silna znajomość Javy (JUnit 5, REST Assured, AssertJ lub podobne) do testowania usług JVM.
  • Umiejętności TypeScript i Node.js: wkład w zestawy UI i międzywarstwowe w wspólnym frameworku oraz narzędzia oparte na Node (skrypty k6, testy API Playwright).
  • Praktyczne doświadczenie z Kafka: produkcja i konsumpcja w testach, grupy konsumentów, partycje i offsety, serializacja i rejestracja schematów oraz Kafka Streams lub Connect.
  • Solidne podstawy sieciowe: TCP/IP, HTTP/1.1 i HTTP/2, WebSockets, TLS, DNS, load balancery, opóźnienia i utrata pakietów. Umiejętność debugowania za pomocą tcpdump/Wireshark, curl i podobnych narzędzi.
  • Silne doświadczenie w SQL i bazach danych (PostgreSQL, SQL Server lub podobne) do konfiguracji danych testowych, weryfikacji i czyszczenia. Znajomość baz danych kolumnowych lub analitycznych.
  • Praktyczne doświadczenie w testowaniu wydajności i obciążenia:
    • Narzędzia: k6, Gatling, JMeter lub Locust, w tym benchmarking przepustowości Kafka.
    • Profilowanie: dostrajanie i profilowanie JVM (GC, JFR, async-profiler) lub profilowanie Pythona.
    • Analiza: poprawne odczytywanie rozkładów opóźnień i percentyli, w tym skoordynowane pominięcie.
  • Testowanie API, uwierzytelnianie i testowanie kontraktów: przepływy OAuth/JWT, walidacja ładunków i schematów oraz wirtualizacja usług (WireMock, MockServer, Hoverfly).
  • Doświadczenie w budowaniu izolowanych środowisk testowych:
    • Linux: silne umiejętności w obsłudze wiersza poleceń, z skryptowaniem powłoki, systemd, procesami, siecią i rozwiązywaniem problemów z wydajnością.
    • Kontenery: Docker, Docker Compose i Testcontainers.
    • AWS: EC2, ECS lub EKS, S3, IAM, VPC, MSK lub RDS oraz CloudWatch.
    • Infrastruktura jako kod: Terraform, CloudFormation lub CDK.
    • CI/CD z Azure DevOps lub Jenkins oraz Git.
  • Silne nawyki dotyczące niezawodności: izolowane testy, kontrolowane ponowienia, testowanie trybów awarii i triage niestabilnych testów.
  • Jasna komunikacja i dobra dokumentacja.

Umiejętności mile widziane:

  • Doświadczenie w handlu lub po stronie kupującego: OMS/EMS, protokół FIX, dane rynkowe, pozycje, alokacje lub ryzyko.
  • kdb+/q lub inne bazy danych szeregów czasowych używane do danych tickowych.
  • Testowanie kontraktów z Pact. Testowanie oparte na właściwościach (jqwik, Hypothesis).
  • Kubernetes i Helm.
  • Narzędzia do chaosu i wstrzykiwania błędów (Toxiproxy, Chaos Mesh).
  • Narzędzia do obserwowalności: OpenTelemetry, Grafana, Prometheus.
  • Doświadczenie z dużymi rozproszonymi systemami.

Senior Software Development Engineer in Test (Backend) in Katowice – pracodawca: Luxoft

Nasza firma to doskonały pracodawca, który oferuje dynamiczne środowisko pracy w sercu innowacji technologicznych. Wspieramy rozwój zawodowy naszych pracowników poprzez mentoring oraz dostęp do najnowszych technologii, a także promujemy kulturę współpracy i otwartości. Pracując z nami, będziesz miał okazję uczestniczyć w projektach, które mają realny wpływ na branżę, a lokalizacja w centrum miasta zapewnia wygodny dostęp do licznych udogodnień.

L

Dane kontaktowe:

Zespół rekrutacyjny Luxoft

Naszym zdaniem te umiejętności pozwolą ci błyszczeć jako Senior Software Development Engineer in Test (Backend) in Katowice

Automatyzacja testów backendowych
Python (pytest, requests, asyncio, confluent-kafka)
Java (JUnit 5, REST Assured, AssertJ)
TypeScript i Node.js
Doświadczenie z Kafka
Podstawy sieciowe (TCP/IP, HTTP/1.1, HTTP/2, WebSockets)
SQL i doświadczenie z bazami danych (PostgreSQL, SQL Server)