Inżynier oprogramowania Android (k/m/n)
⚲ Warszawa
Do uzgodnienia
Wymagania
- Android
- Kotlin
- Java
- C/C++
Opis stanowiska
Nasze wymagania:
Biegła znajomość programowania aplikacji na platformę Android (Kotlin i/lub Java);
gotowość do sporadycznych wyjazdów służbowych i pracy w terenie;
doświadczenie w pracy na zrootowanym Androidzie oraz z uprawnieniami systemowymi;
umiejętność integracji z peryferiami sprzętowymi przez interfejsy niskopoziomowe (USB/HID, UART/serial, GPIO, Bluetooth);
praktyczna znajomość programowania współbieżnego i wielowątkowego oraz umiejętność zarządzania współdzielonymi zasobami;
umiejętność integracji natywnej (NDK, C/C++) na potrzeby dostępu do warstw sprzętowych;
obsługa i renderowanie strumieni wideo w czasie rzeczywistym (np. RTSP), wiele źródeł jednocześnie;
komunikacja w czasie rzeczywistym: implementacja protokołów, niskie opóźnienia, determinizm działania;
obsługa scenariuszy degradacji łączności (reconnect, stany fail-safe / e-stop);
umiejętność przejęcia i utrzymania istniejącego kodu (code review, refaktoryzacja, dokumentowanie).
Mile widziane:
doświadczenie z AOSP, budową obrazu systemu, warstwą HAL, trybem kiosk;
doświadczenie z aplikacjami do sterowania sprzętem (przemysł, obronność, robotyka);
znajomość zasad cyberbezpieczeństwa aplikacji oraz metod zabezpieczania i szyfrowania danych przechowywanych na nośnikach pamięci.
Zakres obowiązków:
praca na zrootowanym Androidzie / uprawnieniach systemowych i dostępie do warstw niedostępnych w standardowych aplikacjach;
code review obecnego rozwiązania: ocena architektury, jakości, długu technicznego i ryzyk;
przejęcie odpowiedzialności za dotychczasową aplikację (transfer wiedzy, uporządkowanie i udokumentowanie);
refaktoryzacja i stabilizacja produktów oraz rozwiązań technologicznych w obszarach wymagających usprawnień przed wdrażaniem dalszego rozwoju funkcjonalnego;
implementacja logiki obsługi zintegrowanych peryferiów: joysticki, przełączniki, przyciski fizyczne, panele;
integracja i wyświetlanie strumieni z kamer (podgląd na żywo, wiele źródeł, tryby widoku);
dbałość o niskie opóźnienia i determinizm działania aplikacji;
obsługa scenariuszy degradacji łączności: utrata sygnału, reconnect, stany bezpieczne (failsafe/ e-stop po stronie oprogramowania);
testowanie na docelowym sprzęcie (konsola + pojazd);
zapewnienie stabilności długich sesji pracy (brak wycieków pamięci, przegrzewania, degradacji streamu w czasie);
współpraca między działami w celu zapewnienia terminowej realizacji projektu;
współpraca z outsource‘owanym UX/UI — przyjmowanie projektów i przekładanie ich na implementację;
dokumentacja techniczna aplikacji, protokołów integracji i procedur budowania (build/release).
Oferujemy:
stabilne zatrudnienie w firmie o ugruntowanej pozycji rynkowej;
realny wpływ na rozwój firmy;
dużą samodzielność i zaufanie w działaniu;
wsparcie zespołów technicznych i zarządczych;
atrakcyjne wynagrodzenie adekwatne do doświadczenia;
prywatną opiekę medyczną;
po okresie próbnym możliwość pracy hybrydowej;
dofinansowanie karty Multisport.
Biegła znajomość programowania aplikacji na platformę Android (Kotlin i/lub Java);
gotowość do sporadycznych wyjazdów służbowych i pracy w terenie;
doświadczenie w pracy na zrootowanym Androidzie oraz z uprawnieniami systemowymi;
umiejętność integracji z peryferiami sprzętowymi przez interfejsy niskopoziomowe (USB/HID, UART/serial, GPIO, Bluetooth);
praktyczna znajomość programowania współbieżnego i wielowątkowego oraz umiejętność zarządzania współdzielonymi zasobami;
umiejętność integracji natywnej (NDK, C/C++) na potrzeby dostępu do warstw sprzętowych;
obsługa i renderowanie strumieni wideo w czasie rzeczywistym (np. RTSP), wiele źródeł jednocześnie;
komunikacja w czasie rzeczywistym: implementacja protokołów, niskie opóźnienia, determinizm działania;
obsługa scenariuszy degradacji łączności (reconnect, stany fail-safe / e-stop);
umiejętność przejęcia i utrzymania istniejącego kodu (code review, refaktoryzacja, dokumentowanie).
Mile widziane:
doświadczenie z AOSP, budową obrazu systemu, warstwą HAL, trybem kiosk;
doświadczenie z aplikacjami do sterowania sprzętem (przemysł, obronność, robotyka);
znajomość zasad cyberbezpieczeństwa aplikacji oraz metod zabezpieczania i szyfrowania danych przechowywanych na nośnikach pamięci.
Zakres obowiązków:
praca na zrootowanym Androidzie / uprawnieniach systemowych i dostępie do warstw niedostępnych w standardowych aplikacjach;
code review obecnego rozwiązania: ocena architektury, jakości, długu technicznego i ryzyk;
przejęcie odpowiedzialności za dotychczasową aplikację (transfer wiedzy, uporządkowanie i udokumentowanie);
refaktoryzacja i stabilizacja produktów oraz rozwiązań technologicznych w obszarach wymagających usprawnień przed wdrażaniem dalszego rozwoju funkcjonalnego;
implementacja logiki obsługi zintegrowanych peryferiów: joysticki, przełączniki, przyciski fizyczne, panele;
integracja i wyświetlanie strumieni z kamer (podgląd na żywo, wiele źródeł, tryby widoku);
dbałość o niskie opóźnienia i determinizm działania aplikacji;
obsługa scenariuszy degradacji łączności: utrata sygnału, reconnect, stany bezpieczne (failsafe/ e-stop po stronie oprogramowania);
testowanie na docelowym sprzęcie (konsola + pojazd);
zapewnienie stabilności długich sesji pracy (brak wycieków pamięci, przegrzewania, degradacji streamu w czasie);
współpraca między działami w celu zapewnienia terminowej realizacji projektu;
współpraca z outsource‘owanym UX/UI — przyjmowanie projektów i przekładanie ich na implementację;
dokumentacja techniczna aplikacji, protokołów integracji i procedur budowania (build/release).
Oferujemy:
stabilne zatrudnienie w firmie o ugruntowanej pozycji rynkowej;
realny wpływ na rozwój firmy;
dużą samodzielność i zaufanie w działaniu;
wsparcie zespołów technicznych i zarządczych;
atrakcyjne wynagrodzenie adekwatne do doświadczenia;
prywatną opiekę medyczną;
po okresie próbnym możliwość pracy hybrydowej;
dofinansowanie karty Multisport.
🔍 Dekoder Ogłoszenia
🔴
gotowość do sporadycznych wyjazdów służbowych i pracy w terenie
Może oznaczać częstsze lub mniej sporadyczne wyjazdy niż sugeruje słowo 'sporadyczne', a 'praca w terenie' może być bardziej wymagająca niż się wydaje.
🔴
doświadczenie w pracy na zrootowanym Androidzie oraz z uprawnieniami systemowymi
Wymaga głębokiego zrozumienia systemu Android i potencjalnie pracy z mniej standardowymi, bardziej skomplikowanymi konfiguracjami.
🔴
integracja z peryferiami sprzętowymi przez interfejsy niskopoziomowe
Oznacza pracę z elementami sprzętowymi na bardzo podstawowym poziomie, co może być trudne i wymagać specyficznej wiedzy.
🔴
obsługa i renderowanie strumieni wideo w czasie rzeczywistym (np. RTSP), wiele źródeł jednocześnie
Może oznaczać bardzo intensywne obciążenie procesora i pamięci, wymagające optymalizacji na najwyższym poziomie.
🔴
komunikacja w czasie rzeczywistym: implementacja protokołów, niskie opóźnienia, determinizm działania
Wymaga zaawansowanej wiedzy o sieciach i systemach czasu rzeczywistego, gdzie nawet niewielkie opóźnienia mogą być problemem.