Профессиональный Java-разработчик с опытом коммерческой разработки на Java и Spring Framework. Опыт работы с крупными компаниями в IT.
Ключевые навыки:
- Языки программирования: Java
- Фреймворки: Spring Framework (Spring Boot, Spring MVC, Spring Data, Spring Cloud)
- Работа с БД: PostgreSQL, Hibernate ORM, Liquibase, Flyway
- Инструменты: Git, Docker, Gitlab CI, OpenShift
- Методологии: Scrum
- Тестирование: JUnit, Mockito, Testcontainers
- Прочее: Apache Kafka, REST, Swagger, Maven
Разрабатывал backend часть веб-приложения на базе Java 17 и Spring Boot 3, для оценки KPI сотрудников внутри организации с размером штата более 50 тыс. человек.
В ходе работы выполнялись конкретные задачи по реализации бизнес-логики в проекте с микросервисной архитектурой, состоящем из 11 микросервисов. В том числе общение между сервисами как синхронное, с помощью OpenFeign или WebClient, так и асинхронное с помощью Apache Kafka. Документирование API для frontend-разработчиков, используя OpenAPI/Swagger. Работа с базой данных PostgreSQL и системой миграции Liquibase, построение запросов через Spring Data и Criteria API, реализация динамической фильтрации с помощью Specifications, а так же использование Dynamic EntityGraph.
Участие в полном цикле разработки:
- совместное обсуждение с другими разработчиками и аналитиками вариантов решений конкретных кейсов и способов внедрения новых функциональностей в систему;
- оценка сроков задачи в Jira;
- консультации с аналитиком по задаче, внесение своих предложений;
- реализация функционала в коде, покрытие unit-тестами с помощью Junit + Mockito и интеграционными тестами с использованием Testcontainers. Локальное тестирование функционала, разворачивая инфраструктуру в Docker compose
- взаимодействие с тестировщиками, сливание кода и деплой на стенды в OKD, используя весь CI/CD цикл в gitlab CI;
- поиск и решение багов, если таковые появляются.
Достижения:
- Увеличил покрытие кода тестами, внедрил использование Assertj вместо стандартных ассертов из junit.
- Разработал Spring Boot Starter для синхронизации справочных значений между микросервисами, тем самым убрав много дублирующейся логики из каждого микросервиса.
- Полностью написал микросервис уведомлений, который использовался остальными сервисами для отправки уведомлений пользователям.
- Развивал общие библиотеки внутри компании, для использования во всех микросервисах.
- Участвовал в реализации библиотеки для динамической фильтрации запроса с помощью criteria api, рефлексии и dynamic entitygraph.
Стек технологий:
Java 17, Sping Boot 3, Spring Web, Spring Data, Sring Cloud, Gateway, Openapi / swagger, REST, Jpa, Hibernate, Postgres, Liquibase, Apache kafka, Lombok, Junit, Mockito, Testcontainers, Openshift (okd), Docker, Gitlab CI
Разрабатывал backend часть мобильного приложения для дистанционного банковского обслуживания:
- реализация логики ендпоинтов;
- взаимодействия между микросервисами (Kafka, Spring Cloud);
- участие в проектировании и создании БД;
- покрытие кода unit тестами;
- совместная работа по методологии scrum;
- взаимодействие с аналитиками, тестировщиками, фронтэндом;
- проведение cross code review.
Стэк технологий на проекте:
Java 11, Spring Framework (Spring Boot, Spring MVC, Spring Security, Spring Data), Maven, PostgreSQL, Flyway, Hibernate ORM, JUnit, Mockito, Microservices (Kafka, Open Feign), REST, Swagger
- самостоятельно изучал сферу Java разработки по учебникам, документации и гайдам;
- примененял приобретённые знания на практике для автоматизации рутинных задач в оценке, используя Java, Spring, Selenium;
- расчет и составление отчетов о рыночной стоимости объектов недвижимости;
Оценка рыночной стоимости недвижимого и движимого имущества
Инженер по специальности "Экспертиза и управление недвижимостью"