Java Developer
Контакты
Привет! Меня зовут Каро, я программист с опытом коммерческой разработки (Python). Перешел на Java с целью получить разнообразный опыт, развить свое инженерное воображение и стать лучшим специалистом. Чтобы учиться быстрее, я окончил курс по Java в школе Hexlet, сделав за это время несколько проектов, в том числе один на Spring Boot. Сейчас я продолжаю осваивать экосистему Spring и улучшать общую теоретическую подготовку. О себе как разработчике добавлю, что ответственно подхожу к написанию тестов, пишу понятный и поддерживаемый код.
Мои проекты
Игры разума
Пять консольных мини-игр на примитивную математику с единым меню, откуда можно запустить любую игру.
Полученные навыки
- Отточил умение писать красивый, чистый код
- Научился писать информативный Readme и в целом правильно оформлять репозиторий
- Научился пользоваться сервисом проверки качества кода CodeClimate
- Научился использовать Github CI
Примененные технологии
- Java
- Github CI
Вычислитель отличий
Консольная утилита. Показывает отличия двух json/yaml файлов в трех разных форматах на выбор.
Полученные навыки
- Освоил JUnit 5
- Научился проверять покрытие кода тестами с помощью Jacoco
Примененные технологии
- Java
- Jacoco
- JUnit 5
- Github CI
Валидатор данных
Java-библиотека, предоставляющая объект-валидатор, который проверяет переданный объект по установленным правилам и возвращает true или false. Валидатор можно использовать для объектов String, Integer и Map.
Полученные навыки
- Научился работать с предикатами в Java
- Научился применять TDD
Примененные технологии
- Java
- Jacoco
- JUnit 5
- Github CI
Анализатор страниц
Веб-приложение, проверяющее сайты на доступность. Введите адрес сайта, нажмите кнопку проверки и приложение извлечет информацию о доступности и некоторое описание сайта.
Примененные технологии
- Java
- Javalin
- Ebean ORM
- PostgreSQL
- jsoup
- JUnit 5
- Jacoco
- Github CI
Примененные технологии
- Java
- Jacoco
- JUnit 5
- Github CI
Менеджер задач
Веб-приложение для управления задачами. Позволяет создавать задачи, назначать исполнителя и отслеживать выполнение.
Полученные навыки
- закрепил на практике знание MVC
- научился использовать JPA для создания моделей в Spring и связей между ними
- реализовал аутентификацию пользователей
- научился создавать REST API
- научился составлять спецификацию API
Примененные технологии
- Java
- Spring Boot
- Swagger
- Jacoco
- Github CI
Проф. эрудиция
- Структуры данных
- Паттерны проектирования
- Знакомство с языком Rust
Книги
- Совершенный алгоритм - Тим Рафгарден
- Грокаем алгоритмы - Адитья Бхаргава
- The Art of Readable Code - Dustin Boswell
- Java, JUnit
- Python 3
- SQL
- HTML5
- CSS3
- Git
- Linux
- Github CI
- REST API
- TDD
- Регулярные выражения
- Опыт работы с MVC архитектурой: Django
- Опыт работы с ORM: SQLAlchemy, Django ORM
Опыт
- Написание модулей для геоинформационных систем на языке Python
- Создание и поддержка сайтов для внутреннего пользования
- Автоматизация рабочих процессов
Достижения
- Написал плагин для редактирования атрибутов картографических объектов в системе QGIS. Типичный пример объекта — дом. Атрибутами дома могут быть адрес, этажность, вид собственности и т.п. Сама программа представляет собой форму с полями, через которую эти данные можно редактировать.
- Создал сайт для просмотра отчетов. Страница принимает от пользователя даты "от" и "до", на бэкенде получает сырые данные из БД и формирует отчет в виде сводной таблицы. Для формирования отчета использовался NumPy.
- Написал парсер адресов. Программа разбирает произвольно составленный адрес на составляющие (город, улицу, дом) и заносит в Excel-таблицу.
Образование
Читаю профессиональную литературу на английском языке
Проживаю в городе Армения, Ереван