от 3000 до 4500 RUR
Алматы
От 3 до 6 лет
Мы ищем высококвалифицированного Java-разработчика для поддержки и развития нашей системы Point of Sale (POS).
Вы будете отвечать за полный жизненный цикл десктопного приложения, которое используется заведениями в сфере развлечений и гостеприимства.
Роль включает:
- разработку пользовательского интерфейса на JavaFX
- синхронизацию в реальном времени с использованием RabbitMQ
- прямую интеграцию с аппаратным обеспечением
Технические требования
Языки программирования
- Java 21 — основной язык текущей кодовой базы
- Kotlin — желательно. Часть системы планируется постепенно переписывать с Java на Kotlin, поэтому опыт работы с Kotlin будет большим преимуществом
Пользовательский интерфейс
- JavaFX (FXML, CSS, кастомные контролы)
Архитектура и инфраструктура
- Dependency Injection: Google Guice
- База данных: SQLite
- Миграции схемы БД: Flyway, Liquibase
Сетевое взаимодействие
- RabbitMQ
- WebSockets
- Retrofit / OkHttp
Работа с оборудованием
- Знание протоколов взаимодействия с аппаратным обеспечением
- Базовое понимание языка C — значительный плюс
Сборка и защита кода
- Maven
- ProGuard
Тестирование
- Модульные тесты: JUnit 5, Mockito
- Интеграционные тесты
- Функциональные тесты в стиле BDD (Cucumber)
Контроль версий
- Git
- Workflow с использованием rebase
Желательные квалификации
- Опыт работы в сфере FinTech или POS (Point of Sale)
- Знание интеграций с платёжными системами:
- Braintree
- MagTek SDK
- Опыт с обфускацией кода (ProGuard)
- Понимание распределённых систем
- Опыт проектирования приложений в стиле offline-first
Дополнительные требования
Английский язык
- Английский язык — уровень B2 или выше (обязательно)
- Необходим для чтения технической документации, обсуждения архитектурных решений и коммуникации в международной среде
Стиль работы
- Мы ищем самостоятельного разработчика, способного работать с задачами высокого уровня
- У нас нет процесса, основанного на детализированных пошаговых ТЗ
- Ожидается, что разработчик способен самостоятельно уточнять требования, предлагать решения и доводить задачи до результата
- Кандидаты, которым требуется строго детализированное техническое задание для каждой задачи, скорее всего не подойдут для этой роли