Rozwijamy grę terenową, która łączy świat realny (chodzenie po parkach, zbieranie wirtualnych przedmiotów) z mechaniką wieloosobowych rozgrywek w czasie zbliżonym do rzeczywistego. Projekt jest w dużej mierze gotowy od strony serwerowej, jednak wymaga dokończenia kluczowych funkcjonalności oraz dalszego rozwoju.
Aplikacja działa w architekturze typu „porty i adaptery” (hexagonal/clean architecture) z użyciem Micronaut jako frameworka. Dane trzymane są w MongoDB, natomiast do zarządzania stanem i lockami używany jest Redis. Całość uruchamiana jest konteneryzowana w środowisku Docker.
Szukamy doświadczonego Java Developera, który zna Micronaut (lub jest gotów szybko go opanować) i pomoże nam dokończyć oraz rozwijać tę platformę.
Zakres obowiązków
• Dokończenie i optymalizacja istniejących funkcjonalności back-endu:
• Implementacja brakującego generatora map i rozkładu obiektów na mapie (tzw. „map generator”).
• Integracja z zewnętrznymi usługami / webhookami w celu synchronizacji pozycji graczy (interfejs PlayersCallback).
• Rozwój nowych modułów gry (np. dodatkowe tryby rozgrywki, system eventów, itp.).
• Utrzymanie i dalsze ulepszanie mechaniki OTP, logowania oraz obsługi tokenów (w tym refresh tokenów).
• Rozwijanie i utrzymywanie integracji z MongoDB oraz Redis (w tym obsługa distributed locks, rate-limitów).
• Pisanie i utrzymywanie testów (jednostkowych, integracyjnych) w celu zapewnienia jakości kodu.
• Udział w projektowaniu nowych elementów architektury (praca w stylu Clean Architecture).
• Współpraca z zespołem odpowiedzialnym za front-end / aplikację mobilną (w celu zintegrowania API).
Wymagania
• Bardzo dobra znajomość Javy (min. 3-5 lat komercyjnego doświadczenia).
• Praktyczne doświadczenie w tworzeniu mikroserwisów lub aplikacji webowych w oparciu o Micronaut, Spring Boot lub inny zbliżony framework.
• Znajomość MongoDB (projektowanie kolekcji, indeksy, operacje CRUD) oraz Redis (cache, locki, Pub/Sub).
• Umiejętność pracy w środowisku Docker (Docker Compose, dobre praktyki konteneryzacji).
• Doświadczenie w tworzeniu REST API oraz we wdrażaniu bezpieczeństwa (JWT, refresh tokeny, rolach i uprawnieniach).
• Znajomość narzędzi do testowania (np. JUnit, TestContainers, Postman).
• Zrozumienie architektury hexagonalnej / clean architecture i wzorców projektowych.
• Chęć do poszukiwania rozwiązań i współpracy w zespole.
Mile widziane
• Doświadczenie z MapStruct (automatyczne mapowanie encji/DTO).
• Znajomość tematyki geolokalizacji (np. geohash, mapy, wyznaczanie stref).
• Umiejętność projektowania wydajnych baz danych i indeksów dla dużej liczby zapytań.
• Podstawy DevOps (CI/CD, monitoring, logowanie).
• Znajomość front-endu (React/React Native/Angular) w stopniu komunikatywnym, aby rozumieć zależności API–UI.
Specific-task
Check similar offers