W skrócie
- Zadania: Twórz nowoczesne rozwiązania technologiczne w zespole inżynierów.
- Firma: Globalna firma IT, część DXC Technology, z innowacyjną kulturą pracy.
- Benefity: Atrakcyjne wynagrodzenie, benefity zdrowotne, praca zdalna i rozwój zawodowy.
- Pozostałe informacje: Dynamiczne środowisko z doskonałymi możliwościami rozwoju kariery.
- Dlaczego ta praca: Pracuj nad przełomowymi projektami w dziedzinie bezpieczeństwa technologii.
- Kwalifikacje: Doświadczenie w programowaniu systemowym i umiejętności współpracy w zespole.
Przewidywane wynagrodzenie mieści się w przedziale 135000 - 165000 zł za rok.
DXC Luxoft jest globalną firmą świadczącą usługi IT i konsultingowe, będącą częścią DXC Technology, dostarczającą nowoczesne rozwiązania cyfrowe i programowe na całym świecie. Współpracujemy z wiodącymi instytucjami finansowymi i globalnymi przedsiębiorstwami, pomagając im w transformacji i skalowaniu dzięki nowoczesnej technologii.
Opis projektu: AMD buduje platformę zabezpieczeń wspomaganą sprzętowo, która wykorzystuje liczniki monitorowania wydajności (PMC) na poziomie krzemu oraz uczenie maszynowe 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 generowania 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 niskolatencyjną linię 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 linii 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ługa 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 kwestii cyklu życia API, takich jak rejestracja konsumentów, zgodność, wersjonowanie, obsługa błędów i dokumentacja integracji.
- Implementacja dokładnej atrybucji telemetrycznej na poziomie procesu i wątku zebranych wyników wnioskowania.
- Profilowanie i optymalizacja przepustowości linii danych, 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 linii danych runtime 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:
- Doświadczenie w rozwijaniu sterowników w trybie jądra Windows i/lub ściśle powiązanych komponentów niskopoziomowych Windows.
- 4+ lata doświadczenia zawodowego w programowaniu systemowym w języku C lub C++. Doświadczenie w Rust również jest istotne, gdy jest poparte silnym doświadczeniem w systemach niskopoziomowych.
- Praktyczne doświadczenie z koncepcjami programowania jądra Windows i mechanizmami komunikacji między sterownikiem a przestrzenią użytkownika.
- 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 potoków wielowątkowych.
- 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 jądra i przestrzeni użytkownika Windows.
- Doświadczenie w rozwijaniu niezawodnego oprogramowania produkcyjnego z wyraźnym zarządzaniem błędami, diagnostyką, testowaniem i utrzymywaniem.
- 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 specyfikacjami technicznymi 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 dziedzinie.
Umiejętności mile widziane:
- Doświadczenie w integracji 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ścia 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 Proof-of-Concept.
- 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
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ń.