Java Backend Co-Team-Lead
CurrentHibank Platform:- Backend development of the million $ Omni-Channel DigitalBank of Karafarin Bank with up to 150’000 users as part of a 25 members team.- Written in Java 11 with Spring Boot framework utilizing a 4-layers backend architecture (controller, facade, service, repository), using Oracle 19.22 relational DB, MongoDB NoSql DB, Redis cache and ELK stack.- Using Spring Data JPA on top of Hibernate as ORM, Retrofit and RestTemplate as http client, MapStruct and ModelMapper for mapping between Entities and DTOs, QueryDSL and native queries for executing complex queries, Slf4J on top of Logback for storing logs into file, stdout and Logstash, managing database changes and migrations by Liquibase and storing files into MinIO Object Storage file server.- Reducing number of generated queries by ∼50% by correcting definition of entities in Spring Data JPA, removing redundant bidirectional relations and resolving n+1 queries problem.- Reducing the average response time of critical APIs by 66% by caching minimally changing data from Oracle into Redis memory.- Passing load tests with up to 1000 users/second in Apache JMeter until reaching Karafarin/Dotin gateway limits.- Decreasing Oracle database size up to 40% by shrinking table and LOB space resulting in infrastructure cost savings.- Prevent logging of file contents in request and response bodies and masking sensitive information while logging other valuable data.- Increasing speed of frequent queries by monitoring and adding appropriate indexes to relevant tables using Oracle SQL Tuning Advisor.- Setup of ELK stack and connecting it to the backend servers to replace logging in Oracle, potentially improving API response times.- Improving the platform’s security by storing hashed passwords and public/private/shared keys used in cryptography between the backend and mobile clients.