Специалисты

Описание

Навыки
Операционные системы Linux, Windows, серверные корпоративные окружения
Языки разработки Java (JDK 1.6, 1.8, 11, 17, 21), Groovy, SQL
Фреймворки и библиотеки Spring Boot 2/3, Spring MVC, Spring Framework, Spring Data JPA/JDBC, Hibernate 5/6 (JPA/ORM), Spring Security (+ использование через Keycloak), Quartz, Lucene, Liquibase 3.4-4.20, JSP/TagLibs, ReactJS + Redux (интеграция)
Базы данных PostgreSQL (9.3–13), MongoDB 4, Oracle DB
Тестирование Unit-тестирование, интеграционное тестирование, JUnit5, Testcontainers
Контроль версий Git, (GitLab) Perforce
Архитектура Микросервисная архитектура, модульная архитектура, монолитные решения, распределённые системы, поиск и индексация, фоновые задачи (Quartz), репликация данных, корпоративные информационные системы
Инфраструктура и DevOps Docker, Docker Desktop, OpenShift, CI/CD (Maven, GitLab/Git-based pipelines), корпоративное логирование и мониторинг
Управление проектами Agile Scrum, документация API и архитектуры, участие в архитектурных обсуждениях, техническое руководство командой
Другие технологии Общие: SQL-оптимизация, профилирование запросов (EXPLAIN/ANALYZE), индексы, проектирование схем БД, миграции (Liquibase), обработка больших данных, алгоритмы репликации
Безопасность: Keycloak, OAuth2 (косвенно через Keycloak), JWT (через Keycloak), политика ролей и доступа
Очереди: kafka
Кэширование: Spring Cache
Протоколы: HTTP/REST, SOAP
Облачные технологии и хранилища: S3-подобные cloud-storage решения, Azure Data Lake, Synapse, Big Query и т.д.
Сервера: Liferay Portal CE 6.1.1 (портальная платформа), корпоративные серверные окружения

Опыт
Проект

Сервисный Портал и «ФПК»

Описание

Роль в проекте Ведущий Java-разработчик Цель проекта Разработка и сопровождение экосистемы цифровых сервисов для внутренней и внешней автоматизации бизнес-процессов. Платформа объединяет десятки микросервисов, отвечающих за обработку данных, работу с профилями пользователей, интеграцию с внешними источниками, поиск, хранение документов и файлов, а также обеспечивает стабильность, масштабируемость и безопасность сервисов компании. Работы включали развитие старых сервисов на JDK 11/15, проектирование и создание новых микросервисов на JDK 17/21, миграцию сервисов, оптимизацию производительности, улучшение архитектуры и повышение тестового покрытия. Изменение архитектуры. Архитектура • Микросервисная архитектура • Брокер: kafka • Бэкенд: Java (JDK 11, 15, 17, 21), Spring Boot 2/3, Spring MVC, Spring Security, Spring Data JPA, Hibernate 5/6 • Базы данных: PostgreSQL 13, MongoDB • Поиск и аналитика: Elasticsearch • Интеграции: SOAP Messaging, REST (OpenAPI), S3-хранилище • Аутентификация: Keycloak • Инфраструктура: Docker, Docker Desktop, OpenShift • CI/CD: Maven, Git • Документация и спецификации: OpenAPI, Swagger • Тестирование: JUnit5, Testcontainers Непосредственные задачи • Сопровождал и развивал старые сервисы на JDK 11 и 15, включая исправление дефектов и устранение некорректных архитектурных решений. • Проектировал и разрабатывал новые микросервисы на JDK 17 и 21 с использованием Spring Boot 3 и Hibernate 6. • Перевёл часть сервисов со старых версий JDK (11 → 17, 11 → 21), устранив устаревшие зависимости и адаптировав код под новые версии платформы. • Оптимизировал медленные end-point"ы, сократив время ответа с 1–2 секунд до ~100 мс за счёт переработки логики, кеширования и оптимизации запросов. • Повысил покрытие unit-тестами в старых сервисах до нормативных 80%, а в новых собственных сервисах обеспечил покрытие 90%+ с использованием JUnit5 и Testcontainers. • Оптимизировал SQL-запросы, улучшая их структуру и добавляя необходимые индексы в PostgreSQL. • Разрабатывал и дорабатывал сложные запросы в MongoDB, включая агрегации и поиск по вложенным структурам. • Реализовал поисковые запросы в Elasticsearch из Spring Boot-сервисов, оптимизировал маппинги и схемы индексации. • Оказывал консультации коллегам по возникающим вопросам разработки, архитектуры, работы с данными и выбору технологий. • Помогал другой команде принимать архитектурные решения, участвовал в обсуждении архитектурных паттернов и интеграций. • Разработал и обновлял Liquibase-скрипты для управления версиями схем баз данных. • Интегрировал сервисы с Keycloak, включая конфигурацию клиентов, ролей и политики доступа. • Настраивал и улучшал CI/CD-процессы в части сборки, тестирования и деплоя сервисов. • Работал с S3-хранилищем для загрузки, хранения и обработки файлов. Состав команды 8 человек: 4 backend-разработчика (Java), 1 frontend-разработчик, 2 QA-инженера, 1 аналитик. Плотное взаимодействие с соседними командами в рамках общей платформы.

