Pracuj.pl Stacjonarnie Senior

Inżynier oprogramowania Android (k/m/n)

MACRO-SYSTEM Sp. z o.o.

⚲ Warszawa

Do uzgodnienia

Wymagania

  • biegła znajomość programowania aplikacji Android (Kotlin i/lub Java)
  • gotowość do wyjazdów służbowych i pracy w terenie
  • doświadczenie w pracy na zrootowanym Androidzie i z uprawnieniami systemowymi
  • umiejętność integracji z peryferiami przez USB/HID, UART/serial, GPIO, Bluetooth
  • praktyczna znajomość programowania współbieżnego i wielowątkowego
  • umiejętność integracji natywnej (NDK, C/C++)
  • obsługa i renderowanie strumieni wideo w czasie rzeczywistym (np. RTSP), wiele źródeł jednocześnie

Mile widziane

  • doświadczenie z AOSP, budową obrazu systemu, warstwą HAL, trybem kiosk

Opis stanowiska

Praca przy aplikacji Android sterującej sprzętem — integracja z peryferiami przez USB/HID, UART, GPIO i Bluetooth, obsługa wielu strumieni wideo w czasie rzeczywistym i komunikacja o niskich opóźnieniach. Będziesz pracować na zrootowanym Androidzie z uprawnieniami systemowymi, przejmować istniejący kod, refaktoryzować go i stabilizować, a także testować na docelowym sprzęcie (konsola + pojazd). To oferta dla inżyniera embedded/mobile, który lubi niski poziom systemu, determinizm działania i pracę z hardware'em. Uwaga: opis sugeruje pracę z systemem na bardzo niskim poziomie i możliwe częstsze wyjazdy terenowe, niż sugeruje słowo 'sporadyczne' — warto dopytać o realną częstotliwość wyjazdów i stan istniejącego kodu.

🔍 Dekoder Ogłoszenia

🔴
gotowość do sporadycznych wyjazdów służbowych i pracy w terenie
Może oznaczać częstsze lub dłuższe wyjazdy, niż sugeruje słowo 'sporadyczne', lub pracę w trudnych warunkach.
🔴
doświadczenie w pracy na zrootowanym Androidzie oraz z uprawnieniami systemowymi
Wymaga pracy z systemem operacyjnym na bardzo niskim poziomie, co może być skomplikowane i czasochłonne.
🔴
umiejętność integracji z peryferiami sprzętowymi przez interfejsy niskopoziomowe (USB/HID, UART/serial, GPIO, Bluetooth)
Oznacza konieczność bezpośredniej interakcji ze sprzętem, co jest bardziej wymagające niż typowe programowanie aplikacji.
🔴
obsługa i renderowanie strumieni wideo w czasie rzeczywistym (np. RTSP), wiele źródeł jednocześnie
Wymaga zaawansowanych umiejętności w przetwarzaniu multimediów i zarządzaniu wieloma strumieniami danych jednocześnie.
🔴
komunikacja w czasie rzeczywistym: implementacja protokołów, niskie opóźnienia, determinizm działania
Kładzie nacisk na bardzo precyzyjne i szybkie działanie systemu, co może być trudne do osiągnięcia i testowania.