> Djinni
senior
Backend Engineer
format:Remotecompany:Product
javaspringpostgresqlsqlliquibasekafkarabbitmqmongodbdockerjunit
opentelemetryquartztemporal
> full description
Основні обов'язки
- Проєктування та розробка нових функціональних модулів складних інформаційних систем та Data-Core на базі Java 21+
- Підтримка, рефакторинг та оптимізація існуючих програмних комплексів для підвищення їх продуктивності та стабільності
- Розробка архітектури даних та проєктування схем баз даних (нормалізація, складені PK, Table-per-Type, зв'язки, цілісність, SQL та NoSQL)
- Розробка чистого SQL та DAO-шару (Spring JdbcTemplate/NamedParameterJdbcTemplate, RowMapper)
- Впровадження складних архітектурних патернів, таких як Saga та Orchestration (ідемпотентність, компенсаційні механізми), для забезпечення цілісності розподілених систем
- Побудова високоефективних інтеграцій через REST API та черги повідомлень (Kafka/RabbitMQ)
- Налаштування систем моніторингу та спостережуваності (Observability) за допомогою OpenTelemetry та Micrometer
- Розробка метаданих-орієнтованої архітектури (Metadata-driven architecture) та створення декларативних шаблонів обробки даних (annotation-based генерація, рекурсивні структури/дерева)
- Написання чистого, тестованого коду з використанням сучасних підходів до автоматизації тестування (JUnit 5, Testcontainers, Mockito)
- Проєктування стратегій міграції даних та управління схемами через Liquibase (changeset-и, rollback)
- Участь у процесах Code Review, управління гілками в Git (branching strategy, PR flow), обмін технічним досвідом всередині команди та менторство колег
- Робота з Docker та Docker Compose для забезпечення консистентності середовищ розробки та розгортання
Основні вимоги
- 6+ років досвіду комерційної розробки на Java
- Глибоке знання Java 21+ (включаючи records, sealed classes, pattern matching, Stream API, var, Reflection, Generics, Annotation Processing)
- Впевнене володіння Spring Boot 3.x/4.x (DI, Service/Component, Transactional, RestController, RestClient, HikariCP, Spring Security)
- Глибокі знання PostgreSQL: JOIN/subquery, DDL (CREATE TABLE, FK, CONSTRAINT), індекси (типи, вибір індексів), query optimization, EXPLAIN
- Написання чистого SQL + DAO (Spring JdbcTemplate/NamedParameterJdbcTemplate, RowMapper); SQL руками - обов'язково (ORM - як плюс)
- Досвід управління схемами баз даних через Liquibase (changeset-и, migration strategies, rollback)
- Досвід роботи з Jackson 2.x/3.x (convertValue, TypeReference, builder-based ObjectMapper конфігурація)
- Досвід структурованого логування за допомогою Logback/SLF4J (MDC, custom appenders)
- Навички роботи з Git (branching strategy, PR flow, code review)
- Досвід роботи з брокерами повідомлень Kafka або RabbitMQ (проєктування топології, partitioning, робота з DLQ, розуміння гарантій доставки)
- Практичні навички роботи з реляційними базами даних та MongoDB
- Розуміння та застосування ідемпотентності та компенсаційних механізмів у розподілених транзакціях
- Автоматизоване тестування: JUnit 5, Testcontainers, Mockito
- Навички роботи з Docker та Docker Compose
- Стабільність професійного досвіду (тривалі періоди роботи на одному місці, без job-hopping)
- Високий рівень відповідальності, увага до деталей, аналітичне мислення та вміння працювати в команді
Буде перевагою
- Досвід розробки Metadata-driven архітектури (декларативні шаблони, annotation-based генерація, рекурсивні структури/дерева)
- Просунуте володіння PostgreSQL (JSONB, CTE, віконні функції, MVCC
- Розуміння теорії графів (DAG traversal, topological sort.
- Знання SpEL (Spring Expression Language) або інших мов виразів
- Досвід налаштування Observability (OpenTelemetry, Micrometer)
- Застосування патернів Saga / Orchestration
- Досвід роботи з Quartz Scheduler (кластеризація, job, trigger, cron, persistent job store, стратегії обробки misfire)
- Досвід роботи з Workflow Engines (Temporal, BPMN, state machines)
- Практика Property-based тестування (jqwik)
- Досвід використання MapStruct для мапінгу об'єктів
- Розуміння архітектурних компромісів (Trade-offs: consistency vs performance, sync vs async)
Своїм співробітникам ми пропонуємо
- Роботу в найбільшому та інноваційному банку України
- Офіційне працевлаштування та 24+4 календарних дні відпустки
- Компенсацію лікарняних
- Конкурентну заробітну плату
- Бонуси, премії відповідно до політики компанії
- Медичне страхування
- Корпоративне навчання
- Можливість віддаленого формату роботи
- Корпоративну фінансову допомогу у критичних ситуаціях