Технологии

Java (JDK 11/15/17/21), Spring Boot 2/3, Spring MVC, Spring Data JPA, Hibernate 5/6, PostgreSQL 13, MongoDB, Elasticsearch, Keycloak, Liquibase, Maven, Git, Docker, OpenShift, S3, SOAP, REST, OpenAPI, Swagger, JUnit5, Testcontainers.

Длительность

Сентябрь 2022 – Октябрь 2025 месяцев

Проект

Система репликации данных из реляционных БД и веб-сервисов в облачные хранилища»

Описание

Роль в проекте Senior Software Engineer Цель проекта Разработка и поддержка высоконадежной и масштабируемой платформы для программной репликации данных из различных реляционных баз данных и внешних веб-сервисов в облачные хранилища. Система обеспечивала сбор, трансформацию, нормализацию и доставку данных, гарантируя целостность, непрерывность потоков и отказоустойчивость при работе с большими объемами данных. Основной задачей было развитие механизма репликации, интеграция новых источников данных, повышение надежности и стабильности системы, улучшение производительности и внедрение современных практик тестирования и разработки. Архитектура • Монолитная архитектура • Бэкенд: Java, Spring, Spring Data, REST • Источники данных: реляционные БД (RDBMS), внешние web-services (REST/SOAP) • Облачные хранилища: корпоративные cloud-storage решения (S3-подобные) • Интеграции: REST API, SOAP, JDBC • Инфраструктура: Docker, CI/CD • Мониторинг и логирование: стандартные инструменты платформы (логгирование, метрики) • Тестирование: Unit-тестирование, интеграционное тестирование Непосредственные задачи • Разрабатывал функциональность системы репликации данных между реляционными БД, веб-сервисами и облачными хранилищами. • Интегрировал новые источники данных, включая REST и SOAP-сервисы, адаптируя существующую архитектуру под дополнительные форматы. • Оптимизировал производительность механизмов репликации, сокращая время обработки больших объемов данных. • Рефакторил существующие модули, повышая стабильность процессов репликации и уменьшая вероятность ошибок при работе с потоками данных. • Разрабатывал преобразование и нормализацию данных, обеспечивая корректное соответствие схем источников и облачного хранилища. • Реализовал улучшенные механизмы обработки ошибок, включая повторные попытки, логирование, контроль целостности и валидацию данных. • Писал unit- и интеграционные тесты, покрывая ключевые участки репликационных процессов. • Проводил код-ревью и консультировал коллег, обеспечивая единый стиль разработки и качество решения. • Участвовал в настройке CI/CD-процессов, улучшал автоматизацию сборки и доставки релизов. • Документировал API, процессы репликации и сценарии обработки данных для внутренних команд. Состав команды 10 человек: 6 backend-разработчиков, 2 QA-инженера, 1 архитектор, 1 проджект-менеджер.

Технологии

Java, Spring, Spring Data, REST, SOAP, JDBC, реляционные БД (RDBMS), web-services, cloud-storage (S3-подобные хранилища), Docker, Git, CI/CD, Unit-тестирование, интеграционные тесты.

Длительность

Декабрь 2021 — Август 2022 месяца

Проект

РТ МИС

Описание

