ПриватБанк— є найбільшим банком України та одним з найбільш інноваційних банків світу. Займає лідуючі позиції за всіма фінансовими показниками в галузі та складає близько чверті всієї банківської системи країни.
Ми шукаємо досвідченого Senior Java Engineer (Data-Core), який прагне працювати в динамічному середовищі та розділяє цінності взаємної довіри, відкритості та ініціативності.
Ми прагнемо знайти цілеспрямованого професіонала, орієнтованого на якість та результат.
Основні обов’язки:
Проєктування та розробка нових функціональних модулів складних інформаційних систем та 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
Досвід управління схемами баз даних через Liquibase (changeset-и, migration strategies, rollback)
Досвід роботи з Jackson 2.x/3.x (convertValue, TypeReference, builder-based ObjectMapper конфігурація)
Досвід структурованого логування за допомогою Logback/SLF4J (MDC, custom appenders)
Досвід роботи з брокерами повідомлень Kafka або RabbitMQ (проєктування топології, partitioning, робота з DLQ, розуміння гарантій доставки)
Глибоке знання Java 21+ (включаючи records, sealed classes, pattern matching, Stream API, var, Reflection, Generics, Annotation Processing)
Глибокі знання PostgreSQL: JOIN/subquery, DDL (CREATE TABLE, FK, CONSTRAINT), індекси (типи, вибір індексів), query optimization, EXPLAIN
Впевнене володіння Spring Boot 3.x/4.x (DI, @Service/@Component, @Transactional, @RestController, RestClient, HikariCP, Spring Security)
Навички роботи з Git (branching strategy, PR flow, code review)
Практичні навички роботи з реляційними базами даних та MongoDB
Навички роботи з Docker та Docker Compose
Написання чистого SQL + DAO (Spring JdbcTemplate/NamedParameterJdbcTemplate, RowMapper); SQL руками — обов’язково (ORM — як плюс)
Розуміння та застосування ідемпотентності та компенсаційних механізмів у розподілених транзакціях
Автоматизоване тестування: JUnit 5, Testcontainers, Mockito
Стабільність професійного досвіду (тривалі періоди роботи на одному місці, без job-hopping)
Високий рівень відповідальності, увага до деталей, аналітичне мислення та вміння працювати в команді
Буде перевагою:
Досвід розробки Metadata-driven архітектури (декларативні шаблони, annotation-based генерація, рекурсивні структури/дерева)
Досвід налаштування Observability (OpenTelemetry, Micrometer)
Досвід роботи з Quartz Scheduler (кластеризація, job, trigger, cron, persistent job store, стратегії обробки misfire)
Досвід роботи з Workflow Engines (Temporal, BPMN, state machines)
Досвід використання MapStruct для



