
Hexagon AB opracowuje technologie pomiarowe, pozycjonowania, sensoryczne, cyfrowych bliźniaków, inteligencji przestrzennej i autonomicznej robotyki dla przemysłu oraz infrastruktury. Rozwiązania firmy łączą wysokoprecyzyjne czujniki i skanery, technologie trójwymiarowego odwzorowania rzeczywistości, platformy symulacyjne, analitykę opartą na sztucznej inteligencji, sterowanie ruchem i robotykę, wspierając precyzyjne planowanie, inspekcje, automatyzację oraz działania autonomiczne. Firma obsługuje klientów z sektorów budownictwa i infrastruktury, produkcji, automatyzacji fabryk, systemów lotniczych i kosmicznych, energetyki oraz badań naukowych.
Starszy inżynier oprogramowania wbudowanego — praca zdalna w Kanadzie
Twórz oprogramowanie układowe ECU o znaczeniu dla bezpieczeństwa dla cyfrowych technologii górniczych i systemów sterowania pojazdami firmy Hexagon Mining. Projektuj, testuj i uruchamiaj systemy wbudowane przeznaczone do produkcji seryjnej.
Opis
- Tworzenie, debugowanie i utrzymywanie wbudowanego oprogramowania układowego w C i C++ dla bezpiecznych systemów ECU sterowania pojazdami
- Prowadzenie oprogramowania układowego od zdefiniowanych wymagań do zweryfikowanego wydania
- Budowanie i utrzymywanie komunikacji pojazdów z użyciem CAN 2.0A/B, J1939, protokołów CAN wyższej warstwy oraz łączy szeregowych
- Tworzenie oprogramowania wejścia-wyjścia i sterowania elementami wykonawczymi dla wejść cyfrowych i analogowych, wyjść PWM i proporcjonalnych, w tym kondycjonowania sygnałów, skalowania, kalibracji i kontroli wiarygodności
- Implementowanie diagnostyki, wykrywania usterek i działania bezpiecznego w razie awarii za pomocą watchdogów, monitorów, klasyfikacji usterek i przejść do stanu bezpiecznego
- Pomaganie w migracji i modernizacji produkcyjnej platformy oprogramowania układowego dla obecnego sprzętu
- Tworzenie oprogramowania na podstawie zdekomponowanych, identyfikowalnych wymagań przy zachowaniu identyfikowalności dwukierunkowej
- Tworzenie i utrzymywanie dokumentacji projektowej, specyfikacji interfejsów oraz zapisów weryfikacji
- Prowadzenie i udział w przeglądach projektów oraz kodu
- Tworzenie i utrzymywanie zautomatyzowanych testów jednostkowych, integracyjnych i hardware-in-the-loop dla systemów wbudowanych
- Usprawnianie potoków CI/CD na potrzeby kompilacji oprogramowania wbudowanego, analizy statycznej, testów automatycznych, kontroli wersji i przygotowywania wydań
- Praca ze współprocesorami i usługami opartymi na Linuksie, obsługującymi rejestrowanie danych, łączność, zdalną diagnostykę i obserwowalność
- Wsparcie uruchamiania na stanowisku, w pojeździe i w terenie oraz analiza problemów testów integracyjnych
- Współpraca z inżynierami sprzętu i elektryki, architektami systemów, specjalistami ds. bezpieczeństwa funkcjonalnego, zespołami oprogramowania aplikacyjnego i zarządzania produktem
Wymagania
- Wykształcenie wyższe co najmniej licencjackie lub magisterskie w dziedzinie elektrotechniki, elektroniki, inżynierii komputerowej, mechatroniki, informatyki lub pokrewnej albo równoważne potwierdzone doświadczenie
- Co najmniej 10 lat zawodowego doświadczenia w tworzeniu oprogramowania wbudowanego
- Co najmniej 2 lata doświadczenia w tworzeniu produkcyjnego oprogramowania układowego dla 32-bitowych mikrokontrolerów
- Ekspercka znajomość języka C dla systemów wbudowanych i praktyczna znajomość C++
- Doświadczenie w programowaniu stałoprzecinkowym i przy ograniczonych zasobach oraz w pracy z bazami kodu, które nie zezwalają na dynamiczną alokację pamięci
- Doświadczenie w tworzeniu systemów bare-metal lub RTOS, w tym obsłudze przerwań, projektowaniu priorytetów, planowaniu, zadaniach cyklicznych, analizie czasu i opóźnień oraz systemach wielordzeniowych
- Umiejętność interpretowania schematów sprzętowych, kart katalogowych MCU i instrukcji referencyjnych w celu konfiguracji urządzeń peryferyjnych, sterowników i wejścia-wyjścia
- Praktyczne doświadczenie z CAN 2.0A/B i J1939 lub porównywalnym protokołem wyższej warstwy
- Doświadczenie w definiowaniu i utrzymywaniu zestawów komunikatów oraz baz danych sygnałów
- Doświadczenie w analizie magistral i rozwiązywaniu usterek za pomocą standardowych narzędzi CAN
- Praktyczne doświadczenie w korzystaniu z sond debugujących, oscyloskopów, analizatorów logicznych i rejestratorów magistrali
- Doświadczenie w pracy z narzuconymi standardami kodowania, takimi jak MISRA, oraz z analizą statyczną
- Swoboda pracy w środowiskach deweloperskich Linux, z przepływami Git, przeglądami kodu i potokami CI/CD
- Doświadczenie z sieciami TCP/IP i łącznością urządzeń embedded Linux opartych na procesorach Arm z chmurą
- Mile widziane: doświadczenie z wielordzeniowymi mikrokontrolerami klasy automotive i komercyjnie certyfikowanymi platformami ECU związanymi z bezpieczeństwem
- Mile widziane: doświadczenie ze skonteneryzowanymi środowiskami kompilacji i samodzielnie hostowanymi runnerami CI
- Mile widziane: doświadczenie w utrzymywaniu BSP i warstw Yocto lub Buildroot oraz w konfiguracji jądra i drzewa urządzeń
- Mile widziane: doświadczenie z narzędziami do zarządzania wymaganiami oraz Jira, Confluence lub równoważnymi platformami
- Mile widziane: doświadczenie w tworzeniu formalnych, identyfikowalnych wymagań i dokumentów kontroli interfejsów
- Mile widziane: znajomość Pythona i skryptów powłoki do automatyzacji testów, tworzenia narzędzi i analizy danych
- Możliwość przesłania CV i listu motywacyjnego
Benefity
- Praca w pełni zdalna
- Podróże służbowe na poziomie nie większym niż 10%
- Możliwości rozwoju i ciągłego uczenia się
- Różnorodne miejsce pracy zapewniające równe szanse