Java Developer
Контакты
В настоящее время активно ищу работу/стажировку на вакансию Junior Java Developer (удалённая работа или гибридная форма. Готов к переезду).
Я всегда интересовался информационными технологиями и различными устройствами. Мне хотелось понимать как они устроены и работают.
Интерес со временем не проходил, и около полутора лет назад, после достижения определённого потолка в своей прошлой профессии, я решил сменить сферу деятельности.
После изучения реалий мира IT меня привлекла сфера бекэнда и язык программирования Java. В этой сфере меня привлекает возможность решать очень разнообразный пул задач, а также потенциальная возможность участвовать в реализации действительно сложных и полезных проектов. После нахождения работы я не намерен останавливаться в своём развитии и планирую продолжить своё самообразование в области JVM-языков и в первую очередь Java.
При этом успешный опыт работы юристом позволяет мне уже сейчас работать с большими объёмами информации, выявлять логические ошибки, быстро адаптироваться к новым требованиям и технологиям, а также работать в режиме многозадачности.
Кроме того я завершил курс «Java разработчик» на платформе Hexlet.
За период обучения реализовал пять проектов:
1) Консольная игра Brain Gaimes
Сборник логико-математических игр, запускающийся в консоли. Для выполнения проекта я использовал следующие инструменты и навыки:
- Настройка окружения для реализации Java-проекта, использование Intellij Idea в разработке;
- Работа с Gradle в целом и настройка зависимостей в нём в частном;
- Работа с Git и GitHub: установка, настройка, подключение к репозиториям с использованием SSH, базовые консольные команды;
- Настройка и использование линтера в Java-проекте;
- Работа с сервисом CodeClimate и аналогичными ему;
- Выявление и работа с "пахнущим" кодом: продумывание и оптимизация архитектуры проекта, работа с абстракциями, рефакторинг кода;
- Использование утилиты Make.
2) Консольная утилита "Вычислитель отличий"
Простая, лёгкая и быстрая консольная утилита, способная находить различия между двумя конфигурационными файлами.
В настоящее время поддерживает следующие форматы указанных файлов:
* .json
* .yml (.yaml)
В ходе создания проекта я применял следующие технологии и навыки:
- Работа с форматами данных json, yaml;
- Библиотека Jackson;
- Фреймворк (one-file framework) Picocli;
- CI на примере GitHub Actions;
- Работа с различными структурами данных;
- Первый опыт практического написания тестов с использованием JUnit;
- Практическое применение шаблона проектирования "Фабрика";
- Использована на практике библиотека JaCoCo.
3) Собственная библиотека для валидации данных "Validator"
Простая yup-подобная библиотека, написанная на Java и предназначенная для валидации таких типов данных как:
- Strings;
- Numbers (Integers);
- Objects of Map type.
В ходе реализация проекта мною были изучены и успешно применены на практике следующие инструменты и навыки:
- Углублено понимание принципов ООП (в частности наследование), они реализованы на практике;
- Ознакомление с понятием Предметно-ориентированного языка программирования (DSL);
- Дальнейшее изучение и активное применение на практике концепции TDD.
4) Веб-приложение "Page analyser"
Небольшое веб-приложение, написанное с использованием Javalin и шаблонизатора Thymeleaf. Позволяет анализировать интернет страницы на их SEO, путём проверки определённых тегов на соответствующей страницы. Приложение умеет хранить список проверенных URL, их SEO статусы, дату последний проверки. При попытке добавить в БД уже существующий URL, приложение сообщит об этом пользователю и не добавит дублирующиеся данные.
В ходе реализация проекта мною были изучены и успешно применены на практике следующие инструменты и навыки:
- Веб-фреймворк Javalin;
- Шаблонизатор Thymeleaf;
- Принципы работы протокола HTTP, работа с запросами и ответами;
- Bootstrap;
- Подключение, настройка и работа с различными СУБД (PostgreSQL и H2) из кода Java;
- Docker (для деплоя);
- И другие.
5) Приложение Task manager на Spring Boot.
Менеджер задач, поддерживающий регистрацию и авторизацию пользователей. Приложение позволяет авторизованным пользователям создавать задачи, назначать этим задачам ответственного исполнителя, добавлять к задаче метки (теги), помогающие их сортировке, а также указывать текущий статус задачи. Метки и статусы могут быть созданы самими пользователями.
В ходе реализация проекта мною были изучены и успешно применены на практике следующие инструменты и навыки:
- Использование Spring Framework (Hibernate, Spring Boot, Spring Data JPA, Spring Security);
- Использование таких шаблонов проектирования как
Repository
,Service
и другие; - Реализация аутентификации и авторизации пользователей;
- Подключение готового фронтеда к проекту;
- Использование JSON Web Tokens (JWT) в проекте;
- Интеграция Rollbar error tracking service.
Навыки:
- Java Core;
- Git и GitHub,
- Linux и CLI,
- Gradle и Maven,
- Makefile,
- Markdown,
- Автоматическое тестирование (JUnit),
- Русская и английская слепая печать.
Инструменты:
1. IntelliJ Idea.
Soft skills:
Я ответственный, внимательный и способный начинающий разработчик, желающий постоянно улучшать приобретённые знания и навыки, а также применять их на практике.
Опыт
1) Разрабатывал и согласовывал нормативные правовые акты Банка России;
2) Готовил и согласовывал внутри департамента, а также с другими структурными подразделениями ответы на запросы государственных органов, юридических и физических лиц;
3) Анализировал положения действующего законодательства и готовил аналитические справки для руководства департамента;
4) Осуществлял подготовку презентационных материалов и сопроводительных документов для руководства департамента;
Достижения:
Менее чем за год я освоил профильное законодательство и внутреннюю программную рабочую среду Банка России, разработал изменения в Указание Банка России № 5220-У и Положение Банка России № 542-П, которые были приняты и вступили в силу.
1) Вёл переговоры с контрагентами по коммерческим и иным существенным условиям договоров (преимущественно договоры аренды);
2) Составлял, согласовывал, контролировал заключение и исполнение договоров (преимущественно договоров аренды);
4) Взаимодействовал с контрагентами по вопросам, возникающим из заключённых договоров: разрешал конфликтные ситуации, заключал дополнительные соглашения к действующим договорам;
5) Подготавливал внутреннюю документацию по вопросам своей компетенции: служебные записки, презентации для руководства компании, аналитические данные и др.;
6) Координировал работу других структурных подразделений компании (к примеру, департамент капитального строительства, финансовая дирекция, бухгалтерия, департамент управления недвижимостью и др.) по вопросам своей компетенции;
Достижения:
Успешно вёл переговоры о заключении или изменении арендных договоров с представителями собственников крупнейших торговых центров России (ТРЦ "Афимолл Сити", ТРЦ "Щука", ТРЦ "Метрополис", ТРЦ "Галерея СПб").
Результатом указанных переговоров, в частности является открытие магазинов М.видео в ТРЦ "Щука", ТРЦ "Афимолл Сити", ТРЦ "Небо" и других (более 7 флагманских магазинов за 2 года, а также ряд менее значимых проектов)
В период наиболее острой фазы пандемии Ковид-19 (апрель - май 2020 года) арендная нагрузка на компанию была мною снижена более чем на 160 млн. рублей.
Обязанности:
1) Подготовка технических заданий и иной документации для проведения конкурсных закупок;
2) Анализ и подготовка заключений по действующему законодательству;
3) Взаимодействие, включая официальную переписку с поставщиками, подрядчиками и государственными органами.
Достижения: благодаря грамотной организации рабочего процесса удалось получить годовую экономию в размере 5 млн. рублей.
Образование
Свободно владею английским языком
Проживаю в городе Москва