- Kazan Federal University Information Systems and Technologies, 4th year
- T-Bank Java, SRE
- Yandex Python
- Sberbank C, Linux
SK Sfera | Programmer (July 2024 - Present)
Developing Java microservices for document management, writing technical documentation for code
Shkolkovo | Programming Curator (March 2023 - July 2024)
Teaching algorithms, code review: improving code readability and algorithm efficiency
Programming languages: Java, Python
Tools: Spring Boot, API, JWT, CI/CD, Kubernetes, Docker, Postman, Linux, Nginx, Resilience4j, JUnit, Mockito, Apache Kafka, Sage, ELK
Databases: PostgreSQL, SQLite, MicrosoftSQL, Redis, Flyway, Liquibase
Tinkoff | Microservice application for tracking updates on StackOverflow and GitHub
- Telegram Bot on Java using Spring Boot interacts with users. Telegram Bot API supports commands, finite state machines using Spring State Machine, and notification modes
- Scrapper multithreaded scheduler on Spring Boot with custom HTTP clients on Spring WebClient for GitHub and StackOverflow APIs, and with Resilience4j retry policy (Retry, Circuit Breaker)
- Asynchronous interaction between Apache Kafka and HTTP services. Dead Letter Queues and caching are implemented in Redis using Spring Data Redis.
- Database access is configured using PostgreSQL and JPA/Hibernate, and Liquibase is used to manage migrations.
- Prometheus is configured to collect JVM metrics, RED metrics collection is configured in Prometheus, with visualization using Grafana and Micrometer.
- Services are in isolated Docker containers with Kubernetes orchestration and local launch with Docker Compose. Swagger is used for documentation.
- The code is covered by tests using Testcontainers for reliability.
MTS | Distributed system for managing bank deposits
- Microservice architecture in Java using Spring Boot, service interaction provided by Spring RestTemplate
- Central hub eureka-server based on Eureka detects and registers microservices
- Microservice customer-service stores customer data and generates JWT tokens for authentication using Spring Security
- Microservice aggregator-service as an API Gateway on Spring Cloud Gateway validates JWT tokens before routing
- Microservices deposit-service and account-service handle deposit and account operations, respectively
- Data is stored in PostgreSQL, and Flyway is used to manage migrations.
- The code is covered by tests using JUnit and Mockito for reliability.
Yandex | Social network for cooks
- Backend implemented in Python with Django and Django REST Framework, including CRUD operations and authentication with JWT tokens and Djoser
- Frontend is an SPA on React with JavaScript, Bootstrap styling, HTML, and CSS for the interface.
- PostgreSQL database for prod and SQLite for dev and test, migration management with Django ORM.
- Deployment with Nginx as a reverse proxy and Gunicorn for the WSGI server. Services in isolated Docker containers with Docker Compose orchestration.
- The code is covered by Pytest tests and Flake8, Ruff, Black, and Mypy
- CI/CD using GitHub Actions for test automation, building on Docker Hub, and deployment with notifications via Telegram Bot API. Added Django Debug Toolbar, Postman, and Swagger tools for debugging and documentation
