Senior Embedded Linux Engineer (Yocto)
Summary
Senior Embedded Linux engineer developing an IoT device for an international engineering client: ~70-80% of the time is C/C++ application development, with the rest on Yocto Project OS configuration, software integration, and hardware platform setup, including hands-on hardware bring-up and debugging. Remote from Cracow, Poland.
Dołącz do projektu realizowanego dla międzynarodowej firmy inżynieryjnej, specjalizującej się w rozwoju technologii, oprogramowania oraz zaawansowanych produktów przemysłowych.
Poszukujemy doświadczonego Embedded Linux Engineer, który będzie uczestniczyć w rozwoju nowoczesnego urządzenia IoT. Projekt łączy programowanie aplikacji w środowisku Embedded Linux z konfiguracją i rozwojem systemu operacyjnego przy użyciu Yocto Project.
Około 70–80% czasu pracy będzie poświęcone rozwojowi aplikacji w językach C i C++, a pozostałe 20–30% zadaniom związanym z Yocto, integracją oprogramowania i konfiguracją platformy sprzętowej.
Jeśli masz doświadczenie w rozwoju aplikacji Embedded Linux, dobrze znasz C/C++ i pracowałeś z Yocto Project, zapraszamy do aplikowania!
Wymagania
- Doświadczenie w pracy z systemami Embedded Linux.
- Praktyczna znajomość języka C w programowaniu aplikacji user-space w systemach Linux.
- Dobra znajomość C++ i doświadczenie w tworzeniu aplikacji dla środowisk Embedded Linux.
- Doświadczenie w programowaniu wielowątkowym oraz znajomość mechanizmów synchronizacji, takich jak mutex, semaphore i condition variable.
- Doświadczenie w tworzeniu aplikacji asynchronicznych i zdarzeniowych.
- Znajomość CMake i konfiguracji procesu budowania oprogramowania.
- Znajomość Pythona w zakresie skryptów, narzędzi wspierających, testów automatycznych i walidacji.
- Znajomość protokołu MQTT oraz komunikacji między urządzeniami IoT.
- Znajomość formatów wymiany danych, w szczególności JSON.
- Dobra znajomość systemd, w tym konfiguracji usług, timerów i uruchamiania aplikacji.
- Znajomość relacyjnych baz danych, szczególnie SQLite3.
- Doświadczenie w pracy z Yocto Project, w tym tworzeniu i modyfikacji recipes, konfiguracji MACHINE i DISTRO oraz integracji pakietów i aplikacji.
- Doświadczenie w przygotowywaniu i utrzymaniu BSP.
- Znajomość konfiguracji i customizacji Linux Kernel oraz U-Boot.
- Umiejętność tworzenia, modyfikowania i analizowania Device Tree (DTS/DTSI).
- Doświadczenie w uruchamianiu nowego sprzętu i integracji komponentów na platformach Embedded Linux.
Wymagania sprzętowe
- Praktyczna umiejętność obsługi oscyloskopu, analizatora logicznego i multimetru.
- Umiejętność wykonywania podstawowych pomiarów elektrycznych, obejmujących napięcie, prąd i sygnały cyfrowe.
- Umiejętność wykonywania prostych modyfikacji sprzętowych, w tym lutowania elementów SMD.
- Doświadczenie w podłączaniu przewodów pomiarowych i przygotowywaniu stanowiska do debugowania sprzętu.
Mile widziane
- Znajomość Git i doświadczenie w pracy z wykorzystaniem Code Review.
- Doświadczenie z narzędziami CI/CD, takimi jak GitLab CI lub Jenkins.
- Znajomość Dockera.
- Doświadczenie z architekturami ARM Cortex-A.