Backend разработчик
Контакты
Backend-разработчик с опытом в embedded-системах и создании веб-сервисов.
Окончил университет по специальности «Интегральная электроника», где работал с различными средами разработки и проектирования, изучал как программную, так и аппаратную часть.
4 года программирую на Delphi и C в промышленной сфере:
— Разрабатывал компоненты SCADA-систем для автоматизации производственных процессов,
— Оптимизировал legacy-код.
Освоил Java для backend-разработки: создал 6 учебных проектов, включая сервис для работы с изображениями.
Стек: Spring Boot, Spring Data JPA, Spring Security, RabbitMQ, PostgreSQL, JUnit.
Сейчас разрабатываю собственный SaaS-сервис на Golang для планирования путешествий и внедорожных экспедиций:
— Микросервисная архитектура,
— REST API (Gin),
— PostgreSQL,
— Docker,
— React (frontend).
Хобби, которые многому меня научили:
— Автоспорт → стрессоустойчивость и умение быстро принимать решения,
— Организация многодневных походов → навыки стратегического планирования и управления ресурсами.
- Java 8
- Delphi
- PostgreSQL & H2
- Автоматическое тестирование (JUnit)
- Опыт работы на C/C++
- Небольшой опыт работы с Vue.js
- Опыт работы с React
- Git & GitHub
- Golang
Инструменты: VS Code, IntelliJ IDEA, Adobe Dreamweaver, Postman, Ubuntu on Windows, RAD Studio 11, GoLand
Игры разума
Стек: Java, Git, GitHub, CodeClimate.
Полученные навыки:
- работа и взаимодействие с приложением через консоль;
- работа с GitHub;
- подключение дополнительных компонентов ;
- оптимизация кода при помощи CodeClimate;
- формирование расширяемой и легко поддерживаемой архитектуры приложения.
Описание: В этом проекте была задача написать пять несложных игр, с возможностью выбора в консольном меню. Пользователю предлагается выбрать одну из игр: проверка на равенство, калькулятор, наибольший общий делитель, прогрессия и проверка на простоту. Пользователю необходимо дать ответ в виде "да/нет" или вписать конкретное число.
Вычислитель отличий
Стек: Java, Git, GitHub, Actions, CodeClimate, TDD, Picocli.
Полученные навыки:
- настройка непрерывной интеграции GitHub;
- написание, генерация тестов;
- работа с парсерами json и yml;
- работа с файлами.
Описание: В данном случае проект подразумевает разработку консольного приложения, позволяющего передавать на вход файлы в форматах json, yml, yaml и выводить на экран различия в них. Выводиться информация также может в различных форматах, включая json.
Валидатор данных
Стек: Java, Git, GitHub, Actions, CodeClimate, TDD.
Полученные навыки:
- построение объектно-ориентированной архитектуры приложения;
- написание документации.
Описание: В этом учебном проекте Hexlet будет создана библиотека для проверки корректности любых данных, в первую очередь, данных, вводимых пользователем.
Анализатор страниц
Стек: Java, Javalin, Git, GitHub, Actions, CodeClimate, TDD, Thymeleaf, Bootstrap, H2 & Postgresql, Project Lombok, Hikary
Полученные навыки:
- разработка и деплой полноценного веб-приложения;
- верстка страниц, взаимодействующих с backend;
- интеграция БД в проект.
Описание: В этом учебном проекте Hexlet был разработан и размещен на сервисе Render веб-сервис, позволяющий проводить проверку сайтов на SEO пригодность. Реализована связь с базой данных PostgreSQL, в которой хранится список сайтов, добавленных пользователями и результаты проверок.
Менеджер задач
Стек: Spring Boot & Spring Data JPA & Spring Security, JUnit/AssertJ, JWT, H2 & Postgresql, Project Lombok, QueryDSL, Swagger, Rollbar.
Полученные навыки:
- разработка веб-приложения на Spring Boot;
- настройка безопасности Spring Security;
- создание документации OpenAPI.
Описание: Менеджер задач - это веб-приложение, позволяющее создавать задачи, задавать для них исполнителей, добавлять статусы и помечать метками. Сервис предусматривает регистрацию пользователей и необходимость авторизации при использовании.
Сервис для работы с изображениями
Стек: Spring Boot, Spring Data JPA, Spring Security, Spring Email, JUnit/AssertJ, JWT, H2, Project Lombok, QueryDSL, RabbitMq.
Описание: Проект, позволяющий создать пользователя с двумя возможными ролями (USER и MODERATOR), загружать и скачивать изображения в формате jpg/png. Предусмотрена авторизация и аутентификация. При регистрации, загрузке и скачивании пользователь получает на email, указанный при регистрации, письмо с подтверждением операции и некоторыми данными о ней. Связь между микросервисами реализована посредством брокера сообщений RabbitMQ.
Сервис для планирования экспедиций
Стек: Go, Gin Framework, React, PostgreSQL, Swagger, GORM, JWT.
Описание: Проект, находящийся в разработке, нацелен на создание удобного веб-сервиса, позволяющего структурировано подготовиться к путешествию. Включает в себя функции создания пользователей, их авторизации и аутентификации, привязки к ним автомобилей, создания события (экспедиции), включающего в себя общую информацию о событии, список планируемых контрольных точек и экипажей, которые в свою очередь содержат информацию о машине, водителе, пассажирах и вещах, которые экипаж везет с собой.
Опыт
- Разработка программного обеспечения на Delphi и Java для автоматизированного контроля качества выпускаемой продукции;
- Сборка аппаратных модулей, входящих в аппаратно-программный комплекс.
Стек: Delphi, RAD Studio 11, Java, IntelliJ IDEA, Spring Boot, Vue.js, PostgreSQL.
- Разработка программного обеспечения на языках Java, Delphi, C;
- Разработка протокола обмена данными по TCP/IP с аппаратным обеспечением;
- Разработка программных модулей для управления аппаратным обеспечением, обработки и визуализации данных с использованием SCADA-системы в целях автоматизации технологических процессов производства (доклад по этой работе был представлен мной на конференции и занял второе место);
- Отладка и настройка на этапе эксплуатации программной и аппаратной части;
- Работа в небольшой команде.
Стек: Delphi, RAD Studio 11, Java, IntelliJ IDEA, Spring Boot, Vue.js, PostgreSQL, NIOS 2, C.
Образование
Читаю профессиональную литературу на английском языке
Проживаю в городе Санкт-Петербург