W skrócie
- Zadania: Twórz i wdrażaj zaawansowane rozwiązania do monitorowania wydajności w systemach Windows.
- Firma: AMD - lider w technologii zabezpieczeń sprzętowych.
- Benefity: Atrakcyjne wynagrodzenie, możliwość pracy zdalnej i rozwój zawodowy.
- Pozostałe informacje: Możliwość rozwoju kariery w ekscytującym obszarze bezpieczeństwa IT.
- Dlaczego ta praca: Pracuj nad innowacyjnymi projektami w dynamicznym środowisku technologicznym.
- Kwalifikacje: Doświadczenie w programowaniu systemowym oraz umiejętności współpracy w zespole.
Przewidywane wynagrodzenie mieści się w przedziale 135000 - 165000 zł za rok.
AMD buduje platformę zabezpieczeń wspomaganą sprzętowo, która wykorzystuje liczniki monitorowania wydajności (PMC) na poziomie krzemu oraz uczenie maszynowe na chipie do wykrywania zaawansowanych zagrożeń końcowych, w tym ransomware, złośliwego oprogramowania bezplikowego i cryptojacking, na poziomie procesora, poniżej poziomu OS. Platforma zbiera telemetrię behawioralną CPU, klasyfikuje ją za pomocą silnika wnioskowania ML i udostępnia sygnały zagrożenia partnerom oprogramowania zabezpieczającego poprzez ustandaryzowane API. Projekt obejmuje pełną ścieżkę inżynieryjną od telemetrii krzemu i generacji danych przez szkolenie i walidację ML, wnioskowanie w czasie rzeczywistym, kwalifikację laboratoryjną i integrację z partnerami.
Programista czasu rzeczywistego będzie prowadzić strumień pracy związany z uruchamianiem i integracją, w tym niskolatencyjny pipeline danych Windows, integrację z czasem wnioskowania ML oraz rozwój warstwy SDK/API używanej przez partnerów oprogramowania zabezpieczającego. Jest to rola skoncentrowana na systemie Windows, wymagająca regularnej pracy na miejscu w Gdańsku. Dodatkowe szczegóły dotyczące wdrożenia zostaną przekazane podczas procesu rekrutacji zgodnie z obowiązującymi wymaganiami poufności.
Obowiązki:
- Projektowanie i wdrażanie wysokoprzepustowych, niskolatencyjnych pipeline'ów danych, które przesyłają telemetrię CPU z komponentu w trybie jądra Windows do użytkowego czasu wnioskowania ML.
- Rozwój niezawodnych mechanizmów komunikacyjnych między komponentami w trybie jądra Windows a komponentami w przestrzeni użytkownika.
- Rozwój i utrzymanie warstwy integracji wnioskowania w czasie rzeczywistym, w tym ładowanie modeli, przygotowanie wejść, wykonanie wnioskowania, obsługę wyników i odzyskiwanie błędów.
- Integracja produkcyjnych czasów wnioskowania ML, takich jak ONNX Runtime, OpenVINO lub równoważne technologie.
- Projektowanie i wdrażanie stabilnej warstwy SDK/API do dostarczania zatwierdzonych sygnałów zagrożenia partnerom oprogramowania zabezpieczającego.
- Wsparcie cyklu życia API, takie jak rejestracja konsumentów, zgodność, wersjonowanie, obsługa błędów i dokumentacja integracji.
- Implementacja dokładnej atrybucji telemetrycznej i wyników wnioskowania na poziomie procesu i wątku.
- Profilowanie i optymalizacja przepustowości pipeline'u, latencji, użycia pamięci, synchronizacji i obciążenia CPU.
- Projektowanie dla współbieżności i przewidywalnej wydajności przy użyciu odpowiednich mechanizmów, takich jak pamięć dzielona, bufory pierścieniowe, kolejki bezblokujące, przetwarzanie asynchroniczne lub równoważne techniki.
- Rozwój testów jednostkowych, integracyjnych, regresyjnych, obciążeniowych i stresowych dla pipeline'u czasu rzeczywistego i warstwy integracji z partnerami.
- Wsparcie weryfikacji sprzętu w pętli na odpowiednich platformach Windows i konfiguracjach systemowych.
- Współpraca z inżynierami laboratorium i ML w celu odtworzenia przechwyconej telemetrii, walidacji integracji modelu i badania zachowania end-to-end.
- Diagnozowanie i rozwiązywanie problemów w komponentach w trybie jądra, usługach w przestrzeni użytkownika, czasach wnioskowania i interfejsach skierowanych do partnerów.
- Dokumentowanie architektury runtime, protokołów komunikacyjnych, specyfikacji API, charakterystyk wydajności, procedur integracyjnych i znanych ograniczeń.
- Regularna praca na miejscu w Gdańsku i bliska współpraca z środowiskiem walidacji sprzętu.
Wymagane umiejętności:
- 4+ lata doświadczenia zawodowego w programowaniu systemowym w języku C lub C++. Doświadczenie w Rust również jest istotne, gdy jest wspierane przez silne doświadczenie w systemach niskiego poziomu.
- Praktyczne doświadczenie z koncepcjami programowania jądra Windows i mechanizmami komunikacji między sterownikami a przestrzenią użytkownika.
- Doświadczenie w rozwijaniu, integrowaniu, debugowaniu lub walidacji sterowników w trybie jądra Windows lub ściśle powiązanych komponentów Windows niskiego poziomu.
- Doświadczenie w budowaniu oprogramowania czasu rzeczywistego, bliskiego rzeczywistości, o wysokiej przepustowości lub niskiej latencji.
- Praktyczna wiedza na temat jednego lub więcej mechanizmów komunikacji o wysokiej wydajności lub współbieżności, takich jak pamięć dzielona, pamięć mapowana I/O, bufory pierścieniowe, kolejki bezblokujące, asynchroniczne I/O lub wielowątkowe pipeline'y.
- Silne zrozumienie współbieżności, synchronizacji, zarządzania pamięcią, zachowania procesów i wątków oraz projektowania oprogramowania wrażliwego na wydajność.
- Silne umiejętności debugowania i profilowania w komponentach Windows w trybie jądra i przestrzeni użytkownika.
- Doświadczenie w rozwijaniu niezawodnego oprogramowania produkcyjnego z wyraźnym zarządzaniem błędami, diagnostyką, testowaniem i łatwością konserwacji.
- Doświadczenie w rozwijaniu testów jednostkowych, integracyjnych, regresyjnych, obciążeniowych lub stresowych dla oprogramowania systemowego.
- Umiejętność analizy i redukcji latencji, obciążenia CPU, użycia pamięci, kontencji i innych wąskich gardeł wydajności w czasie działania.
- Umiejętność pracy z dokumentacją techniczną i dokumentowania architektury, interfejsów, protokołów i procedur integracyjnych.
- Umiejętność regularnej pracy na miejscu w Gdańsku.
- Wykształcenie wyższe w dziedzinie informatyki, inżynierii elektrycznej, inżynierii komputerowej lub pokrewnej dziedziny.
Umiejętności dodatkowe:
- Doświadczenie w integrowaniu czasów wnioskowania ML, takich jak ONNX Runtime, OpenVINO, TensorRT, DirectML lub równoważne technologie.
- Doświadczenie w rozwijaniu SDK, bibliotek lub API używanych przez zewnętrznych partnerów lub wielu niezależnych konsumentów.
- Doświadczenie z wersjonowaniem API, zgodnością wsteczną, projektowaniem schematów, zarządzaniem subskrybentami lub wsparciem integracji z partnerami.
- Znajomość monitorowania wydajności sprzętu x86-64, telemetrii CPU, PMC, PMU, śledzenia systemu lub profilowania procesora.
- Doświadczenie z ramami sterowników Windows, zestawem narzędzi Windows Driver Kit, WinDbg, śledzeniem ETW/ETL, KMDF, UMDF, IOCTL lub pokrewnymi technologiami Windows.
- Doświadczenie z testowaniem sprzętu w pętli, walidacją platformy lub integracją w różnych konfiguracjach sprzętowych.
- Doświadczenie w optymalizacji oprogramowania dla GPU, NPU, DSP lub innych akceleratorów sprzętowych.
- Znajomość technologii obliczeniowych GPU AMD, przyspieszenia AI w Windows lub porównywalnych modeli programowania GPU/NPU.
- Doświadczenie z atrybucją telemetryczną na poziomie procesu lub wątku.
- Tło w zakresie bezpieczeństwa końcowego, oprogramowania EDR, monitorowania systemu, oprogramowania antywirusowego lub innych systemów wrażliwych na bezpieczeństwo.
- Zrozumienie przygotowania wejść modelu, pakowania, wykonania wnioskowania, interpretacji wyników i obsługi błędów w czasie działania.
- Znajomość procesów podpisywania sterowników lub certyfikacji sterowników Windows. Doświadczenie z WHQL jest pomocne, ale nie jest wymagane w fazie dowodu koncepcji.
- Doświadczenie w pracy w różnych obszarach firmware, sterowników, usług systemowych, platform sprzętowych i interfejsów na poziomie aplikacji.
Real-Time Developer in Gdańsk – 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.