Имею практический опыт разработки как монолитных решений, так и решений на основе распределенных систем (сервис-ориентированная, микро-сервисная архитектура).
Активно применяю в работе такие архитектурные паттерны как: Clean Architecture, CQRS, DDD. Стремлюсь к соблюдению базовых принципов написания качественного кода (SOLID, KISS, DRY, YAGNI, avoid premature optimization), ценю чистоту и низкую связанность компонентов. Положительно отношусь к написанию unit-тестов.
Сервис планирования работы сотрудников
Работал над проектом с его старта до сдачи в эксплуатацию, в составе команды из 5 человек. Занимался декомпозицией крупных задач, реализацией бизнес фич, проработкой архитектуры.
На проекте большое внимание уделялось unit-тестированию, получил хороший опыт по созданию качественных тестов.
Сервис оценки эффективности сотрудников (Perfomance Review)
Занимался поддержкой существующего сервиса, в основном связанной с добавлением новой функциональности.
Сервис учета отчетности по проданным перевозкам
На проекте занимался оценкой и декомпозицией больших задач. Выполнял рефакторинг, связанный с вынесением бизнес логики из legacy монолита в новый сервис. Реализовал интеграцию с крупным банком, в части синхронизации проведенных оплат.
Перевод монолита на микросервисную архитектуру
В рамках глобальной задачи по переходу с монолитной архитектуры на микросервисную, занимался вынесением части функциональности банковского монолитного приложения, на основе .Net Framework 4+ версии, в отдельный сервис (актуальный .Net).
На проекте активно применялись архитектурные паттерны такие как CQRS и Domain Driven Design.
Сервис-адаптер для системы межведомственного электронного взаимодействия (СМЭВ)
Участвовал в разработке сервиса, упрощающего взаимодействие с СМЭВ.
Данный сервис предоставляет удобный API для партнеров, которые производят межведомственный обмен документацией, инкапсулируя всю сложность интеграции со СМЭВ.
На проекте принимал активное участие в разработке основного функционала сервиса на стороне backend-а, так же реализовал страничные компоненты на React, для администрирования.
Сервис для выдачи адресных подсказок
Экспериментальный проект, задачей которого было реализовать функционал, позволяющий выдавать адресные подсказки на основе вводимого запроса. Поиск адресов осуществлялся на основе глобальной базы адресов ФИАС. Реализацией занимался самостоятельно, в основе решения использовал SQL-процедуры и БД ФИАС импортированную в PostgreSQL. По итогу удалось добиться рабочего концепта, работающего с приемлемой скоростью и точностью выборки.
Система администрирования нарушений, связанных с движением по платным участкам центральной кольцевой автодороги
Участвовал в создании MVP системы обработки входящих штрафов. Проработка требований совместно с аналитикой, интеграция с сервисами партнеров, проработка архитектуры совместно с командой.
Система управления ресурсами предприятия
Участвовал в командной разработке web-приложения, в качестве фуллстек разработчика (frontend: React - 30%, backend: AspNet Core 3+ - 70%). Состав команды варьировался от 5-10 человек. На проекте занимался разработкой функционала связанного с динамическим построение схемы БД, на основе проектного файла, интеграциями с внешними системами, разработкой UI компонентов с помощью React.
Библиотека по работе с криптографией на основе CryptoAPI
Реализовал библиотеку (nuget пакет), позволяющую выполнять такие криптографические операции как:
• вычисление ЭЦП;
• проверка ЭЦП;
• работа с хранилищем сертификатов;
• вычисление хэш-функции.
Библиотека поддерживает работу с такими криптопровайдерами как: КриптоПро CSP/VipNet, в т.ч работающими под разными ОС Windows/Unix.
Разработка прошивки для автоматизации управления коммутацией каналов связи
Разработал программу управления коммутацией каналов связи, для микроконтроллеров Миландр/STM32, с использованием языка C.
Разработка "Пульта управления коммутатором каналов связи"
• Разработал графический интерфейс для управления коммутатором (C++/Qt);
• Реализовал запуск десктопного приложения для управления коммутацией, в рамках Unix-системы на основе Embedded Linux версии 2.6, которая выступала в роли основной прошивки для пульта управления.
Приложение для управления внешними устройствами
Разработано десктоп приложение на C++ на Qt 4.7 с использованием STL, для управления внешними устройствами, в числе которых генераторы сигналов, поворотные стенды, по интерфейсам COM/Ethernet.
Разработка контрольно-проверочного программного обеспечения
• Реализовал десктопное приложение для выполнения контрольных проверок, при испытаниях оборудования (C++/Qt)
• Реализовал программу управления радиолокационным оборудованием.