Senior Software Development Engineer in Test in Katowice

Senior Software Development Engineer in Test in Katowice

Katowice Pełny etat 54000 - 66000 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 dynamiczną kulturą pracy.
  • Benefity: Atrakcyjne wynagrodzenie, benefity zdrowotne, praca zdalna oraz możliwości rozwoju zawodowego.
  • Pozostałe informacje: Dynamiczne środowisko z doskonałymi możliwościami rozwoju kariery.
  • Dlaczego ta praca: Pracuj z najnowszymi technologiami i wpływaj na innowacyjne projekty.
  • Kwalifikacje: Doświadczenie w automatyzacji testów oraz umiejętności współpracy w zespole.

Przewidywane wynagrodzenie mieści się w przedziale 54000 - 66000 zł za rok.

Opis projektu: Budujemy wewnętrzną platformę handlową obejmującą zarządzanie zamówieniami, realizację i analizę danych. Działa ona 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łaszczyć 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łaszczenie 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 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 zdarzeniowych end-to-end: 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 harnessów 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 zasianymi danymi 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 bazach danych relacyjnych i analitycznych. 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óźnienia i przepustowość: projektowanie i uruchamianie testów obciążeniowych, stresowych, wytrzymałościowych i szczytowych na usługach, pipeline'ach komunikacyjnych, streamingowych i API 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 CPU, GC, zapytania lub warstwy sieciowej.
  • Zapytania do baz danych: śledzenie wydajności zapytań w magazynach 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.

Umiejętności:

  • Musisz mieć:
    • 5+ lat doświadczenia w automatyzacji testów backendowych lub usług, w tym projektowaniu frameworków.
    • Silne umiejętności w Pythonie (pytest, requests, asyncio, confluent-kafka lub podobne) do frameworków testowych, narzędzi i walidacji danych.
    • Silne umiejętności w Javie (JUnit 5, REST Assured, AssertJ lub podobne) do testowania usług JVM.
    • Umiejętności w 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 umiejętności SQL i doświadczenie z bazami danych (PostgreSQL, SQL Server lub podobne) do konfiguracji danych testowych, weryfikacji i czyszczenia.
    • Znajomość baz danych kolumnowych lub analitycznych.
    • Praktyczne doświadczenie w testach 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, uwierzytelniania i 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ń, skrypty powłoki, systemd, procesy, sieci i rozwiązywanie 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.
  • Miło 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 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 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 in Katowice

Automatyzacja testów backendowych
Projektowanie frameworków testowych
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)