Разработка и поддержка клиентских сервисов.
Микросервисная архитектура (.NET 6, .NET 7, .NET 8), хранилище - MongoDB, очередь - Apache Kafka, логгирование - Serilog и Kibana. Создание ручек через gRPC.
Деплой - Gitlab CI и Ansible.
ElasticSearch и Redis для распределенного кэширования.
Тестирование - xUnit, библиотеки - FluentAssertions, AutoFixture, и Moq.
Quartz с MySQL хранилищем для фоновых задач.
Аппаратные метрики через Grafana и Elastic APM.
Работал с несколькими группами сервисов:
1 - Оптимус. Расчет суммы заказа, поинтов лояльности, скидок и подарочных карт, адреса точки продаж, заказы разных типов(ретейл и онлайн).
.NET 6(потом перешли на .NET 8), MongoDB, Docker, gRPC.
Тестирование через xUnit, библиотеки AutoFixture и Moq.
2 - группа Геосервисов. Стек тот же + Redis для кэширования.
Участие в разработке конфигурации СЭД "Tessa" для банка ВТБ.
Участие в миграции проекта на другую СУБД(PostgreSQL).
Технологии: .NET Core 3.1, ASP.NET Core 3.1 WebAPI, MS SQL Server, Linq2DB.
Развертывание и автотесты: Gitlab CI, TeamCity, Docker. Архитектура монолитная
1 - Конфигурация финансового департамента. Преимущественно занимался поддержкой, соотношение задач поддержки и задач по разработке новой функциональности 80/20, работы в части доменной логики (в основном расширение текущего функционала по готовым шаблонам, но приходилось и самому алгоритмы придумывать), слоя данных, покрытие юнит-тестами. Немного фронтовых задач по типу "покрасить кнопку в фронтенде на Razor Pages") Задачи по экстренной миграции конфигурации(перенос хранимых процедур и параметризованных представлений в новую СУБД и перенос кодовой базы на новую версию .NET) на новую архитектуру также в сжатые сроки (по понятным причинам). Взаимодействие с командой тестирования и отделом поддержки от заказчика.
2 - Конфигурация операционного департамента. Соотношение поддержки/новых фич 30/70. Задачи аналогичные п.1, но кроме них еще вынос подходящего для этого функционала в REST-сервисы (ASP.NET MVC 4, MVC 5, ASP.NET Core 3.1 и ASP.NET 5), настройка брокеров очередей. Доработки также выполнялись методом расширения текущего функционала аналогично написанному, иногда приходилось придумывать сложные алгоритмы. Взаимодействие с отделом тестирования и поддержки от заказчика.
Разработка и поддержка фреймворка для модульного тестирования и автоматизации тестирования приложения для обработки данных с приборов. Прямое взаимодействие с англоязычной распределенной командой из Австрии и Швейцарии. Методология разработки: Scrum. Стек: C#, NUnit, Selenium, AutoMapper, AppiumWebDriver.
Второй проект - разработка и поддержка полного симулятора конфигурируемого медицинского робота. Unity, SpecFlow.
Ответственности:
- Задачи по обеспечении автоматизации тестирования десктоп-приложений
- Покрытие методов API проекта автотестами с использованием NUnit
- Написание тестов UI с помощью NUnit и Selenium
- Agile-процессы(Дейли, демо, ретро, планнинг) в составе интернациональной команды на устном и письменном английском
- Рефакторинг легаси кода в Unity-проекте
- Задачи по разработке новых симуляций с помощью Unity
Достижения:
- Коммерческий опыт в среде с англоговорящим заказчиком
Разработка небольших функциональных модулей на C#. Стек: WPF,ASP.NET Core 2, MS SQL Server, Entity Framework.
Ответственности:
- Рефакторинг легаси
- Небольшие бэкенд-задачи
- Поддержка и исправление актуальных дефектов
- Исследовательские задачи
Достижения:
- Первый коммерческий опыт .NET
- Опыт прохождения код-ревью
Неоконченное высшее