Java-разработчик
Владимир
Возраст
31 год (13 Января 1995)
Город
Серпухов
Возможен переезд в другой город
Удаленная работа
1 год 1 месяц
Информационные технологии / IT / Интернет
Проектная деятельность:
Разработка с нуля серверной части двух порталов для взаимодействия саморегулируемых организаций с Росреестром (Портал открытых данных и Портал обращений саморегулируемых организаций).
Стек технологий: 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 при обновлении связей «один к одному», внедрив ручное управление контекстом (EntityManager.flush) для корректного порядка операций DELETE/INSERT.
5) Межсервисное взаимодействие: реализовал механизм отправки данных во внешний сервис Росреестра через RestTemplate с обработкой ошибок.
Высшее
Энерго-и ресурсосберешающие процессы в нефтехимии, химической технологии и биотехнологии
Машины и аппараты химических производств
Москва, 2012 — 2016 гг.
За последний год получил концентрированный опыт коммерческой разработки в режиме высокой ответственности и сжатых сроках. В роли единственного бекенд разработчика спроектировал с нуля и вывел в продакшн два сервиса для госсектора (Портал обращений СРО в Росреестр и Портал открытых данных Росреестра).
Умею доводить задачи от идеи до конечной реализации. Принимал архитектурные решения, настраивал окружение, БД и безопасность.
Не ограничиваюсь поверхностным знанием фреймворков. Разбираюсь в работе Hibernate(Action Queue, стратегии наследования, решение N+1), могу писать сложные SQL-запросы, когда ORM недостаточно.
Высшее техническое образование помогает структурированно подходить к решению проблем.
В текущей компании я перерос формат работы "один на проекте". Я ищу команду с сильной инженерной культурой, где смогу применять свой опыт решения сложных задач, но при этом учиться лучшим практикам у опытных коллег и расти профессионально.
Готов к интенсивной работе и изучению новых технологий
2 августа, 2015
25 000 руб
Максим
Город
Серпухов
Возраст
33 года (28 июля 1992)
Опыт работы:
Без опыта
10 апреля, 2014
20 000 руб
Анна Александровна
Город
Серпухов
Возраст
33 года (21 июня 1992)
Опыт работы:
12 лет и 6 месяцев
Последнее место работы:
Инженер-системный программист, ОАО "75арсенал"
10.2013 - по текущее время
25 июля, 2021
30 000 руб
Резюме размещено в отрасли
