dmitriy-harin.ru — IntelliJ IDEA
// ========================================
// Experience.java
// ========================================
/**
* Опыт разработки: 21 год, коммерческой разработки: 16 лет
*/
@Position("Senior Java Developer")
@Period("авг. 2020 г.настоящее время")
class {

Работа над внутренней ERP-системой банка для ипотечных и неипотечных сделок с недвижимостью. Опыт взаимодействия с большим количеством команд (как внутренних, так и внешних) в рамках одной компании. Опыт работы в системе с большим количеством бюрократических элементов и согласований.

// Личные достижения
  • Оптимизировал и доработал сервис работы с файлами (общая модель, используемая остальными сервисами компании). До подключения сервис страдал от падений по OOM и по месту на диске. Реализовал рестриминг входного потока в различные конечные хранилища (замена стандартного multipart/form resolver для Spring), оптимизировал все места, использовавшие byte[] вместо stream, произвёл рефакторинг архитектуры — вынес всё, что не относится к общей модели работы с файлами, в другие сервисы
  • Разработал сервис конвертации и слияния списка файлов в различных форматах (Word, Excel, изображения любых форматов, PDF) в PDF-формат. Сервис выдерживает высокую нагрузку без падений, имеет рассчитанное количество воркеров под конфигурацию VM, поддерживает горизонтальное масштабирование
  • Разработал сервис электронного подписания документов с различными стратегиями подписания (одиночное, соподписание) для различных способов подписания (КриптоПро в браузере, облачные УЦ: Госключ, АйТи Мониторинг, DigitalDeal, ПЭП через интеграцию с внешними шлюзами), верификация криптографических подписей через внешний сервис
  • Разработал сервис неипотечных сделок (с оптимизациями для определённого SLA) с интеграциями с другими сервисами
  • Шаблонизатор для документов Microsoft Office — генерация документов Word с использованием конструкций (циклы, условия, функции и операторы). Внутренний язык легко кастомизируется. Работает на базе ANTLR4 (лексический анализатор) и docx4j (библиотека для работы с DOCX-документами)
// Стек технологий
Java 8/17/21Spring Boot 1/2/3PostgreSQLRedisRabbitMQArtemisKafkaKubernetesKibanaGrafanaGraylog
}
@Position("Team Lead / Ведущий Java разработчик")
@Period("май 2017 г.авг. 2020 г.")
class {

Приём кода от внешних подрядчиков. Проектирование архитектуры системы (ядро интернет-магазина) и микросервисов. Full-stack разработка (бекенд + фронтенд). Управление командой: 2 бэкенд-разработчика, 1 фронтенд-разработчик, 1 тестировщик, 1 DevOps-инженер. Декомпозиция задач, контроль выполнения, менторинг. Разработка Code Style и архитектурных принципов. Написание тестов (JUnit + Mockito). Настройка CI/CD (Jenkins + Docker). Постановка Agile-процессов в Jira. Проведение собеседований.

// Личные достижения
  • Микросервис обмена данными v3.0 — асинхронный обмен данными по HTTP между сервисами (включая 1С ERP) с UI для администрирования и мониторинга, интеграция с Zabbix API для SMS/email уведомлений
  • Микросервис резервирования v1.0 — резервирование товаров с отложенным подтверждением в мастер-системе, мгновенное резервирование для клиента с параллельной синхронизацией в 1С ERP
  • Файловый микросервис v2.0 — управление публичными файлами (загрузка/скачивание) и приватными файлами со специальными ограничениями доступа
  • Микросервис фоновых задач v1.0 — планирование задач для микросервисов с UI для настройки и выполнения
// Стек технологий
Java 8Spring Boot 1.5Angular 5TypeScriptPostgreSQLRedisRabbitMQElasticsearchDockerJenkins
}
@Position("Старший web-разработчик")
@Period("дек. 2014 г.февр. 2016 г.")
class {

Разработка крупного оптового интернет-магазина запчастей для грузовых автомобилей. Администрирование веб-серверов на Debian 8/9.

// Личные достижения
  • Микросервис обмена данными — разработал на базе Symfony, RabbitMQ, Elasticsearch, включая UI-интерфейс на Angular. Заменил все устаревшие обмены в компании на базе Excel-файлов (сокращение времени обмена с 3-10 минут до пары секунд, возможность поиска по данным обмена через UI)
  • Микросервис ценообразования — система с произвольными модификаторами цен (20+ в продакшене)
  • Файловый микросервис — управление файлами с публичным и приватным доступом
// Стек технологий
PHP 5/7Symfony 2/3MySQL 5.6MongoDB 3Redis 2RabbitMQElasticsearch
}
@Position("Старший 1С Программист")
@Period("апр. 2012 г.июнь 2014 г.")
class {

Разработка и поддержка внутренней ERP-системы на базе 1С Управление Предприятием 1.2. Основной разработчик продукта «Управление по целям». Поддержка сайта компании на Bitrix. Получены сертификаты «1С Профессионал» и «1С Специалист» по платформе 8.2.

// Стек технологий
1C Enterprise 8.21C Bitrix
}
@Position("1С Программист")
@Period("дек. 2010 г.март 2012 г.")
class {

Разработка профессиональной ERP-системы на базе конфигурации 1С Комплексная Автоматизация. Модули интеграции с интернет-магазином на 1С Bitrix (обмен остатками, заказами, номенклатурой, контрагентами). Интеграция с внешними сервисами (dadata.ru, загрузка заказов из партнёрских систем). Разработка подсистем учёта: резервирование, взаиморасчёты, подсистема задач для контроля менеджеров.

// Стек технологий
1C Enterprise 8.21C Bitrix
}
@Position("Студент")
@Period("сент. 2005 г.авг. 2010 г.")
class {

Факультет электроники и вычислительной техники. Активное программирование с первого курса: Delphi 7, QtCreator (графика, визуализация физических процессов). Дипломная работа: приложение на C++ для Linux Ubuntu 10.04 для распознавания образов ЭЭГ-сигналов методом SVM (Support Vector Machine) — алгоритм, обучаемый для выявления определённых участков ЭЭГ в базах пациентов.

// Стек технологий
Delphi 7C++QtCreatorLinux Ubuntu
}