● Разрабатывал backend на C#/.NET для вертикали иерархии агентов (риелторов и сотрудников) в монолите и микросервисах с нагрузкой около 1000 rps.
● Работал в большой команде из 4 C#-разработчиков (включая техлида), 2 Python-разработчиков (включая тимлида), а также специалистов iOS, Android, frontend, QA и product owner.
● Участвовал в разработке по методологии Scrum с двухнедельными спринтами.
● Обеспечивал высокое покрытие кода тестами: монолит — 85%, микросервисы — 95% с помощью юнит- и функциональных тестов.
● Реализовывал развертывание в production с использованием канареечного деплоя для микросервисной архитектуры, самостоятельно планировал и контролировал постепенный выкат новых версий.
● Работал с SLO, метриками и алертами, дежурил по системе и занимался техническим долгом (выплата, заведение, документирование).
● Разработал инструмент массовых откреплений и перемещений агентов, выступив в роли fullstack-разработчика на C#/.NET Core (Web API) и нативном JavaScript с использованием асинхронной обработки через Kafka. Инструмент позволил устранить ручные операции клиентской службы и сократил операционные затраты.
● Устранил архитектурный дефект бизнес-логики определения основного номера телефона агента, что позволило избавиться от массовых перезаписей в базе данных, снизить нагрузку на БД (QPS, блокировки) и уменьшить количество инцидентов в поддержке.
● Предотвратил остановку публикации объявлений, устранив риск исчерпания identity в таблице Realty.dbo.ObjectPhones. Провел бесшовную миграцию данных в MS SQL с использованием стратегии Shadow Write, реализованной на C#/.NET Core, без даунтайма и потери данных.
● Выявил и устранил прямые обращения к таблицам иерархии агентов из монолита и сторонних микросервисов, переведя их на API микросервиса agents, что обеспечило возможность стратегической миграции домена агентов с MSSQL на Postgres.