Java разработчик
Контакты
Начинающий Java-разработчик (Java, Spring Boot, PostgreSQL, Gradle, Kubernetes, Scrum). Заканчивая последний курс своего ВУЗа, я решил получить более актуальные знания и навыки в области Java-разработки перед выходом на рынок труда. Я выбрал Java, потому что это универсальный язык программирования, который широко применяется в различных сферах разработки. Также богатое сообщество разработчиков и обширная экосистема библиотек и фреймворков делают для меня Java привлекательным языком для обучения и практического использования.
На данный момент окончил программу «Java-разработчик» в школе программирования Hexlet и занимаюсь самостоятельным обучением: чтением учебной литературы, прохождением дополнительных курсов по Java, Kotlin Golang и Rust, просмотром обучающих видеороликов и практикой в виде решения задач на алгоритмы и структуры данных.
Ищу работу на позиции Junior с полной занятостью. Рассматриваю любые форматы: офисный, гибридный, удалённый. Готов к релокации.
Hard skills
- Java Core, Java Spring Framework, Javalin Framework
- Основы SQL, работа с базами данных PostgreSQL, H2, Hibernate
- Docker, Kubernetes, AWS, Jenkins, Gitlab CI/CD
- HTML, CSS (основы)
- Автоматическое тестирование (JUnit5)
- Git, GitHub, Bitbucket, CI/CD
- Сборка проектов через Gradle
- Bash, работа с WSL (Windows Subsystem for Linux)
- Понимание принципов ООП, SOLID
- Разработка через тестирование (TDD), Agile
- Kotlin, Rust, Go (основы)
- Базовый английский язык
Soft skills
- Не стесняюсь задавать вопросы
- Умение решать проблемы и самостоятельно, и в команде
- Способность доводить начатое до конца
- Критическое мышление
- Экологичное общение
Open source
Trusty tail
Описание: Trusty Tail Bot – телеграмм-бот, разработанный для своевременного оповещения и передачи необходимых инструкций по уходу за питомцем в случае, если его владелец временно не может обеспечить его заботу.
Вклад:
- Успешная разработка и запуск Trusty Tail Bot:
- Разработка ключевых функций:
- Система оповещения: реализована система оповещения владельца о необходимости заботы о питомце в различных ситуациях (срочный отъезд, отпуск, форс-мажор).
- Обработка данных: разработана система сбора и обработки информации о питомце (порода, возраст, особенности ухода).
- Интерактивный интерфейс: создан удобный и понятный интерфейс для взаимодействия пользователя с ботом.
- Разработка ключевых функций:
- Обучение и изучение:
- Изучение принципов разработки и архитектуры программного обеспечения с открытым исходным кодом.
- Приобретение навыков программирования на языке Rust.
- Понимание принципов работы с системами оповещения и передачи данных.
- Командная работа:
- Опыт командной работы.
- Использование инструментов коммуникации: Slack, Rocket.chat, Zoom, GitHub Issues.
- Развитие навыков асинхронной работы.
Стэк: Rust, Docker, Git, GitHub Actions (CI), SeaORM, .env, Telegram Bot API
Опыт работы:
- 6 месяцев (текущий проект)
- Первый опыт работы над проектом с открытым исходным кодом.
Выполненные учебные проекты
ИГРЫ РАЗУМА
Проект представляет собой игру, предлагающую пользователю решить 5 различных математических задач на выбор. По ссылке на GitHub можно ознакомиться с ними и посмотреть, как происходит игровой процесс.
Приобретённые навыки:
- Настройка окружения Java
- Работа в IntelliJ IDEA
- Подключение и работа с checkstyle и CodeClimate
- Работа с системой контроля версий Git и GitHub
- Сборка проектов с помощью Gradle
- Опыт работы с командной строкой
- Запись asciinema
Стэк: Java, Gradle, Checkstyle, Git, GitHub Actions (CI), IntelliJ IDEA
ВЫЧИСЛИТЕЛЬ ОТЛИЧИЙ
Проект реализует утилиту для командной строки, которая находит отличия между двумя файлами форматов JSON или YAML и выдаёт результат в различных форматах. При разработке утилиты использовались библиотеки для работы с файлами форматов JSON и YAML, а также библиотека для создания утилит командной строки picocli.
Приобретённые навыки:
* работой с разными форматами данных: json, yaml
* Написанием unit-тестов c помощью junit
* Умение вести разработку через тестирование
* Подключение и работа с JaCoCo
* Работа с утилитой make
* Настройка GitHub Actions
* работе с рекурсией
* Опыт работы с библиотеками jackson-databind и jackson-yaml
* Опыт работы с библиотекой picocli
Стэк: Java, Jackson, Picocli, Lombok, Gradle, Checkstyle, Git, GitHub Actions (CI)
ВАЛИДАТОР ДАННЫХ
Проект представляет собой библиотеку для валидации данных. Реализована возможность проводить валидацию строк, целых чисел и словарей (мап). Цель создания данного проекта — закрепить знания об объектно-ориентированном программировании и его принципах.
Приобретённые навыки:
- Применение принципов ООП на практике
- Работа с функциональным интерфейсом Predicate
- Опыт работы с JShell Plugin (использовался для записи аскинем)
- Опыт написания документации (README.md)
- Реализация unit-тестов и формирования отчета о покрытии с помощью jacoco
Стэк: Java, JUnit, AssertJ, Jacoco, Gradle, Checkstyle, Git, GitHub Actions (CI)
АНАЛИЗАТОР СТРАНИЦ
Проект реализует веб-сайт, который позволяет проверять веб-страницы на SEO-пригодность. Проект реализован на основе фреймворка Javalin (оформление выполнено с помощью фреймворка Bootstrap).
Приобретённые навыки:
- Понимание работы HTTP-запросов на практике
- Опыт работы с фреймворком Javalin
- Автоматизация рутинных решений с помощью библиотеки lombok
- Опыт оформления сайтов с фреймворком Bootstrap
- Работа с базами данных H2, PostgreSQL
- Парсинг HTML с помощью jsoup
- Опыт тестирования приложения Javalin
- Работа с логами
- Деплой на render.com
Стэк: Java, Javalin, JTE, Jsoup, H2, Postgresql, Gradle, Checkstyle, Git, GitHub Actions (CI)
МЕНЕДЖЕР ЗАДАЧ
Веб-приложение для управления задачами: система позволяет ставить задачи, назначать исполнителей и менять их статусы. Бэкенд приложения выполнен на основе фреймворка Spring Boot.
Пользователь может:
* Войти в приложение
* Создать задачу
* Изменить статус задачи и проставить метки
Приобретённые навыки:
- Опыт реализации полноценного CRUD-приложения с нуля
- Опыт работы с фреймворком Spring Boot
- Опыт тестирования приложения на Spring Boot с помощью mock-объектов
- Понимание специфики работы с Spring Security
- Аутентификация и авторизация пользователя с использованием JWT токенов
- Работа с профилированием (dev / prod)
- Работа с мапингом DTO/Model с помощью mapstruct
Стэк: Java, Spring Boot, Spring Security, Mapstruct, Jackson, H2, Postgresql, Gradle, Checkstyle, Git, GitHub Actions (CI)
Образование
Проживаю в городе Санкт-Петербург
В свободное время провожу и играю в DnD.
В 14 лет программировал на Arduino. В 2018 году был участником олимпиадного программирования.