Java developer

Санкт-Петербург, Россия
Миддл • Сеньор
Информационные технологии • Разработка • Backend • Java
Удаленная работа
Опыт работы более 5 лет
от 220 000 до 250 000 ₽
Есть файл резюме (защищен)
О себе

На данный момент Java developer.

Мои компетенции и опыт

Коротко о моём опыте в компании 7 Red Lines (август 2018 по сентябрь 2020):

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

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

Своим достижением могу считать качественно написанный API и тесты.

Коротко о некоторых проектах:

1) Сайт приема и обработки диспетчерских заявок на ремонт оборудования для предприятий энергетического холдинга (NDA) - это аналитическая система для обработки диспетчерских заявок и рассчета даты и времени планового/внепланового ремонта оборудования.

Роль в проекте:

- Backend-разработчик

Основные задачи:

- Проектирование и реализация основного и дополнительного функционала системы

- Оптимизация ранее написанного функционала и легаси-кода

- Реализация слоя доступа к данным используя Spring Data Jpa и Hibernate

- Написание юнит-тестов

- Организация взаимодействия между компонентами системы через REST API

- Реализация выгрузки данных в форматы Word, Excel, pdf и т.д.

- Деплой (как ручной, так и автоматический) приложения на тестовый стенд и репозиторий заказчика

Что сделано:

Написаны модели данных и слой доступа к данным согласно ТЗ, а также интеграционные и юнит-тесты.

Основные технологии, используемые на проекте:

Java 8, Maven, Git, Spring Boot, Spring Data, JPA, Hibernate, MSSQL Server, Liquibase, Project Lombok, Spring Test, Spring MVC, Spring Security, Junit/Mockito, JAX-WS 2.0, JAXB, SOAP, WSDL, IBM Datapower, Bitbucket

2) Модуль ввода расчетно-калькуляционных материалов для государственного ведомства (NDA)

Описание:

Система состоит из 2-х частей: desktop-приложение, написанное на JavaFX (ввод) и веб-приложение (анализ).

Роль в проекте:

- Backend-разработчик

Основные задачи:

- Оптимизация и рефакторинг кода, написанного другими разработчиками

- Исправление отображения экранных форм в GUI

- Написание SQL-скриптов для добавления или изменения данных в таблицах представления Java FX

- Деплой приложения на тестовый стенд и репозиторий заказчика

Что сделано:

-Добавлены формулы расчета необходимых параметров, согласно ТЗ.

- Проведен масштабный рефакторинг, устранены критические баги, мешающие работе с приложением.

Сопровождение ПО после релиза на прод.

Основные технологии, используемые на проекте:

Java 8, JavaFX, Maven, Git, PostgreSQL, Hibernate, Gitlab

3) Приложение для работы с досье юридических лиц (NDA)

Описание:

Веб-сервис для работы с досье юридических лиц.

Роль в проекте:

- Backend-разработчик

Основные задачи:

- Создание структур данных на стороне сервера для отображения на стороне клиента

- Сборка серверной и клиентской части приложения

- Деплой приложения на тестовый стенд и репозиторий заказчика

Что сделано:

- Совместно с фронтенд-разработчиком вносились исрпаления вотображение данных на стороне клиента.

- Систематическая сборка, проверка и деплой приложения на тестовый стенд и репозиторий заказчика.

 

Основные технологии, используемые на проекте:

Java 8, Spring MVC, Spring Security, Maven, Gradle, Groovy, Project Lombok, Junit/Mockito, PostgreSQL

 

Коротко о моём опыте в компании Utrace (сентябрь 2020 по наст. время):

Роль в проекте:

- Ведущий backend-разработчик

Основные обязанности:

- Разработка комплекса веб-сервисов, образующих единую систему для обязательной маркировки и полной прослеживоемости товаров. Разработка ведется на основе микросервисной архитекруры

- Оптимизация и рефкторинг ранее написанного функционала

- Проектирование схемы БД

- Написание тестов

- Написание интеграций со сторонними системами

- Решение проблем на продуктиве

 

Что сделано

Общими словами:

Разработан комплекс сервисов для полной прослеживаемости товаров, начиная от производства и заканчивая складом. У кажого сервиса своё назначение, например: получение файлов из SFTP, обработка заказа и отправка данных в регулятор, авторизация в сторонней системе, управление логистической цепочкой и многое другое.

Я участвовал в разработке всей системы.

Но, по большей части, участвовал в проектировании и внедрении сервиса для заказов и отчетов (не могу разглашать подробности в связи с NDA), а также сервиса многоступенчатой авторизации в системе заказчика.

Подробнее:

1) Сервис авторизации написан на Java 11. Мной была разработана схема БД, в которой хранились учетные данные клиента, данные о сессиях авторизации.

2) Проект, связанный с заказами кодов маркировки был частично переписан на микросервисы, но по сей день продолжает работать в проде. При интеграции с другимим микросервисами использовался фреймворк Spring Integration, сборка релизной версии и хотфиксов осуществляется через плагин maven gitflow. Мное было исправлено версионирование проекта на семантическое, где версия программы инкрементируется исходя из степени обратной совместимости добавленных изменений.

3) Повышена отказоустойчивость цепочки для нескольких бизнес-процессов: добавлен ретрай в случае внезапного отказа SFTP-сервера на стороне заказчика. При отказе SFTP, происходит опрос на состояние подключения, если подключение восстановилось, данные, в свою очередь вновь формируются из БД, записываются в файл и отправляются на SFTP.

4) Реализован приём входящих сообщение от заказчика с помощью паттерна Outbox: создана небольшая таблица с первичным ключем, payload и статусом, по которому мы понимаем, что сейчас происходит с сообщением.

5) Выполнил партиционирование большой таблицы в БД, с целью разбить таблицу на несколько таблиц, исходя из даты, указанной в одном из её полей. Это делалось с целью более удобного манипулирвания данными и, при необходимости, очистки старых данных, которым более 3 лет.

6) Улучшено логгирование многих сервисов для более детализированной информации об их работе.

 

Основные навыки применямые в компании:

- Владение Java Core, понимание ООП, SOLID

- Docker: настройка компонентов в контейнерах для более удобной разработки.

- CI/CD: настройка пайплайнов в Gitlab

- Опыт работы с фреймворками Spring (Core, Web, Test, Integration, Data JPA, Sequrity), Hibernate, Apache Camel

- Умение работать с реляционными базами данных (PostgreSQL, MySql).

- Тестирование с помощью JUnit и Mockito

- Знание системы контроля версий Git

- Большой опыт настройки инфраструктуры, поиска неисправностей при недоступности сервиса по сети, решение проблем с настройкой окружения.

- Пользуюсь как Windows, так и Linux (Mint, Ubuntu, Debian)


Специализация
Информационные технологииРазработкаBackendJava
Отрасль и сфера применения

Уровень
МиддлСеньор

Есть файл резюме (защищен)


Интересные кандидаты