Senior .NET Developer
Москва, РоссияСеньор
Релокация • Удаленная работа • Частичная занятость
Опыт работы от 3 до 5 лет
Опыт работы от 3 до 5 лет
Короткая ссылка: gkjb.ru/g1BGQ
О себе
На данный момент Senior .NET Developer.
Мои компетенции и опыт
.NET-разработчик, специализируюсь на backend: C#, нужен доступ к резюме Core, Web API, EF Core, MS SQL и T-SQL, PostgreSQL, RabbitMQ, Redis, Docker, Azure DevOps. Коммерческого опыта более 5 лет.
Работаю с enterprise-системами: микросервисы на нужен доступ к резюме Core, интеграции через RabbitMQ и S3, оптимизация производительности приложений и SQL-запросов, развитие и рефакторинг legacy-кода. Сократил время ответа REST API с 20 до 2 секунд, время формирования отчётов — с 15 минут до одной, довёл покрытие юнит-тестами до 70%. Собираю требования напрямую с бизнес-заказчиком, менторю разработчиков. Применяю SOLID, Clean Architecture и DDD.
Русал — .NET-разработчик, август 2024 — июль 2026
Проект: система электронных заявок в сервисную службу и HR-отдел для нескольких тысяч сотрудников. Монолит на Razor (legacy) и нужен доступ к резюме Web API, 15 микросервисов на нужен доступ к резюме Core; взаимодействие между сервисами через RabbitMQ и REST API. Фронтенд на Razor и React.
Обязанности:
- Разработка функциональности и развитие микросервисов на нужен доступ к резюме Core
- Проектирование и реализация интеграций между сервисами через RabbitMQ и REST API
- Оптимизация производительности приложения и SQL-запросов
- Покрытие кода юнит- и интеграционными тестами
- Настройка и поддержка CI/CD в Azure DevOps Pipelines
- Написание технической документации
Достижения:
- Спроектировал и реализовал интеграцию с внешним файловым хранилищем S3 через RabbitMQ с применением паттерна Transactional Outbox: обеспечил гарантию доставки и идемпотентность обработки (около нужен доступ к резюме файлов в неделю)
- Оптимизировал LINQ-запросы Entity Framework Core в legacy-модуле, сократив время ответа REST API с ~20 до ~2 секунд
- Ускорил выполнение ключевых операций в 3–4 раза: переписал SQL-запросы, добавил индексы и переработал структуру таблиц
- Выступил с инициативой и провёл рефакторинг архитектуры фоновых заданий (IHostedService и внутренний планировщик): вынес логику старт/стоп/пауза в базовый класс, сократив более 500 строк дублирующегося кода, и удалил неиспользуемые задания
- Выстроил тестирование: довёл покрытие юнит-тестами до 70%, реорганизовал более нужен доступ к резюме тестов по единой конвенции именования, добавил интеграционные тесты (NUnit, xUnit, Moq)
- Устранил 2 критические уязвимости в legacy-коде — SQL-инъекции и нарушение разграничения доступа к файлам пользователей — по результатам статического анализа
- Настроил CI/CD в Azure DevOps Pipelines: автоматическая сборка и публикация сервисов в Docker на тестовые стенды. Устранил ошибки в скриптах деплоя, обеспечив стабильный выпуск релизов
Измеримые результаты: время ответа REST API — с 20 до 2 секунд; ключевые операции — ускорение в 3–4 раза; покрытие юнит-тестами — 70%; сокращение кодовой базы фоновых заданий — более 500 строк; критические уязвимости — 2 устранено.
Стек: .NET 6/8/9, C#, нужен доступ к резюме Core, нужен доступ к резюме Web API, REST API, микросервисы, RabbitMQ, S3, Redis, MS SQL Server, PostgreSQL, Entity Framework Core, Docker, Azure DevOps, Serilog, NUnit, xUnit, Moq, IIS, Razor, React
Юнитариус — .NET-разработчик, октябрь 2022 — август 2024
Проект: коробочное CRM-решение для учёта страховых договоров и выплат для крупнейших российских страховых компаний, переданное на сопровождение от вендора. Серверная часть — REST API на нужен доступ к резюме Web API, толстый клиент на WPF, авторизация на IdentityServer.
Обязанности:
- Развитие модулей «Договоры», «Отчётность» и «Убытки»
- Сбор требований напрямую с бизнес-заказчиком и аналитиком, декомпозиция задач и оценка трудозатрат
- Разбор и исправление дефектов в legacy-коде, унаследованном от вендора без проектной документации
- Оптимизация производительности приложения и запросов к БД
- Менторинг junior-разработчика
Достижения:
- Ускорил согласование договоров с 5 до 2 минут и снизил потребление памяти на 30%: по данным профилирования в dotTrace и SQL Server Profiler переписал SQL-запросы, доработал структуру БД (индексы, таблицы) и внедрил кэширование в MemoryCache
- Ускорил формирование отчёта по экспозиции в рамках одного субъекта с 10–15 минут до менее одной минуты
- Спроектировал и реализовал формирование ежемесячного отчёта МСФО: консолидация данных из 5 источников по 500–1 000 договорам с 200–300 атрибутами у каждого, время формирования — менее минуты
- Восстановил и задокументировал логику core-функционала, унаследованного от вендора без проектной документации: количество обращений заказчика по этой части системы снизилось с 5 до 1–2 в месяц
- Менторил junior-разработчика: за 6 месяцев вывел с задач уровня «добавить новое поле» на самостоятельное изменение логики расчётов и доработку отчётов, в которых до этого разбирался только я
Измеримые результаты: согласование договоров — с 5 до 2 минут; потребление памяти — −30%; отчёт по экспозиции — с 10–15 минут до менее 1 минуты; обращения заказчика по core-функционалу — с 5 до 1–2 в месяц.
Стек: .NET, C#, нужен доступ к резюме Web API, REST API, IdentityServer, WPF, MS SQL Server, T-SQL, Entity Framework, MemoryCache, dotTrace, SQL Server Profiler, NUnit
Пермэнергосбыт — .NET/SQL-разработчик, декабрь 2020 — октябрь 2022
Проект: система биллинга коммунальных платежей (SQL Server, Windows-клиент без бизнес-логики) на 2,5 млн лицевых счетов: приём платежей, учёт показаний и начислений, формирование квитанций и отчётности.
Обязанности:
- Развитие расчёта начислений и пени
- Разработка и доработка хранимых процедур на T-SQL
- Анализ и исправление ошибок в отчётности
Достижения:
- Проанализировал логику 2 ключевых отчётов компании (хранимые процедуры более нужен доступ к резюме строк) и устранил ошибку валидации данных, из-за которой отчётность ежемесячно расходилась
- Разработал скрипт консолидации контактных данных около нужен доступ к резюме клиентов: свёл записи из трёх разрозненных таблиц в единую структуру, из которой система берёт адреса для SMS и email. Это увеличило долю электронных квитанций относительно бумажных
- Разбирал и устранял расхождения между отчётами и данными с точностью до 1 копейки
Стек: .NET Framework 4.5, C#, WinForms, MS SQL Server, T-SQL, хранимые процедуры
