Dla naszego klienta realizującego projekt z obszaru urządzeń IoT i systemów Embedded Linux poszukujemy doświadczonej osoby na stanowisko Senior Embedded Linux Engineer (Application & Yocto).
Osoba na tym stanowisku będzie odpowiadać przede wszystkim za rozwój aplikacji działających w środowisku Embedded Linux, a także za przygotowanie i utrzymanie systemu operacyjnego z wykorzystaniem Yocto Project. Projekt łączy programowanie w językach C i C++ z zagadnieniami integracji oprogramowania ze sprzętem, konfiguracji systemu Linux oraz uruchamiania urządzeń embedded.
Około 70–80% czasu pracy będzie poświęcone rozwojowi aplikacji, natomiast pozostałe 20–30% obejmie prace związane z Yocto i konfiguracją platformy systemowej.
Zakres obowiązków
- Rozwój i utrzymanie aplikacji działających w przestrzeni użytkownika (user-space) systemów Embedded Linux.
- Tworzenie oprogramowania w językach C i C++, w tym aplikacji wielowątkowych, asynchronicznych i zdarzeniowych.
- Implementacja mechanizmów synchronizacji oraz zapewnienie poprawnej współpracy współbieżnie wykonywanych zadań.
- Konfiguracja i utrzymanie procesu budowania oprogramowania z wykorzystaniem CMake.
- Tworzenie skryptów, narzędzi wspomagających, testów automatycznych i rozwiązań do walidacji oprogramowania w Pythonie.
- Implementacja komunikacji pomiędzy urządzeniami IoT z wykorzystaniem protokołu MQTT oraz formatów wymiany danych, takich jak JSON.
- Konfiguracja i utrzymanie usług systemowych z wykorzystaniem systemd.
- Integracja aplikacji z relacyjnymi bazami danych, w szczególności SQLite3.
- Rozwój i utrzymanie środowiska systemowego opartego na Yocto Project, w tym tworzenie i modyfikacja recipes oraz integracja pakietów i aplikacji.
- Konfiguracja warstw MACHINE i DISTRO oraz dostosowywanie systemu operacyjnego do wymagań urządzenia.
- Przygotowanie i utrzymanie Board Support Package (BSP).
- Konfiguracja i customizacja Linux Kernel oraz U-Boot.
- Tworzenie, modyfikacja i analiza plików Device Tree (DTS/DTSI).
- Uruchamianie i integracja nowego sprzętu oraz diagnozowanie problemów na styku oprogramowania i hardware’u.
- Wykonywanie pomiarów elektrycznych i sprzętowych na potrzeby uruchamiania oraz debugowania urządzeń.
Wymagania
- Doświadczenie w rozwoju oprogramowania dla systemów Embedded Linux.
- Praktyczna znajomość języka C w kontekście aplikacji user-space.
- Dobra znajomość języka C++ i doświadczenie w tworzeniu aplikacji dla platform embedded.
- 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.
- Praktyczna znajomość CMake oraz konfiguracji procesów budowania oprogramowania.
- Znajomość Pythona w zakresie skryptowania, automatyzacji testów i walidacji rozwiązań.
- Znajomość protokołu MQTT oraz zagadnień 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, w szczególności SQLite3.
- Praktyczne doświadczenie z Yocto Project, obejmujące tworzenie i modyfikację recipes, konfigurację MACHINE i DISTRO oraz integrację oprogramowania.
- Doświadczenie w przygotowywaniu i utrzymaniu BSP.
- Znajomość konfiguracji i customizacji Linux Kernel w środowisku Yocto.
- Znajomość konfiguracji i customizacji U-Boot.
- Umiejętność tworzenia, modyfikacji i analizy Device Tree (DTS/DTSI).
- Doświadczenie w uruchamianiu i integracji sprzętu na platformach Embedded Linux.
- Praktyczna umiejętność korzystania z oscyloskopu, analizatora logicznego i multimetru.
- Umiejętność wykonywania podstawowych pomiarów elektrycznych, w tym pomiarów napięcia, prądu i sygnałów cyfrowych.
- Zdolność do wykonywania prostych modyfikacji hardware’u, takich jak lutowanie elementów SMD, podłączanie przewodów pomiarowych i przygotowywanie stanowiska do debugowania.
Mile widziane
- Znajomość systemu kontroli wersji 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 w pracy z architekturami ARM Cortex-A.
Informacje o projekcie
- Obszar: Embedded Linux, rozwój aplikacji i Yocto Project.
- Produkt: Urządzenia IoT.
- Proporcje pracy: Około 70–80% rozwoju aplikacji i 20–30% prac związanych z Yocto.
- Forma pracy: Zdalna, z preferencją dla osób z Wrocławia.
- Dostępność: Start w styczniu 2027 roku.
- Zaangażowanie: Pełny etat, projekt przewidziany na ponad rok.
Szukamy doświadczonego inżyniera, który swobodnie łączy rozwój aplikacji w C/C++ z wiedzą o systemach Embedded Linux, a jednocześnie potrafi pracować na styku oprogramowania i sprzętu. Jeśli masz doświadczenie w tworzeniu urządzeń embedded i chcesz rozwijać rozwiązania IoT, zapraszamy do aplikowania.
Powrót do listy