Position: Strong Junior / Middle Java Developer
Company: Smart Rockstars
Category: Java
Experience: 1y
English level: upper

**Коротко про проект:**
Це система онлайн-платежів. 
Вона складається з декількох серверів, які комунікують між собою за допомогою REST викликів та EventBus. Клієнтські системи надсилають API запити з усією необхідною інформацією про платіж, після чого дані про депозит зберігаються у нашій системі та пересилаються у платіжні сервіси для подальшої обробки. Після того, як депозит був оброблений банком, ми отримуємо колбек з оновленою інформацією та надсилаємо відповідне оновлення клієнту.
 
**Основні елементи системи:**
•	**Back-office.** Існує як три окремі сервери: back-end сервер, а також два front-end сервери. Один front-end для користувачів з правами адміністратора, інший – для клієнтських ролей. 
Back-office створений для перегляду інформації про депозити та їх поточний стан, генерації різного роду звітів, відображення даних на дашборді у режимі реального часу за допомогою websocket, менеджменту користувачів, клієнтів, валют і т.д.
•	**Payment application.** Платіжна платформа, яка безпосередньо приймає, обробляє та відсилає платежі на подальшу обробку в банк або інші сторонні системи. Складається з двох серверів: back-end та front-end. Front-end призначений для здійснення платежів через користувацький інтерфейс, API платежі відбуваються без участі front-end. Back-end містить у собі декілька десятків інтеграцій для різних платіжних методів, здатний приймати оновлення, а також надсилати оновлення клієнтам. Кожний клієнт має свою окрему payment application.
•	**PCI server.** Сервер для здійснення платежів кредитною карткою. Комунікує та надсилає оновлення у payment application.

**Технології, що застосовуються:** 
Spring Boot, Spring Data JPA, Spring Security, Docker, Maven, EventBus, PostgreSQL, React, Kibana.

**Основні завдання на проекті:** реалізація та підтримка нових платіжних методів, щоденна комунікація з замовником, текстова комунікація з технічними командами клієнтів та представниками сторонніх платіжних провайдерів.

**Необхідні навики:**
• Знання Java
• Реляційні бази даних (PostgreSQL, MySQL)
• Базові знання UNIX/Linux OS
• Розуміння принципів ООП
• Володіння англійською мовою (вище середнього рівня)

**Буде плюсом:**
• Знання React
• Досвід з AWS