Hexagon AB
Hexagon AB
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