About this role
Summary: The Senior MLOps Engineer will manage the AI training platform, focusing on GPU infrastructure, Kubernetes, and Python. Responsibilities include scheduling GPU resources, maintaining training environments, building data pipelines, and serving as the primary on-call engineer for AI tools and infrastructure.
Jak sprawić, żeby badacze AI trenowali modele na stabilnej, powtarzalnej platformie, bez kolejek do GPU i bez tygodni na konfigurację środowiska?
Odpowiedź leży w infrastrukturze: harmonogramowaniu zasobów GPU, narzędziach dla badaczy i dyżurze, który pozwala szybko reagować, gdy coś przestaje działać.
W Etteplan szukamy Senior MLOps Engineera, który przejmie odpowiedzialność za platformę, na której zespół AI naszego klienta trenuje i ocenia modele rekonstrukcji mowy. Dołączysz do małego zespołu platformowego, w którym współpracujesz na co dzień z badaczami AI oraz z drugim inżynierem odpowiedzialnym za usługi webowe i infrastrukturę produkcyjną.
Od ponad 40 lat łączymy wiedzę inżynierską z nowoczesnymi technologiami. Tworzymy rozwiązania z obszaru software, embedded systems i zaawansowanej inżynierii, pomagając klientom rozwijać produkty i systemy wykorzystywane w rzeczywistym świecie.
Rola w skrócie
Obszar: platforma treningowa AI (MLOps), infrastruktura GPU, narzędzia dla badaczy
Kluczowe technologie: Kubernetes, Slurm, CUDA, PyTorch, MLflow / Weights & Biases / DVC, Terraform, Python
Główne zagadnienia: harmonogramowanie GPU, środowiska treningowe, pipeline'y danych audio, narzędzia dla badaczy, eksport modeli na urządzenia, dyżury on-call, zgodność z GDPR
Środowisko: serwery GPU on-premise i chmura (AWS, GCP lub Azure), Linux
Poziom: Senior
O projekcie i Twojej roli
Dołączysz do zespołu klienta rozwijającego technologię rekonstrukcji mowy opartą na AI. Będziesz odpowiadać za środowiska, w których zespół trenuje i ocenia modele, za narzędzia potrzebne badaczom oraz za dyżur, gdy te narzędzia mają problemy.
Zespół platformowy tworzą dwie role: Senior MLOps Engineer, odpowiedzialny za platformę treningową AI, oraz Senior DevOps Engineer, odpowiedzialny za usługi webowe i produkcyjną infrastrukturę. Każda z ról ma własną domenę, ale są one zaprojektowane tak, by się wzajemnie zastępować. Dzielicie jedną rotację dyżurów, recenzujecie swoją pracę, stosujecie te same praktyki infrastructure as code i CI/CD oraz zastępujecie się w czasie urlopów, incydentów i intensywnych okresów wydań.
Co chcemy osiągnąć w pierwszym roku:
- zespół AI trenuje i ocenia modele na powtarzalnej, dobrze udokumentowanej platformie z uczciwym harmonogramowaniem GPU,
- własne narzędzia do eksperymentów, ewaluacji i eksportu modeli są codziennie używane przez zespół AI,
- wspólna rotacja dyżurów z DevOps Engineerem działa, z runbookami dla obu domen,
- potrafisz przejąć obsługę usług webowych na czas nieobecności współpracownika.
Dlaczego warto?
- Odpowiadasz za całą platformę treningową. Od serwerów GPU po narzędzia, z których badacze korzystają codziennie, więc Twoja praca bezpośrednio przyspiesza rozwój modeli.
- Budujesz własne narzędzia, a nie tylko utrzymujesz cudze. Śledzenie eksperymentów, uruchamianie treningów, benchmarki i eksport modeli na urządzenia powstają z Twoim udziałem.
- Pracujesz z infrastrukturą on-premise i w chmurze. Łączysz własne serwery GPU z pojemnością w chmurze i dbasz o koszty, bezpieczeństwo i powtarzalność.
- Jesteś częścią małego, wzajemnie zastępującego się zespołu. Dzielisz dyżury, runbooki i praktyki z kolegą z DevOps, więc żadna domena nie zależy od jednej osoby.
W tej roli będziesz odpowiadać za:
- Przygotowanie i utrzymanie środowisk treningowych AI na serwerach GPU on-premise oraz w chmurze.
- Zarządzanie harmonogramowaniem GPU i współdzielonymi zasobami obliczeniowymi (Kubernetes, Slurm lub podobne), tak aby badacze mieli uczciwy i przewidywalny dostęp.
- Budowę i utrzymanie pipeline'ów i magazynów dla dużych zbiorów danych audio: z wersjonowaniem, kontrolą dostępu i obsługą danych głosowych zgodną z GDPR.
- Tworzenie własnych narzędzi dla zespołu AI, takich jak śledzenie eksperymentów, uruchamianie zadań treningowych, pipeline'y ewaluacji i benchmarków oraz eksport i pakowanie modeli dla urządzeń docelowych.
- Pełnienie roli głównego inżyniera dyżurnego (on-call) dla problemów z narzędziami AI i infrastrukturą treningową.
- Dbanie o to, aby środowiska treningowe były powtarzalne, bezpieczne i efektywne kosztowo w miarę rozwoju zespołu i modeli.
- Udział we wspólnej rotacji dyżurów obejmującej usługi produkcyjne i narzędzia AI oraz obsługę incydentów w obu domenach na podstawie wspólnych runbooków.
- Regularną pracę w domenie drugiej roli, tak aby żaden obszar nie zależał od jednej osoby.
- Utrzymywanie spójności infrastructure as code, CI/CD, zarządzania sekretami i kontroli dostępu w obu domenach.
- Pisanie i utrzymywanie runbooków, notatek architektonicznych i postmortemów, z których korzystacie obaj.
- Wsparcie w pracach nad bezpieczeństwem i zgodnością w całej firmie, w tym GDPR i obsługą danych głosowych.
Szukamy osoby, która:
- Ma co najmniej 5 lat doświadczenia w DevOps, SRE, MLOps lub inżynierii platform ML.
- Ma doświadczenie w budowie i obsłudze infrastruktury GPU do trenowania modeli ML: sterowniki NVIDIA, CUDA, kontenery z obsługą GPU oraz trening na wielu GPU lub wielu węzłach.
- Zna narzędzia ML, takie jak PyTorch, trening rozproszony, MLflow, Weights & Biases lub DVC.
- Ma doświadczenie w budowie wewnętrznych narzędzi i procesów dla badaczy lub data scientistów.
- Dobrze zna administrację Linuxem i podstawy sieci.
- Zna infrastructure as code (Terraform, OpenTofu, Pulumi lub podobne) oraz zarządzanie konfiguracją (Ansible lub podobne).
- Zna kontenery i orkiestrację: Docker i Kubernetes.
- Zna pipeline'y CI/CD (GitHub Actions, GitLab CI lub podobne).
- Bardzo dobrze zna Pythona i skrypty shell. Znajomość Go lub innego języka kompilowanego jest dodatkowym atutem.
- Zna monitoring, logowanie i alertowanie (Prometheus, Grafana, Loki, OpenTelemetry lub podobne).
- Ma praktyczne doświadczenie z co najmniej jedną dużą chmurą (AWS, GCP lub Azure).
- Ma doświadczenie w prowadzeniu rotacji dyżurów: reagowanie na incydenty, postmortemy i ograniczanie szumu alertów.
- Chce poznawać i obsługiwać domenę drugiej roli oraz dzielić dyżur.
- Swobodnie posługuje się językiem angielskim w mowie i piśmie.
Docenimy również:
- Doświadczenie po stronie DevOps: budowanie i prowadzenie produkcyjnych usług webowych i API.
- Budowanie lokalnych (on-premise) środowisk LLM dla małych zespołów.
- Doświadczenie z danymi z obszaru mowy, audio lub przetwarzania sygnałów.
- Optymalizację i eksport modeli na urządzenia brzegowe (ONNX, TFLite/LiteRT, kwantyzacja).
- Inżynierię danych dla dużych zbiorów danych nieustrukturyzowanych (magazyny obiektowe, wersjonowanie danych, pipeline'y adnotacji).
- Optymalizację kosztów (FinOps) dla obciążeń GPU.
Jak przebiega proces rekrutacyjny?
1. Prześlij nam swoje CV w języku angielskim, dopisując w formularzu oczekiwania finansowe, preferowaną formę współpracy oraz dyspozycyjność.
2. Teraz czas na nasz ruch - analizę Twojego zgłoszenia. Jeśli przebiegła pomyślnie, zaprosimy Cię na dłuższą rozmowę w formie zdalnej (ok. 1.5h).
3. Po spotkaniu spodziewaj się feedbacku w przeciągu 2 tygodni.
4. Powyższe etapy poszły Ci jak z płatka? Świetnie! Witaj w Etteplan :)
Możesz też zajrzeć na naszą [stronę internetową](https://www.etteplan.com/) lub [Facebooka](https://www.facebook.com/EtteplanPoland/?locale=pl_PL) i zobaczyć, co ciekawego się u nas dzieje!
-
Nasza firma wdrożyła procedury ochrony sygnalistów zgodnie z obowiązującą ustawą. Każda osoba ma prawo zgłaszać nieprawidłowości w bezpieczny sposób, a zgłoszenia są objęte pełną ochroną prawną. Więcej informacji: https://www.etteplan.com/pl/kodeks-postepowania/
