Poszukujemy C++ Embedded Developera, który dołączy do zespołu rozwijającego oprogramowanie dla nowoczesnych urządzeń IoT opartych na platformach embedded. Osoba na tym stanowisku będzie uczestniczyć w projektowaniu i rozwoju oprogramowania umożliwiającego zdalne monitorowanie, diagnostykę oraz sterowanie urządzeniami, a także wdrażaniu funkcjonalności zwiększających komfort użytkowników i efektywność działania systemów.
Zakres obowiązków
- współpraca z analitykami i architektem oprogramowania przy doprecyzowywaniu wymagań,
- projektowanie rozwiązań z uwzględnieniem testowalności oraz możliwości ponownego wykorzystania kodu,
- tworzenie i rozwój oprogramowania aplikacyjnego w standardzie C++17,
- analiza oraz usuwanie błędów wykrywanych podczas testów integracyjnych,
- udział w przeglądach kodu i proponowanych rozwiązań architektonicznych,
- tworzenie narzędzi wspierających proces wytwarzania oprogramowania oraz skryptów automatyzujących, głównie w Pythonie 3.8+,
- diagnozowanie oraz rozwiązywanie problemów pojawiających się w aplikacjach.
Wymagania
- doświadczenie w realizacji projektów programistycznych o średniej lub dużej skali,
- bardzo dobra znajomość C++17,
- praktyczna znajomość systemu Linux oraz Yocto Project,
- umiejętność programowania w Pythonie,
- dobra znajomość programowania obiektowego oraz wzorców projektowych,
- doświadczenie w projektowaniu oprogramowania dla urządzeń embedded o ograniczonych zasobach sprzętowych,
- znajomość zagadnień związanych z aplikacjami wielowątkowymi, komunikacją między wątkami oraz mechanizmami synchronizacji w systemach czasu rzeczywistego,
- praktyczna znajomość CMake,
- dobra znajomość języka angielskiego w mowie i piśmie.
Mile widziane
- znajomość protokołów sieciowych oraz technologii TCP/IP,
- podstawowa wiedza z zakresu elektroniki cyfrowej oraz interfejsów komunikacyjnych, takich jak UART i CAN,
- doświadczenie w rozwoju BSP dla FreeRTOS i/lub Linux,
- znajomość środowisk Docker oraz Kubernetes,
- doświadczenie w pracy z narzędziami Git i Jira.
Oferujemy
- możliwość pracy nad zaawansowanymi rozwiązaniami z obszaru systemów embedded i IoT,
- udział w projektach obejmujących zarówno oprogramowanie, jak i współpracę z warstwą sprzętową,
- realny wpływ na architekturę, dobór technologii oraz kierunek rozwoju projektu,
- pracę w zespole stawiającym na współpracę, wymianę wiedzy i wysoką jakość dostarczanych rozwiązań.