КБ
Кирилл Б.
Мужчина
Россия, Ижевск, UTC+4
Ставка
4 125 Р/час
НДС не облагается
Специалист доступен с 13 ноября 2024 г.
Добавьте подходящих специалистов в список и оформите заявку для предварительного бронирования времени специалистов. После оформления заявки ваш персональный менеджер организует прохождение всех необходимых проверок с вами и каждым кандидатом из заявки. Специалист привлекается к проекту только после окончательного подтверждения его выхода с вашей стороны.
Подробнее
О специалисте
Специализация
Java разработчик
Грейд
Навыки
Отрасли
Главное о специалисте
Имею 5-ти летний опыт разработки программного обеспечения на Java и JavaScript.
Опыт разработки приложений с использованием Java, Spring, Spring Boot и RDBMS и noSQL-решений.
Проекты
(3 года 8 месяцев)
Система аналитики трат пассажиров авиатранспорта
Роль
Java разработчик
Обязанности
Описание проекта
На основе данных по операциям с авиабилетами и покупок во время рейса производится аналитика трат пассажиров. Операции по авиабилетам в системе подразделяются на несколько видов, такие как покупка, обмен, возврат, покупка дополнительных услуг и другие. Вид операции определяет шаги в потоке обработки для поступающей информации.
Что было сделано
Мною было реализовано 3 шага обработки данных:
1. Обработка поступающей информации в виде XML документов с информацией о пассажире, рейсе и совершенной операции, с сохранением результата обработки в базу данных.
2. Слежение за изменениями в определенных таблицах с информацией о пассажирах, рейсах в базе данных и запись событий изменения в Kafka.
3. Обработка событий изменения данных в таблицах в Kafka и дальнейшее распределение на несколько потоков.
В рамках первого шага происходит разбор XML документа, проверка валидности полученных данных, выделения из данных различных сущностей (пассажира, рейса, данных об оплате и др.) и сохранения полученных сущностей в БД. Проверка валидности данных для некоторых типов операций основана на операциях, совершенных ранее, например возврат билета невозможен без ранее совершенной покупки. Поэтому обработка всех операций происходит в хронологическом порядке.
На втором шаге происходит считывание изменений из журнала БД, вычленение части данных и запись полученного в Kafka. Данный шаг был реализован с использованием Debezium.
На третьем шаге происходит распределение данных из Kafka на несколько различных потоков в зависимости от различных условий. Дальнейшей обработкой этих потоков занимаются другие приложения. Данный шаг был реализован на Java с использованием Kafka Streams.
Стек специалиста на проекте
ArtemisMQ, debezium, Java, Kafka, Kafka Streams, Hibernate, ActiveMQ, PostgreSQL, Spring Boot, Spring
Отрасль проекта
Logistics & Transport
Период работы
Июль 2023 - Октябрь 2024
(1 год 4 месяца)
Карта "зелёных" компаний
Роль
Java разработчик
Обязанности
Описание проекта
Разработка веб приложений, позволяющих отмечать на карте "зелёные" компании.
Основное назначение сервиса заключалось в том, чтобы организации, заинтересованные в экологической деятельности, могли узнавать друг о друге.
Основное приложение включает в себя:
● карту, на которой присутствуют маркеры компаний
● список всех отметившихся компаний с категоризацией по виду деятельности
● просмотр информации по определенной компании
● функционал добавления новой компании на карту.
Что было сделано
Основными обязанностями являлись реализация микросервисов и их развертывание в инфраструктуре Google
● имплементация REST API
● работа с Datastore
● работа с Cloud Storage
● имплементация авторизации с использованием логина/пароля с верификацией введенного адреса почты и через Google OAuth
Стек специалиста на проекте
DataStore, store /, core, app, Data, Google Cloud Platform, Nginx, JWT, cloud, Security, Storage, IAM, Web, Docker, CI/CD, Java 11, Maven, Spring Boot, Spring
Отрасль проекта
Urban technology
Период работы
Ноябрь 2022 - Июль 2023
(9 месяцев)
Инструменты для Системы управления обучением (Learning Management System, LMS)
Роль
Java разработчик
Обязанности
Описание проекта
Система предназначена для предоставления студентам опыта обучения. С помощью протокола LTI она была интегрирована с различными LMS. Преподаватели могли создавать задания для учащихся из доступного контента и настраивать параметры оценки контента. Также они могли видеть различную статистику о прогрессе учащихся.
Что было сделано
Основные обязанности заключались в написании бэкенд части для веб-приложений и реализации микросервисов для этих приложений, а также в написании Unit тестов и автотестов.
Бэкенд состоял из нескольких микросервисов REST на Java, написанных с использованием Spring Framework. Большинство из них использовали Java 8, но постепенно переводились на Java 11 и 17. Для большинства из них существовала спецификация Swagger, либо написанная вручную, либо сгенерированная. Данные хранились в Couchbase, MongoDB, PostgreSQL.
Основные сервисы хранились в одном репозитории, у других были отдельные репозитории. Некоторые сервисы были развернуты на Tomcat, некоторые - как Spring Boot приложения. Checkstyle использовался для поддержания чистоты кода. Большая часть кода была покрыта Unit тестам.
Принимал участие в разработке бэкенд сервисов:
● Сервис запуска - сбор различной информации, такой как активированная функциональность, доступные пользователю действия, идентификаторы пользователя, для предоставления фронтенд приложениям при их запуске
● Сервис прогресса - обработка информации о прогрессе учащихся
● Сервис эвалюации вопросов - эвалюация попыток ответа на вопросы; для определенных типов вопросов мог обращаться к другим сервисам
● Сервис эвалюации эксельных вопросов - эвалюация попыток ответа на вопросы, основанных на эксель файлах
● Сервис архивации - архивирование старых данных, связанных со студенческим прогрессом, и предоставление доступа к этим данным в режиме только для чтения
Также в проекте присутствовал репозиторий с автотестами. Он содержал тесты API, написанные на Rest Assured, и тесты Selenium для проверки интеграции различных сервисов.
Стек специалиста на проекте
checkstyle, Java, JUnit, Swagger, Redis, Couchbase, Apache POI, TestContainers, Maven, Spring Boot
Отрасль проекта
EdTech
Период работы
Март 2021 - Октябрь 2022
(1 год 8 месяцев)
Формат работы
Тип занятости
Фулл-тайм
Формат работы
Удаленно
Командировки
Не готов
Релокация
Не готов
Готов работать на зарубежных проектах
Нет
Образование
Высшее
Учебное заведение
Ижевский государственный технический университет имени М.Т. Калашникова, г. Ижевск
Специальность
Программная инженерия, Бакалавр
Завершение учебы
2018 г.