Роль в проекте Java-developer / Team Lead в продуктовой группе Цель проекта Разработка нового проекта для автоматизации внутренних технологических и бизнес-процессов, а также сопровождение и развитие существующих систем (LSD и N2O). Новый модуль обеспечивал обработку данных, поиск, планирование фоновых задач, интеграцию с корпоративными сервисами и удобный пользовательский интерфейс на базе современного фронтенда. Работа включала создание backend-части на Java 15 и PostgreSQL 12.6, проектирование поисковых механизмов, реализацию шедулер-задач, улучшение архитектуры старых систем и техническое руководство командой. Архитектура • Микросервисная и модульная архитектура • Бэкенд: Java 15, Spring Boot, Hibernate ORM, Quartz • Поиск: Lucene • Базы данных: PostgreSQL 12.6 (новый проект), PostgreSQL 9.6 (старые системы) • Фронтенд: ReactJS + Redux, JS, JSP, TagLibs, CSS • Миграции БД: Liquibase 3.4 • Интеграции: REST • Старые системы: JDK 1.8, Hibernate, Spring, PostgreSQL 9.6 • Инфраструктура: Git, CI/CD (в составе команды) Непосредственные задачи • Разрабатывал backend нового проекта на Java 15, Spring Boot и Hibernate ORM с интеграцией в корпоративную экосистему. • Проектировал и реализовывал модуль поиска на базе Lucene, включая индексацию, анализаторы и оптимизацию поиска. • Реализовал шедулер-механизмы с использованием Quartz, обеспечивающие выполнение фоновых задач и периодических процессов. • Разрабатывал REST-эндпойнты и бизнес-логику, включая валидацию, обработку ошибок и транзакционность. • Сопровождал и развивал старые системы (LSD и N2O), исправлял дефекты, оптимизировал архитектуру и улучшал стабильность. • Оптимизировал SQL-запросы и схемы БД как в новых, так и в старых сервисах, улучшая производительность и отказоустойчивость. • Мигрировал функциональность старых систем с устаревших технологий на более современные решения (JDK 1.8 → Java 15). • Разрабатывал и модифицировал Liquibase-скрипты для обновления и контроля версий баз данных. • Интегрировал backend с фронтендом на ReactJS + Redux, обеспечивая корректность API и удобство использования данных. • Участвовал в refactoring старых модулей, удаляя дублирования и улучшая читаемость и расширяемость кода. • Проводил код-ревью, формировал единые стандарты разработки и повышал качество кода команды. • Оказывал техническое руководство продуктовой группе, помогал разработчикам в решении архитектурных и технических вопросов. • Документировал API, бизнес-функции и архитектурные решения для внутренних команд и аналитиков. • Управление командой из 4-х человек: постановка задач, планирование спринта Состав команды 6–8 человек: Java-разработчики, frontend-разработчик, QA-инженеры, аналитик.

Технологии

Java 15, JDK 1.8, Spring Boot, Spring Framework, Hibernate ORM, Quartz, PostgreSQL 12.6 / 9.6, Liquibase 3.4, Lucene, ReactJS, Redux, JS, JSP, TagLibs, CSS, Git, REST.

Длительность

Ноябрь 2016 – Ноябрь 2021 месяц

Проект

РТ МИС

Описание

Роль в проекте Java-developer / Team Lead в продуктовой группе Цель проекта Разработка нового проекта для автоматизации внутренних технологических и бизнес-процессов, а также сопровождение и развитие существующих систем (LSD и N2O). Новый модуль обеспечивал обработку данных, поиск, планирование фоновых задач, интеграцию с корпоративными сервисами и удобный пользовательский интерфейс на базе современного фронтенда. Работа включала создание backend-части на Java 15 и PostgreSQL 12.6, проектирование поисковых механизмов, реализацию шедулер-задач, улучшение архитектуры старых систем и техническое руководство командой. Архитектура • Микросервисная и модульная архитектура • Бэкенд: Java 15, Spring Boot, Hibernate ORM, Quartz • Поиск: Lucene • Базы данных: PostgreSQL 12.6 (новый проект), PostgreSQL 9.6 (старые системы) • Фронтенд: ReactJS + Redux, JS, JSP, TagLibs, CSS • Миграции БД: Liquibase 3.4 • Интеграции: REST • Старые системы: JDK 1.8, Hibernate, Spring, PostgreSQL 9.6 • Инфраструктура: Git, CI/CD (в составе команды) Непосредственные задачи • Разрабатывал backend нового проекта на Java 15, Spring Boot и Hibernate ORM с интеграцией в корпоративную экосистему. • Проектировал и реализовывал модуль поиска на базе Lucene, включая индексацию, анализаторы и оптимизацию поиска. • Реализовал шедулер-механизмы с использованием Quartz, обеспечивающие выполнение фоновых задач и периодических процессов. • Разрабатывал REST-эндпойнты и бизнес-логику, включая валидацию, обработку ошибок и транзакционность. • Сопровождал и развивал старые системы (LSD и N2O), исправлял дефекты, оптимизировал архитектуру и улучшал стабильность. • Оптимизировал SQL-запросы и схемы БД как в новых, так и в старых сервисах, улучшая производительность и отказоустойчивость. • Мигрировал функциональность старых систем с устаревших технологий на более современные решения (JDK 1.8 → Java 15). • Разрабатывал и модифицировал Liquibase-скрипты для обновления и контроля версий баз данных. • Интегрировал backend с фронтендом на ReactJS + Redux, обеспечивая корректность API и удобство использования данных. • Участвовал в refactoring старых модулей, удаляя дублирования и улучшая читаемость и расширяемость кода. • Проводил код-ревью, формировал единые стандарты разработки и повышал качество кода команды. • Оказывал техническое руководство продуктовой группе, помогал разработчикам в решении архитектурных и технических вопросов. • Документировал API, бизнес-функции и архитектурные решения для внутренних команд и аналитиков. • Управление командой из 4-х человек: постановка задач, планирование спринта Состав команды 6–8 человек: Java-разработчики, frontend-разработчик, QA-инженеры, аналитик.

