Position: Senior Java Engineer
Company: Raiffeisen Bank
Experience required: 5y
Category: Java
English level: intermediate
Published: 2021-08-01T00:00:00+03:00

**About the Project:**
• Implement ideas from Product Backlog into a reliable working product 
• Develop, deploy, and support Spring Boot-based microservices for frontend mobile application 
• Deploy and configure the system on various environments in the Kubernetes cluster 
• Ensure system performance in production environments 
• Develop architecture and system design 
• Promote quality control automation of the entire solution with a fast and reliable delivery. 
• Improve teamwork 

**What we need:**
• 5+ years of experience in Java (ver.8+ required; ideally, the most recent version)
• Deep understanding of microservices architectural principles
• Deep practical experience with Spring Boot (MVC, REST, Data, Security, messaging)
• Redis inside microservice layer
• Understanding of CI/CD practices and types of quality gates
• Hands-on experience with unit/integration/API testing for microservices
• Practical experience for various environments with:
— K8s cluster: Docker (+ registry); Prometheus, Grafana; EFK stack: ElasticSearch, FluentD, Kibana; Jaeger; Redis as a microservices’ sidecar; Helm; Node exporter; Kafka exporter; Postgresql exporter; Docker image for openjdk; Calico; Ingress Nginx Controller for Kubernetes); PostgreSQL with Patroni (HA); Kafka cluster (manager)
— CI/CD server (Jenkins, Gitlab, Nexus, SonarQube); Infrastructure provisioning (TerraForm, Terragrunt);
— Components Orchestration (Ansible); OS (Redhat, Centos); Security (Hashicorp Vault)
— Other FWs (Swagger, SpringBoot, etc.)
• Hands-on experience with Kafka and Kafka Streams
• Knowledge of different communication protocols (REST, gRPC, events, messaging)
• Hands-on experience with Docker containerization for different environments
• Hands-on experience with CDC, transactional & high loaded financial\payment systems & payments processing
• Practical experience with ORD (object-oriented design) & ORM (object relational mapping), TDD
• Be familiar with ’The Twelve-Factor App’ principles with perfect usage of Agile Practices, Jira
• Taking full responsibility for the results of own work

**As a plus:**
• API design and documentation skills
• Traefik / Ngnix practical knowledge and experience
• Practical experience with backend for frontend (especially mobile app) with topics such as API versioning and monitoring
• Experience with JWT tokens and user sessions
• Ability to describe and document architectural/design decisions
• Practical experience with NoSQL databases
• Oracle SQL
• Flagr

Our company and project offer a culture and environment where everyone has a possibility of making changes on a bigger scale, taking on challenges while developing oneself professionally and personally on a daily basis.

• You will work in a large international company that provides possibilities for professional and personal growth
• Involvement into challenging, large-scale and diverse projects which have impact for our customers
• Become a part of a highly professional and successful team with an international company culture
• Knowledge sharing with colleagues from abroad (strong IT community including 14 Raiffeisen Group Banks)
• Opportunity to visit our non-stop internal meetups: Tech talks, Demo days, Q&A Session with Board
• Flexible working hours, 28 days of paid vacation, official employment
• Possibility to work remotely or in a comfortable office near Kontraktova Square
• Attractive social package and well-being (health insurance, gym)
• Corporate English courses, soft and hard skills trainings 
• Team building activities and involvement into social projects