Poszukujemy doświadczonego programisty Flutter na stanowisko Senior Flutter Developer do pracy nad aplikacją mobilną opartą na platformie Flutter.
Aplikacja mobilna oparta na platformie Flutter jest używana wyłącznie do konfiguracji urządzeń i powiązania ich z użytkownikiem (czyli sportowcem). Powiązanie z użytkownikiem informuje również o zarządzaniu sesją i powiązaniu danych z danym kontem. Jeden sportowiec może nosić jedną opaskę naraz. Aplikacja wspiera zarówno system iOS, jak i Android. Konfiguracja urządzeń odbywa się za pomocą WiFi za pomocą certyfikatu uwierzytelniającego, a powiązanie urządzenia odbywa się za pomocą NFC. Aplikacja mobilna nie zapewnia dostępu do danych (historycznych lub czasu rzeczywistego), ani nie zawiera wykresów.
Wymagania:
- Minimum 3 lata doświadczenia komercyjnego w tworzeniu aplikacji mobilnych (Flutter/Android/iOS/Xamarin);
- Głęboka wiedza na temat Fluttera i Darta
- Znajomość praktyk Effective Dart;
- Doświadczenie z protokołami sieciowymi, programowaniem reaktywnym, wstrzykiwaniem zależności oraz bibliotekami: RxDart, GetIt/Injectable, Bloc/Provider/Redux;
- Doświadczenie w tworzeniu i znajomość platform mobilnych, architektur, trendów i nowych technologii;
- Znajomość HTTP/S, śledzenia w Fiddlerze;
- Doświadczenie w testowaniu unit i integracyjnym;
- Doświadczenie z systemami takimi jak JIRA, Jenkins, Github lub podobnymi;
- Głębokie zrozumienie procesu tworzenia oprogramowania - SDLC;
- Doświadczenie w wdrażaniu aplikacji w sklepie Apple App Store i Google Play;
- Dobra umiejętność otwartej i nieformalnej komunikacji w zespole i poza nim;
- Dobra znajomość języka angielskiego w mowie i piśmie.
Mile widziane:
- Doświadczenie w Firebase;
- JavaScript/TypeScript;
- Znajomość praktyk dotyczących UI/UX;
- Integracje z systemami płatności;
- Doświadczenie w tworzeniu aplikacji z funkcjonalnością czatu;
- Pipeliny w Github;
- Protokół OAuth 2.0.
Jeśli dołączysz do nas, będziesz odpowiedzialny/a za:
- Implementację aplikacji mobilnych od podstaw;
- Projektowanie architektury aplikacji/zadań;
- Wykorzystywanie najlepszych i najnowocześniejszych technologii, praktyk i metodyk do realizacji zadań;
- Szacowanie nakładu pracy związanej z rozwojem aplikacji;
- Rozwiązywanie skomplikowanych problemów technicznych w projekcie i proponowanie nowych pomysłów;
- Przeprowadzanie przeglądów kodu;
- Dzielenie się wiedzą z członkami zespołu.