Java developer
Серпухов, РоссияДжуниор
Удаленная работа
Опыт работы от 1 года до 3х лет90 000 ₽
Опыт работы от 1 года до 3х лет90 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:
Проблема n+1: устранил классическую проблему n+1 при импорте. Переписал логику на работу с коллекциями в памяти
Полиморфизм Joined Inheritance: решил проблему производительности при выборке сущностей с глубокой иерархией (18 наследников, стратегия JOINED). Заменил тяжелые автогенерируемые JOIN-запросы Hibernate на оптимизированную стратегию выборки по id, сократив время ответа эндпоинта сервера с нескольких секунд до миллисекунд
Сложные SQL-запросы: реализовал производительную выборку данных для дашборда через нативные запросы и дто проекции, обойдя ограничения JPQL при работе с множественными LEFT JOIN TREAT
Управление транзакциями: Решил проблему коллизий(unique constraint) в Hibernate при обновлении связей один к одному, внедрив ручное управление контекстом ( нужен доступ к резюме ) для корректного порядка операций DELETE/INSERT
Межсервисное взаимодействие: реализовал механизм отправки данных во внешний сервис Росреестра через REST Template с обработкой ошибок
Есть файл резюме (защищен)
Интересные кандидаты
Мы используем куки, потому что без кук наш сайт не работал бы, другие сайты не работали бы, да и вообще весь
интернет не работал бы
