Senior .NET Developer

Москва, Россия
Сеньор
Информационные технологии • Разработка • Backend • C# • ASP.NET MVC • ASP.NET WEBAPI • ASP.NET Core • Azure SQL • MSSQL • PostgreSQL • Redis
Релокация • Удаленная работа • Частичная занятость
Опыт работы от 3 до 5 лет
О себе

На данный момент 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, хранимые процедуры



Интересные кандидаты