Naszym klientem jest europejska firma technologiczna specjalizująca się w tworzeniu oprogramowania dla sektora automotive, ze szczególnym naciskiem na HMI, infotainment oraz in-vehicle software. Firma realizuje projekty dla międzynarodowych producentów samochodów, rozwijając nowoczesne rozwiązania łączące embedded software, C++ i Qt. Głównym obszarem działalności są zaawansowane systemy cyfrowe i interfejsy użytkownika stosowane w samochodach nowej generacji.
Zakres odpowiedzialności
- Rozwój komponentów platformy Android Automotive oraz systemów infotainment/HMI.
- Projektowanie i implementacja rozwiązań obejmujących warstwę Android Framework, native services oraz moduły C++.
- Integracja kodu Java/Kotlin z warstwą natywną przy użyciu Android NDK, JNI, Binder i AIDL.
- Tworzenie oraz integracja usług systemowych, middleware i interfejsów HAL.
- Analiza i rozwiązywanie problemów obejmujących wiele warstw systemu: aplikację, Android Framework, kod natywny, HAL oraz Linux.
- Optymalizacja wydajności, czasu uruchamiania, stabilności oraz wykorzystania pamięci.
- Projektowanie interfejsów i architektury pomiędzy komponentami Android, C++ oraz systemami pojazdu.
- Współpraca z zespołami HMI, BSP, embedded, multimedia oraz integracji pojazdu.
- Prowadzenie przeglądów architektury i kodu oraz wsparcie techniczne mniej doświadczonych developerów.
- Udział w analizie wymagań technicznych i podejmowaniu decyzji architektonicznych.
Wymagania
- Około 5 lat doświadczenia w rozwoju Androida , w tym doświadczenie wykraczające poza standardowe aplikacje mobilne.
- Bardzo dobra znajomość C++, w tym programowania wielowątkowego, zarządzania pamięcią i debugowania kodu natywnego.
- Praktyczne doświadczenie z Android AOSP, Android Framework lub Android Automotive OS.
- Doświadczenie z Android NDK i JNI.
- Znajomość mechanizmów komunikacji Androida, takich jak:
- Binder,
- AIDL,
- native services,
- system services,
- IPC.
- Dobra znajomość Java lub Kotlin oraz Android SDK.
- Znajomość systemu Linux i doświadczenie w pracy z embedded Linux lub systemami wbudowanymi.
- Umiejętność debugowania problemów cross-layer.
- Doświadczenie w projektowaniu komponentów systemowych i podejmowaniu decyzji architektonicznych.
- Umiejętność samodzielnej analizy złożonych problemów integracyjnych i wydajnościowych.
- Bardzo dobra znajomość języka angielskiego.
Mile widziane
- Doświadczenie z Android Automotive OS i systemami IVI/infotainment.
- Znajomość Vehicle HAL, Car Service, Car APIs lub
CarPropertyManager. - Doświadczenie z:
- HAL,
- BSP,
- AIDL HAL,
- HIDL,
- Android build system,
- Soong,
- Android.bp
- Znajomość QNX, hypervisorów lub wielosystemowych platform cockpit.
- Doświadczenie z multimedia frameworks, audio/video, Chromium, ExoPlayer, Bluetooth lub Wi-Fi.
- Znajomość SELinux, Android permissions i privileged/system applications.
- Doświadczenie z OTA, software flashing, diagnostyką lub DTC.
- Znajomość automotive Ethernet, CAN, SOME/IP lub integracji z ECU.
- Doświadczenie w projektach realizowanych dla OEM lub Tier-1.
- Znajomość ASPICE, ISO 26262 lub procesów rozwoju oprogramowania automotive.
- Doświadczenie z CTS, VTS, testami integracyjnymi i CI/CD.