Технологии

Java 15, JDK 1.8, Spring Boot, Spring Framework, Hibernate ORM, Quartz, PostgreSQL 12.6 / 9.6, Liquibase 3.4, Lucene, ReactJS, Redux, JS, JSP, TagLibs, CSS, Git, REST.

Длительность

Ноябрь 2016 – Ноябрь 2021 месяц

Проект

Поддержка и оптимизация систем на базе PostgreSQL в региональных инсталляциях

Описание

Роль в проекте Инженер отдела технического внедрения Цель проекта Техническое сопровождение, поддержка и оптимизация систем, использующих PostgreSQL 9.3–9.5, развернутых в разных регионах. Работа включала обслуживание баз данных, анализ производительности, разработку SQL-скриптов, функций, оптимизацию запросов, а также обеспечение стабильной работы региональных информационных систем. Архитектура • СУБД: PostgreSQL 9.3–9.5 • Архитектура систем: монолитные и модульные решения в зависимости от региональной инсталляции • Интеграции: SQL, функции БД, триггеры • Инфраструктура: клиентские и серверные окружения в разных регионах • Мониторинг: встроенные средства PostgreSQL, логирование, анализ планов выполнения Непосредственные задачи • Сопровождал PostgreSQL 9.3–9.5 в десятках региональных развертываний, обеспечивая бесперебойную работу систем. • Анализировал производительность баз данных, выявлял проблемные места и предлагал архитектурные улучшения. • Оптимизировал сложные SQL-запросы, сокращая время выполнения и снижая нагрузку на серверы. • Разрабатывал SQL-функции и процедуры, расширяя бизнес-логику систем на уровне БД. • Исправлял ошибки в существующих SQL-скриптах, улучшая корректность и устойчивость работы модулей. • Проводил профилирование запросов с использованием EXPLAIN / EXPLAIN ANALYZE. • Настраивал индексы и оптимизировал их использование, повышая скорость выборок и операций обновления. • Анализировал логи PostgreSQL, выявлял причины сбоев и устранял критические проблемы. • Участвовал в обновлении региональных баз данных, выполнял миграции и поддержку схем данных. • Консультировал региональные команды по вопросам использования SQL, структуры БД и оптимального построения запросов. • Документировал изменения в БД и составлял рекомендации по эксплуатации. Состав команды 3–5 специалистов: инженеры внедрения, DBA, аналитики. Взаимодействие с региональными ИТ-командами.

Технологии

PostgreSQL 9.3–9.5, SQL, функции и процедуры БД, индексы, оптимизация запросов, анализ планов выполнения, администрирование БД.

Длительность

Апрель 2016 – Октябрь 2017 месяцев

Проект

Развитие и сопровождение корпоративных информационных систем на базе Oracle, Liferay и PostgreSQL

Описание

