НН
Николай Н.
Мужчина
Россия, Ижевск, UTC+4
Ставка
4 125 Р/час
НДС не облагается
Специалист доступен с 12 ноября 2024 г.
Добавьте подходящих специалистов в список и оформите заявку для предварительного бронирования времени специалистов. После оформления заявки ваш персональный менеджер организует прохождение всех необходимых проверок с вами и каждым кандидатом из заявки. Специалист привлекается к проекту только после окончательного подтверждения его выхода с вашей стороны.
Подробнее
О специалисте
Специализация
Java разработчик
Грейд
Навыки
Отрасли
Главное о специалисте
5,5 лет опыта разработки программного обеспечения на Java.
Опыт разработки приложений с использованием Java, Spring, Spring Boot и RDBMS.
Опыт автоматизации тестирования, WebSockets.
Имею опыт работы с AWS и Google Cloud Platform.
Проекты
(4 года 9 месяцев)
Platform V Asynchronous Tasks
Роль
Java разработчик
Обязанности
Сервис предназначен для регистрации заданий с целью их отложенного выполнения, а также выполнения заданий по расписанию.
За общую функциональность сервиса отвечают следующие компоненты:
● Модуль регистрации заданий;
● Модуль регистрации конфигураций заданий;
● Перепланировщик - по расписанию вычищает из базы задания в статусе error и перерегистрирует их;
● Модуль управления конфигурацией - обеспечивающий механизмы получения всей информации по заданиям и конфигурациям, а также операции редактирования, перепланирования и т.д.
Что было сделано
Моими основными обязанностями были:
● Обновление версий зависимостей и устранение уязвимостей
● Решение задач по модификацию существующего кода и исправление дефектов
● Реализация новой функциональности в соответствие с новыми требованиями.
В частности, частью крупного релиза был реализован уход от механизма, в рамках которого данные хранились только в БД сервиса и восстановление данных происходило из БД блока репликации. Сторонние сервисы предоставили новое хранилище, взаимодействие с которым происходит через соответствующее API. Теперь все данные от клиентов, которые регистрирует сервис управления задачами, реплицируются в это хранилище через предоставленный REST API и восстановление данных, в случае утраты таковых, будет происходить через него. В рамках данных изменений мной были внесены изменения в логику модулей системы.
Стек специалиста на проекте
Kubernetes, jdbctemplate, Liquibase, Java, JUnit, Apache Kafka, Docker, ActiveMQ, Maven, Oracle Database, PostgreSQL, Spring Boot
Отрасль проекта
Urban technology
Период работы
Сентябрь 2023 - Октябрь 2023
(2 месяца)
Mark & Find - платформа для добавления организаций на карту (marknfind.com)
Роль
Java разработчик
Обязанности
Приложение предназначено для разного рода организаций со схожими интересами, которые могут добавить себя в виде маркера на карту. При создании маркера организация загружает логотип, описывает свой вид деятельности и оставляет контакты. Поставить маркер может только зарегистрированный пользователь, а просматривать информацию может каждый. Администрирование выложенной информации происходит в ручную владельцами сайта. Админы приложения оповещаются по почте о добавлении и редактировании маркеров для модерации контента. Есть Telegram бот для оповещения участников группы о добавлении новой организации на карту.
Вся инфраструктура развернута в Google Cloud Platform. Фронтендом является SPA (Single Page Application) с версткой под десктопы и мобильные приложения. Также есть отдельное SPA приложение для администраторов. Взаимодействие с серверной частью происходит через REST API.
Авторизация в приложение возможна как по логин-паролю, так и с помощью oAuth2.0 через Google. Реактовскому приложению выдаются пара access и refresh JWT токенов. Инстансы приложений полностью stateless.
Что было сделано
Основными обязанностями являлись проработка архитектуры серверной части будущего приложения, реализация микросервисов и их развертывание в инфраструктуре Google, а также настройка своего домена для приложения и почты.
● имплементация REST API
● создание Telegram-бота, работа с Telegram Bot API
● создание сервиса smtp для рассылки почты
● создание PubSub топиков и подписок, настройка фильтрации
● работа с Datastore
● работа с Cloud Storage
● имплементация авторизации на JWT через Google-авторизацию и логин-пароль
Я работал над созданием “с нуля” микросервисов, которые хранили данные о пользователях и организациях в Datastore. Картинки логотипов и профилей пользователей хранились в Cloud Storage. Написал 3 микросервиса. Один являлся REST API для реактовского приложения, второй был Telegram-ботом, который оповещает участников чата о добавлении новой организации на карту, 3-й микросервис предназначен для почтовой рассылки админам и простым пользователям о разного рода событиях. Все микросервисы развернуты в App Engine и Google сам занимается автоскейлингом в зависимости от нагрузки. Межсервисное взаимодействие асинхронное, события отправляются в топики PubSub. PupSub сам оповещает своих слушателей вызовом Rest-эндпоинтов. Для этого нужно создать специальный эндпоинт-вебхук и прописать его в Pubsub. При отсутствии нагрузки на сервисы в App Engine, все инстансы останавливаются, что позволяет снизить оплату за приложение.
Стек специалиста на проекте
DataStore, store /, core, app, Data, Google Cloud Platform, Nginx, JWT, cloud, Security, Storage, IAM, Web, Hibernate, CI/CD, Java 11, Maven, Spring Boot, Spring
Отрасль проекта
Urban technology
Период работы
Ноябрь 2022 - Сентябрь 2023
(11 месяцев)
Инструменты для системы управления обучением
Роль
Java разработчик
Обязанности
Данный проект является набором Инструментов для LMS. Приложения для дистанционного обучения студентов. При помощи протокола LTI, инструменты были интегрированы с различными LMS. Информация о прогрессе студента хранилась в наших базах и в дальнейшем отправлялась в LMS для синхронизации данных.
Существует большое количество веб приложений (9 приложений), каждое из которых является отдельным LTI инструментом для LMS и один проект с общими UI компонентами для этих приложений. Часть приложений предназначена для инструкторов, в которых они могут создавать задания (т.н. Assignments), назначать их студентам и отслеживать студенческий прогресс. Часть для студентов, где студенты могут отвечать на вопросы и получать за это баллы. Также существует контент команда, которая создает продукты и вопросы. Они также имеют свои веб и десктоп приложения.
Каждое веб приложение покрыто unit тестами, написанными на Jest. Для автоматизации тестирования, написаны cypress тесты.
Бекенд написан с использованием микро сервисной архитектуры. Сервисы написаны на Java 8 с использованием фреймворка Spring. Общение с микросервисами происходит через Rest API. Есть swagger документация. Данные хранятся в базах данных Couchbase, Postgresql, Mysql. Часть микросервисов хранятся в одном репозитории и деплоятся в одном томкате, часть являются отдельными spring boot приложениями. Для поддержки чистоты кода используется Checkstyle. Весь код покрыт юнит тестами.
Существует также отдельный проект для автоматизации тестирования. Он содержит API тесты написанные на Rest Assured и selenium тесты для интеграционного тестирования бэкенда и фронтенда в связке.
Что было сделано
Основными обязанностями было написание веб приложений и реализация микро сервисов для них на бекенде (реализация нового и улучшение существующего функционала):
● написание swagger документации и реализация Rest API
● написание сервисного слоя
● написание запросов в базу данных
● имплементация кэширования данных в Redis для уменьшения нагрузки на Couchbase
● работа над созданием UI компонентов на React и работа с данными в хранилище с помощью Redux
● написание юнит и авто тестов
● фикс багов
● оптимизация работы сервисов
Стек специалиста на проекте
checkstyle, Selenium, JUnit, Swagger, Redis, Kafka, Couchbase, Java 8, Maven, Spring Boot
Отрасль проекта
EdTech
Период работы
Октябрь 2020 - Ноябрь 2022
(2 года 2 месяца)
Формат работы
Тип занятости
Фулл-тайм
Формат работы
Удаленно
Командировки
Не готов
Релокация
Не готов
Готов работать на зарубежных проектах
Нет
Образование
Высшее
Учебное заведение
Ижевский Государственный Технический Институт, г. Ижевск
Специальность
Программная инженерия, Бакалавр
Завершение учебы
2015 г.