Специалисты

Описание

Programming Languages - Java - Kotlin
Framework/Library - Spring - Spring Boot - Spring Cloud - JPA, Hibernate
DBMS - Oracle - PostgreSQL - MongoDB - Redis
Application/Web Servers - Nginx - Apache Kafka - Apache Tomcat - ElasticSearch - LogStash - Kibana
Application Type - REST - HTTP - Grpc
Development Tools - Git - Gradle - Maven
Other - Agile - Jira - Docker - Kubernetes - Camunda - Nexus - Unix
Информационные системы и технологии
Политехнический институт ДГТУ

Опыт
Проект

Плаформа, объединяющая врачей и медицинские компании из разных стран и способствующая непрерывному медицинскому образованию

Описание

платформа, объединяющая врачей и медицинские компании из разных стран и способствующая непрерывному медицинскому образованию (CME) путем предоставления учебных курсов, проведения вебинаров. Перед нами стояла задача расширения функционала существующего приложения, имеющего десктопную и мобильную версии. Необходимо было разработать сервис продажи учебных курсов для докторов с применением системы промокодов. Каждый курс рассчитан на определенное количество часов CME, нужно было вести учет общего количества часов по курсам, которыми владеет пользователь и часов по курсам, которые уже пройдены пользователем. Также клиент хотел осуществить модернизацию новостной ленты из устаревшего двухколоночного вида в современный трехколоночный, объединить в новостной ленте контент из трех существующих вкладок с применением правил фильтрации, добавить виджеты. Что было сделано 1. В рамках проекта доработан функционал админ-панели в части создания и управления промокодами для учебных курсов: создана страница промокодов, в которой можно создавать как единичные промокоды, так и коллекции разовых промокодов, которые можно применять как к любому, так и к конкретному курсу. 2. В этой же странице можно управлять статусом промокода (активация/деактивация), можно выгрузить информацию о промокоде в формате xlsx. - добавлены данные о продаже курсов и учете выручки от продаж. Расширен функционал страницы пользователя в части фильтрации типов доступных ему курсов, настроен индикатор прогресса обучения по количеству часов, изменена верстка карточек курсов для соблюдения единообразия дизайна всего приложения. 3. Добавлена возможность покупки курсов с использованием сервиса оплаты Hyperpay (региональный сервис для осуществления транзакций) с возможностью запросить возврат за не начатый курс. 4. Добавлена возможность применения промокода и пересчета стоимости курса. Изменена стартовая страница, произведено объединение сбора сущностей с существующих трех вкладок на одну вкладку ленты постов в определенном порядке формирования: 3 поста пользователей, блок рекламы (интеграция с Google ads), контент - сущность от компаний, в зависмости от выбранного фильтра: по популярности или по дате публикации. 5. Для этого полностью изменена существующая логика на бэкенд и создан новый эндпоинт. Добавлены фильтры-подвкладки для отображения контента от пользователей или от компаний. Двухколоночный тип заменен на трехколоночный, добавлены виджеты рейтинга пользователя/пригласи друга (с возможностью интеграции с соц. сетями facebook, telegram, twitter, whatsapp, skype, LinkedIn, reddit)/опросов/уведомлений/популярных постов/промо постов. Произведено ускорение загрузки страницы. 6. Добавлена пагинация перечисленных страниц. 7. Для SEO-оптимизации в приложение добавлены метатеги. 8. Также исправлены баги от предыдущих команд разработки в части редактирования профиля пользователя и повторного начисления и выдачи сертификатов за повторное прохождение курсов, автоскролла при прохождении этапов курса. Кроме того, восстановлены регистрация и авторизация по facebook. 9. Для unit тестирования приложения применены методы Jasmine и Karma. 10. Деплой проекта в Microsoft Azure.

Технологии

Java / Spring / PostgreSQL / Feign / MS Azure

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

Июнь 2023 – н.в. месяцев

Проект

Продукт предназначен для обработки информации, поступающей со множества производственных площадок.

Описание

Продукт предназначен для обработки информации, поступающей со множества производственных площадок. Пользователь имеет возможность отслеживать входящие сигналы, вести различную статистическую обработку информации, создавать мероприятия в случае отклонений технологических параметров. Наша команда занималась рефакторингом системы контроля производственных процессов. К основным задачам можно отнести: 1. Переход от монолитной архитектуры с хранимыми процедурами на Oracle к микросервисам с распределенным хранилищем на Clickhouse 2. Механизм обработки множественных низкоуровневых сигналов через Kafka 3. Аналитический UI для инженерного состава предприятия, позволяющий отслеживать, фиксировать и описывать различные мероприятия Что было сделано 1. Реализована пакетная обработка сообщений из Kafka для возможности держать большую нагрузку. 2. Построение сложных таблиц для аналитического UI с возможностью поиска и фильтрации. 3. Выгрузки отчетов в xlsx формате. 4. Реализация новой ролевой модели в keycloak для одновременной поддержки нового и старого функционала.

Технологии

Java / Kotlin / Spring / TestContainers / Mockito / Kafka / Clickhouse / PostgreSQL / Keycloak

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

Май 2022 – Июнь 2023 месяца

Проект

Проект нацелен на создание инструмента для управления персоналом и автоматизации задач предприятия.

Описание

Проект нацелен на создание инструмента для управления персоналом и автоматизации задач предприятия. Инструментом могут пользоваться не только руководители, но и рабочие, для руководителей - управление персоналом, для рабочих - заведение задач (работ). Все это необходимо для оптимизации и автоматизации процессов управления и производства с помощью различных функций, заточенных под различные ситуации. В ходе работы реализованы модули РНП (Расстановка и назначение персонала) и УОР (Управление остановочными ремонтами), которые включают функционал графического отображения загруженности каждого работника и его рабочего места. Модуль РНП отвечает за балансировку нагрузки каждого исполнителя и назначение ему конкретных задач. Модуль УОР формирует графики ремонтов на основе различных внутренних единиц, устанавливает правила формирования ремонтов, маршруты согласования по иерархическому дереву руководителей и предоставляет различные шаблоны для создания объектов загрузки. Разбито монолитное приложение на микросервисы, где каждый модуль представлен отдельным микросервисом. Что было сделано 1. Перевод парсинга сущности (которая приходит из ERP) из монолита в отдельный микросервис с рефакторингом сервисов и мапперов (из умного маппера делаем глупого, чтобы не вызывались внутри него сервисы/репозитории, по возможности отказываясь еще и от хелперов). 2. Оптимизация расчета баланса ремонтного времени - расчета работ на техническом месте. Изначально на стенде расчет занимал около 4 часов, удалось оптимизировать до 3 минут (в выборке участвовали почти все существующие записи - около 1.5 млн). Для оптимизации все BigDecimal были убраны и вместо них начали использоваться Float, т.к. на фронте число отображается с двумя знаками после запятой; на колонки, которые используются в выборке написан индекс; была использована многопоточка (техместо оборачивалось в поток). 3. Расчет одобренного и фактического БРВ (баланс ремонтного времени) - более узкая выборка работ на техместах, необходима для сравнения показателей времени работ на техместах, одобренное - одобренное начальством, фактическое - на данный момент, которое запросили работники (изначально была предложена джоба и создание двух таблиц, но из-за отсутствия необходимости получения всех записей перешли к точечному получения техмест из конкретного графика ремонтов без хранения результатов в таблицах).

Технологии

Java 17 / Spring Framework / SpringBoot / Spring Data / JPA / Hibernate / Spring Security / RabbitMQ / Maven / PostgreSQL / JUnit5 / Liquibase / Apache poi

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

Апрель 2021 – Апрель 2022 месяца