Я backend-программист на Java и использую в своей работе следующие технологии
В свободное время увлекаюсь мейкерством с использованием микроконтроллеров AVR и STM32, а также одноплатных компьютеров Raspberry.
Наиболее характерными моими проектами являются:
- Приложение Java-Explore-With-Me - бэкенд микросервисного приложения, представляющего собой афишу мероприятий и позволяющего предложить мероприятие, а также собрать компанию для похода на него.
- Приложение Java-shareit - сервис для аренды вещей, позволяющий добавлять новые вещи, производить поиск требуемой вещи по названию и описанию, осуществлять запрос на добавление требуемой вещи, откликаться на запрос и добавлять вещь, арендовать вещь и оставлять на нее отзыв после аренды. Характерной особенностью данного приложения является его микросервисная архитектура; при старте приложения разворачиваются контейнеры, содержащие шлюз, сервер и базу данных. Использование шлюза позволяет осуществить фильтрацию некорректных запросов, тем самым снижая нагрузку на сервер.
- Приложение Java-filmorate - бэкенд социальной сети, позволяющей выбрать фильм или сериал для просмотра, и обладающей рекомендательной системой. Позволяет хранить информацию о пользователях и фильмах, добавлять оценки и комментарии пользователей к фильмам, добавлять пользователей в друзья с возможностью последующего удаления, составлять ТОР-n фильмов по рейтингу. Данное приложение характерно тем, что заключительная часть проекта создавалась в рамках командной разработки группой программистов из пяти человек, действиями которой в качестве тимлида руководил я. В ходе проделанной работы я осуществлял не только разработку своей области кода, но также производил распределение задач и отвечал за взаимодействие в команде и с заказчиком.
- Приложение Java-kanban - менеджер задач, реализующий функционал создания, хранения, удаления, обновления статуса задач, получения задач как отдельно по идентификатору, так и всех задач в виде списка. Также реализовано отображение истории просмотренных задач без повторов и сохранение (восстановление) истории в файл (из файла). В истории просмотров повторы отсутствуют, кастомная структура на основе LinkedList гарантирует удаление повторных просмотров задач за О(1). Также следует отметить отсутствие пересечений задач во времени, кастомное решение гарантирует поиск пересечений задач за О(1). Приложение написано на чистом Java, без использования фреймворков.