Роль в проекте Инженер Цель проекта Сопровождение, развитие и модернизация республиканских информационных систем компании, включая портал на Liferay Community Edition 6.1.1, модули интеграции через SOAP, сервисы на базе Oracle DB и PostgreSQL 9.6, а также разработку нового функционала. Работа была направлена на обеспечение стабильности существующих систем, улучшение производительности, создание новых сервисов, расширение функциональности портала и внедрение интеграционных решений между внутренними и внешними системами. Архитектура • Портальная платформа: Liferay Portal Community Edition 6.1.1 • Базы данных: Oracle DB, PostgreSQL 9.6 • Интеграции: SOAP Messaging • Бэкенд: Groovy, Java, Hibernate • Системы: корпоративные информационные модули, внутренние сервисы и интеграционные компоненты • Инфраструктура: серверные окружения компании, CI/CD в базовом виде, корпоративное логирование и мониторинг Непосредственные задачи • Сопровождал корпоративные информационные системы, анализировал ошибки, исправлял сбои и обеспечивал непрерывную работу сервисов. • Разрабатывал новый функционал, включая серверную логику на Groovy и Java с использованием Hibernate и SQL. • Внедрял улучшения в модулях Liferay, расширял портлеты, дорабатывал компоненты и интегрировал внешние сервисы. • Реализовывал SOAP-интеграции, включая создание запросов, обработку сообщений, сериализацию/десериализацию данных. • Работал с Oracle DB, создавал хранимые процедуры, функции, оптимизировал SQL-запросы и схемы хранения данных. • Разрабатывал функциональность на PostgreSQL 9.6, включая DDL/DML-операции, создание индексов и оптимизацию запросов. • Интегрировал различные подсистемы компании, обеспечивая корректный обмен данными между сервисами. • Оптимизировал существующий код, повышал производительность и стабильность бизнес-процессов. • Проводил анализ логов и мониторинг ошибок, устранял критические дефекты и предотвращал повторные инциденты. • Документировал изменения, описывал новую функциональность и участвовал в знаниях-передаче между командами. • Взаимодействовал с аналитиками и другими разработчиками, обсуждал бизнес-требования и предлагал улучшения. • Участвовал в тестировании внедряемого функционала, проверял корректность интеграций и выполнения бизнес-логики. Состав команды 5–7 специалистов: разработчики (Java/Groovy), инженеры сопровождения, аналитики, тестировщики.

Технологии

Oracle DB, PostgreSQL 9.6, Liferay Portal CE 6.1.1, SOAP Messaging, Groovy, Java, Hibernate, SQL, интеграционные решения, мониторинг и логирование.

Длительность

Январь 2013 – Апрель 2016 месяцев

Проект

Администрирование и развитие корпоративных систем на платформе Lotus Domino

Описание

Роль в проекте Ведущий инженер Цель проекта Обеспечение стабильной работы корпоративной инфраструктуры университета на базе Lotus Domino 6.5, сопровождение и развитие внутренних сервисов, поддержка пользователей, настройка систем документооборота и коммуникаций. Проект был направлен на поддержание работоспособности критически важных ИТ-систем образовательного учреждения, оптимизацию процессов, повышение надежности сервисов и оперативное решение возникающих технических задач. Архитектура • Платформа: Lotus Domino / Lotus Notes 6.5 • Инфраструктура: корпоративные серверы, доменные сервисы, пользовательские окружения • Интеграции: встроенные механизмы Lotus Domino, почтовые и административные сервисы • Коммуникации: корпоративная почта, системы внутренних уведомлений и обмена документами • Мониторинг: администрирование серверов, анализ логов, контроль состояния систем Непосредственные задачи • Администрировал Lotus Domino 6.5, обеспечивая непрерывную работу корпоративных почтовых и внутренних сервисов. • Поддерживал пользователей, решал технические проблемы, связанные с учетными записями, доступом, почтовыми клиентами и сервисами коммуникаций. • Разрабатывал и дорабатывал внутренние приложения на платформе Lotus, расширял функциональность и оптимизировал бизнес-процессы. • Настраивал доменные структуры и политики, обеспечивал корректное распределение прав и групп доступа. • Следил за стабильностью серверов, проводил профилактику, обновления и диагностику неполадок. • Анализировал и устранял сбои, работал с логами Domino, предотвращал повторные инциденты. • Оптимизировал конфигурации серверов, повышал производительность и отказоустойчивость системы. • Организовывал резервное копирование и восстановление данных, контролировал целостность почтовых баз. • Документировал настройки, регламенты и изменения, обеспечивал передачу знаний внутри отдела. • Консультировал сотрудников по работе с корпоративными сервисами, обучал использованию Lotus Notes. • Участвовал в развитии ИТ-инфраструктуры, предлагал улучшения и модернизации систем. Состав команды 3–6 человек: системные администраторы, инженеры сопровождения, специалисты техподдержки.

Технологии

Lotus Domino / Notes 6.5, администрирование серверов, корпоративная почта, управление учетными записями, мониторинг и логирование, поддержка пользователей, разработка внутренних приложений на Lotus.

Длительность

Сентябрь 2008 – Январь 2013 месяцев