Читаю профессиональную литературу: Роберт Мартин (Clean code, Clean architecture), Джошуа Блох (Effective Java), Крис Ричардсон (Микросервисы. Паттерны разработки и рефакторинга), иногда разбавляя интересными статьями на Хабре. С удовольствием участвую в разнообразных IT-мероприятиях – конференции, митапы, конкурсы, образовательные программы. Состою во множестве тематических чатов и онлайн-сообществ, слежу трендами в IT-комьюнити.
По характеру уравновешенный, спокойный, в меру позитивный, не токсичный, в хороших отношениях со всеми своими коллегами)). Всегда готов помочь другим членам команды. Ответственно подхожу к своим задачам и не безразличен к судьбе проекта, над которым работаю.
Обладаю компетенциями по широкому спектру задач. Быстро обучаюсь, готов к сложным и незнакомым проблемам, всегда добиваюсь результата. Хочу развиваться и расти как разработчик, принимать участие в проектировании дизайна систем, принятии архитектурных решений, повышать свою экспертизу.
Проект – компонент высоконагруженной интеграционной платформы Сбербанка, разрабатываемой в микросервисной архитектуре. Сервис технологических перерывов (паттерн Circuit Breaker).
Стек: модульная архитектура, Java 11, Maven, Spring Boot, Oracle/PostgreSQL, Spring JDBC/jOOQ, Liquibase, JUnit/TestNG + Java/Groovy, внешние интеграции по REST + IBM MQ/Kafka, Docker, Jenkins CI/CD, OpenShift/Kubernetes, Istio Service Mesh.
Состав команды: тестировщик, аналитик, владелец продукта, архитектор сервиса и разработчик.
1. Работали по методологии Agile (Sbergile). Atlassian Jira Confluence, Bitbucket (аналог Github/Gitlab).
2. Перенёс все автотесты (150+ штук) с релиза двухгодичной давности на текущий. Переписал имеющуюся кодовую базу и внутренние механизмы их запуска с помощью Spring AOP и RestAssured. Настроил авторизацию по HTTPS (SSL сертификаты, cookie, custom headers) + JWT на ИФТ-стенде. Настроил Jenkins джобу для автономного выполнения автотестов на тестовом стенде. Тем самым разобрался и довёл до конца объемную задачу из незнакомой области меньше чем за 2 месяца, так как больше выполнить это на проекте было некому.
3. Настраивал и применял в работе Jenkins CI – выполнение сборок проекта с прохождением стадий внутренних quality gates и деплой артефактов в Nexus.
4. Администрировал поды в Openshift, снимал логи с контейнеров. Проводил анализ инцидентов во время НТ (сервис высоконагруженный и держит до 1000 rps), выполнял поиск утечек с помощью Eclipse MAT, анализ heap dump/thread dump.
5. Разработка новых фич, переработка старого функционала под новые требования – БД (liquibase + Orace/PostgreSQL), бэк (функциональные требования, апгрейд версий сторонних библиотек и зависимых Maven-артефактов других команд), немного UI, Jenkins CI пайплайн, конфиги (Docker образы, Kubernetes yaml манифесты).
6. Написание unit- и it-тестов на Java/Groovy и рефакторинг имеющейся кодовой базы.
7. Провел полную миграцию сервиса с Oracle на PostgreSQL. Переписал слой взаимодействия с БД (jOOQ + JDBC), настроил реализацию транзакций, переработал схему базы. Покрыл это все интеграционными и юнит тестами, параметризировал сборку и запуск проекта на той или иной БД с помощью Maven, интегрировал прогон тестов на обоих базах в Jenkins CI пайплайн.
8. Интегрировал сервис с Kafka, отказавшись от IBM MQ, для обеспечения межблочной синхронизации (сервис обеспечивает доступность в 99,99% в связи с чем разворачивается множество инстансов сервиса в нескольких ЦОДах),
9. Провёл больше 40 собеседований для QA/AQA/Java Dev при поиске людей на вакантные позиции. Помогал в онбординге новых членов команды, менторил стажера
Проект – система мониторинга для коммунальных служб Москвы.
Стек: сервисная архитектура, Java 17, Gradle, Spring Boot, Spring Cloud, PostgreSQL, Spring JDBC, Spring Data, ORM – EclipseLink, Flyway, внешние интеграции по REST, Kafka, SOAP.
1. Jira, Confluence, Gitlab, TeamCity.
2. Совместная работа по задачам с разными командами – аналитики, тестировщики, фронтендеры.
3. Закрывал задачи на багфикс, рефакторинг и новой функционал (разобраться и пофиксить возникающую ошибку при отправке запроса, поправить создаваемый SQL запрос для JDBC, переписать эндпоинт и добавить на него валидацию, разобраться в возникновении дублей при пагинации, исправить некорректно генерируемое письмо/xlsx-отчёт и т.д.).
4. Закодил решение по задаче реализации многопоточного чтения из Kafka которая висела в Jira больше года.
5. Обнаружил, локализовал, выполнил ресерч и исправил серьёзный баг на dev-стенде, который приводил к значительным просадкам производительности системы.
Проектная работа над утилитарным RESTful API по ТЗ компании.
Стек – Java 11, Spring – Boot, Data, TX, Web, Security (JWT based auth), Maven, Logback, Hibernate, PostgreSQL, Apache Tomcat (war-ник), JUnit + Mockito, Postman + Swagger, Gitlab. Внешние интеграции по REST.
1. Полностью автономная работа — анализ требований, проработка арх решений и дизайна сервиса, кодирование, тестирование, сборка, поиск и освоение информации на англоязычных ресурсах.
2. Поэтапное выполнение задач в рамках установленных сроков разработки в соответствии с ТЗ + проведение процедуры показа и код-ревью для старшего разработчика со стороны компании.
3. Коммуникация по техническим и бизнес вопросам, спокойное восприятие критики, конструктивное отстаивание реализованных решений.
Кафедра Инструментального и прикладного программного обеспечения (ИиППО)
Разработка программный продуктов и проектирование информационных систем