Java developer
Серпухов, РоссияДжуниор
Удаленная работа
Опыт работы от 1 года до 3х лет100 000 ₽
Опыт работы от 1 года до 3х лет100 000 ₽
Есть файл резюме (защищен)
Короткая ссылка: gkjb.ru/g13eA
О себе
На данный момент Java developer.
Мои компетенции и опыт
Проектная деятельность:
Разработка с нуля серверной части двух порталов для взаимодействия саморегулируемых организаций с Росреестром (Портал открытых данных и Портал обращений саморегулируемых организаций)
Стек технологий: Java 21, Spring Boot 3, PostgreSQL, Hibernate (JPA), Spring Security, JWT, Docker, MinIO, Apache Tika, Maven, Git
Обязанности:
1) Разработка API: Проектирование и реализация REST-контроллеров для взаимодействия с фронтендом.
2) Безопасность: Реализация системы аутентификации и авторизации на базе Spring Security с использованием кастомных JWT-токенов.
3) Работа с данными:
Проектирование схемы базы данных PostgreSQL.
Реализация логики парсинга и импорта данных (CSV, ZIP-архивы) из внешних систем.
4) Работа с файлами: Интеграция с MinIO и валидация загружаемых документов (PDF, Excel) через Apache Tika
5) Сборка и поддержка: Сборка jar-файлов, написание Dockerfile, обновление и поддержка работоспособности приложения на тестовом стенде. Участие в диагностике проблем при развертывании на серверах заказчика.
Достижения:
Подготовил бэкенд двух проектов к запуску в продакшн в сжатые сроки.
Оптимизация Hibernate:
1) Проблема N+1: устранил классическую проблему N+1 при импорте. Переписал логику на работу с коллекциями в памяти.
2) Полиморфизм (Joined Inheritance): решил проблему производительности при выборке сущностей с глубокой иерархией (18 наследников, стратегия JOINED). Заменил тяжелые автогенерируемые JOIN-запросы Hibernate на оптимизированную стратегию выборки по ID, сократив время ответа эндпоинта с нескольких секунд до миллисекунд.
3) Сложные SQL-запросы: реализовал производительную выборку данных для дашборда через нативные запросы и DTO-проекции, обойдя ограничения JPQL при работе с множественными LEFT JOIN TREAT.
4) Управление транзакциями: решил проблему коллизий (unique constraint) в Hibernate при обновлении связей «один к одному», внедрив ручное управление контекстом ( нужен доступ к резюме ) для корректного порядка операций DELETE/INSERT.
5) Межсервисное взаимодействие: реализовал механизм отправки данных во внешний сервис Росреестра через RestTemplate с обработкой ошибок.
Есть файл резюме (защищен)
Интересные кандидаты
- раremote
- раremote
- ТIrelocate remote parttime
- СC
Старший/Senior C#/.NET React/Vue FullStack
relocate remote - СБremote
- СJ
Старший Java разработчик / Senior Java Developer / Backend Developer
remote office - СGrelocate remote parttime
- СJremote
- СJremote
- СJ
Стажер,Junior,backend java разработчик anroid kotlin разработчик
remote office
Мы используем куки, потому что без кук наш сайт не работал бы, другие сайты не работали бы, да и вообще весь
интернет не работал бы
