Pracuj.pl Stacjonarnie Senior

Senior Android Developer (Kotlin)

Fundacja Rozwoju Przedsiębiorczości "Twój StartUp"

⚲ Warszawa, Ochota

Do uzgodnienia

Wymagania

  • Android
  • Kotlin
  • Android SDK
  • Gradle
  • GitLab
  • GitHub Actions

Opis stanowiska

Nasze wymagania:
Doświadczenie: Minimum 4 lat komercyjnego doświadczenia w tworzeniu aplikacji na platformę Android w języku Kotlin.
Kotlin: Biegła znajomość języka Kotlin, w tym zaawansowane wykorzystanie coroutines do operacji asynchronicznych oraz Flow do reaktywnego przepływu danych. Biegłość w modelowaniu stanów (sukces, błąd, ładowanie) za pomocą sealed class oraz bezpieczna obsługa wyjątków.
Android SDK: Dogłębne zrozumienie cyklu życia komponentów (Activity, Fragment, ViewModel). Biegłe zarządzanie stanem i danymi podczas zmian konfiguracji (w tym wykorzystanie SavedStateHandle).
Interfejs Użytkownika: Zaawansowana umiejętność budowania natywnego UI z wykorzystaniem Jetpack Compose. Tworzenie ekranów prezentujących dane (listy, formularze) przy użyciu LazyColumn, state hoisting oraz integracji z ViewModel przez collectAsStateWithLifecycle. Tworzenie reużywalnych komponentów zgodnych z Material Design.
Nawigacja: Praktyczna znajomość Navigation Compose do obsługi ścieżek nawigacyjnych między ekranami oraz bezpiecznego przekazywania argumentów.
Architektura: Praktyczna implementacja wzorców MVVM lub MVI. Projektowanie przewidywalnych stanów (UI State), separacja logiki biznesowej, ścisłe przestrzeganie zasad SOLID oraz Clean Architecture (podział na warstwy: data, domain, presentation).
Dependency Injection: Praktyczna znajomość narzędzi DI do wstrzykiwania zależności i ułatwiania testowalności. Preferowana biegłość w Hilt (również Dagger2 lub Koin).
Komunikacja i API: Biegłość w pracy z biblioteką Retrofit. Zaawansowana obsługa zapytań HTTP (GET, POST, PUT, DELETE), mapowanie odpowiedzi na modele, zarządzanie błędami sieciowymi oraz kodami HTTP.
Serializacja: Biegłość w mapowaniu odpowiedzi JSON z wykorzystaniem popularnych narzędzi: Moshi, kotlinx.serialization lub Gson.
Persystencja Danych i Offline: Doświadczenie w projektowaniu aplikacji odpornych na brak sieci. Znajomość bazy Room do lokalnego buforowania danych (cache'owanie) oraz DataStore do zapisywania preferencji. Implementacja mechanizmów retry logic i obsługa statusów połączenia.
Paginacja: Znajomość biblioteki Paging 3 do efektywnej obsługi dużych wolumenów danych, w tym integracja z LazyColumn i lokalnym buforem z wykorzystaniem Room.
Firebase: Kompleksowa implementacja Firebase Cloud Messaging (FCM) do powiadomień push (foreground/background, odświeżanie tokenów). Wykorzystanie Firebase Crashlytics do monitorowania stabilności oraz Firebase Analytics.
Bezpieczeństwo: Znajomość dobrych praktyk zabezpieczania aplikacji mobilnych, w tym bezpieczne przechowywanie tokenów, certyficate pinning oraz szyfrowanie lokalnych magazynów danych.
Jakość kodu i Testy: Biegłość w tworzeniu testów jednostkowych (JUnit, MockK, Turbine dla strumieni Flow). Podstawowa wiedza z zakresu testów UI (Espresso, Compose Testing). Stosowanie narzędzi do statycznej analizy kodu (Detekt, ktlint).
Narzędzia Pracy i CI/CD: Zaawansowana konfiguracja projektu w Gradle (Kotlin DSL). Praktyczna znajomość Git (strategie branchowania, Pull Requests, Code Review). Konfiguracja potoków automatyzacji budowania i wdrażania (GitHub Actions, GitLab CI, Bitrise lub Fastlane).
Dystrybucja: Doświadczenie w zarządzaniu cyklem publikacji i wersjonowaniu aplikacji z poziomu Google Play Console.

O projekcie:
Poszukujemy doświadczonego i samodzielnego inżyniera oprogramowania na stanowisko Senior iOS Developer. Wybrany kandydat dołączy do zespołu odpowiedzialnego za tworzenie zaawansowanych aplikacji mobilnych, obejmując wiodącą rolę w projektach typu greenfield. Oczekujemy eksperckiej wiedzy technologicznej, umiejętności projektowania złożonych architektur oraz najwyższych standardów w zakresie tworzenia kodu.

Zakres obowiązków:
Praca stacjonarna
Samodzielne projektowanie i implementacja nowych aplikacji mobilnych od podstaw.
Projektowanie, wdrażanie i rozwój aplikacji na platformę Android z wykorzystaniem nowoczesnych narzędzi i wzorców (Jetpack Compose, MVVM/MVI, Clean Architecture).
Implementacja logiki biznesowej z zachowaniem najwyższych standardów czystego kodu (SOLID).
Integracja aplikacji z usługami backendowymi (REST API) oraz projektowanie rozwiązań odpornych na brak połączenia sieciowego.
Tworzenie kompleksowych testów jednostkowych i dbałość o stabilność oprogramowania.
Zarządzanie pełnym cyklem życia aplikacji, w tym jej publikacją w Google Play Store oraz utrzymaniem procesów CI/CD.
Tworzenie dokumentacji technicznej
Współpraca z innymi członkami zespołu developerskiego

Oferujemy:
Elastyczne godziny pracy i miłą atmosferę
Możliwość rozwoju zawodowego
15 - 25 tys netto na podstawie umowy cywilnoprawnej
rozwój umiejętności i zdobycie dodatkowych kwalifikacji,
współtworzenie struktury organizacyjnej firmy,
duże możliwości rozwoju kariery,
pracę przy wielu ciekawych projektach,
możliwość zdobycia szerokiego doświadczenia w zakresie doradztwa biznesowego,
możliwość poznania wielu ciekawych ludzi ze sfery biznesowej,

🔍 Dekoder Ogłoszenia

🟡
Minimum 4 lat komercyjnego doświadczenia w tworzeniu aplikacji na platformę Android w języku Kotlin.
Oczekiwane jest doświadczenie w tworzeniu aplikacji na produkcję, a nie tylko projekty hobbystyczne czy akademickie.
🟡
Biegła znajomość języka Kotlin, w tym zaawansowane wykorzystanie coroutines do operacji asynchronicznych oraz Flow do reaktywnego przepływu danych.
Oczekiwane jest nie tylko podstawowe użycie, ale głębokie zrozumienie i praktyczne zastosowanie zaawansowanych funkcji Kotlina.
🟡
Praktyczna implementacja wzorców MVVM lub MVI.
Firma oczekuje, że kandydat potrafi nie tylko teoretycznie opisać wzorce, ale faktycznie je stosować w projektach.
🟡
Praktyczna znajomość narzędzi DI do wstrzykiwania zależności i ułatwiania testowalności.
Kandydat powinien umieć efektywnie wykorzystywać Dependency Injection do tworzenia kodu, który jest łatwy do testowania.
🟡
Preferowana biegłość w Hilt (również Dagger2 lub Koin).
Chociaż Hilt jest preferowany, znajomość alternatywnych narzędzi DI również jest ceniona, co sugeruje elastyczność w podejściu do technologii.