C#/.NET-разработчик

Уровень зарплаты: от 230 000 руб.
Местоположение: Россия, Москва и область (МСК +0ч)

Резюме: C#/.NET-разработчик

Работа в компании ООО «СервисЭнерджи» на позиции "Разработчик C# .NET" с сентября 2022 по настоящее время
ServiceEnergy - система мониторинга и дистанционной диагностики воздушных линий электропередачи. Обрабатывает телеметрию более чем с 1000 устройств и используется энергетическими компаниями, в том числе компаниями группы «Россети»; для части заказчиков разворачивается on-premise.

Начала работу над проектом как junior-разработчик. По мере развития продукта взяла на себя основную техническую ответственность за backend и с февраля 2024 года выполняю функции ведущего разработчика в небольшой команде.

Основные задачи:
- Разработка и развитие backend на C# / .NET / ASP.NET Core; самостоятельно провела миграцию проекта с .NET 8 на .NET 9.
- Проработка функций end-to-end: уточнение и формализация бизнес-требований, подготовка технического задания, проектирование архитектуры, модели данных и REST API, декомпозиция и оценка сроков, реализация и тестирование; самостоятельный выбор значительной части технических решений.
- Развитие сервисной архитектуры из 7 сервисов: проектирование новых компонентов и разделение зон ответственности существующих; самостоятельно реализовала сервисы расчёта гололёда, определения коротких замыканий, а также сервис фоновых задач обслуживания системы
- Проектирование и разработка REST API, фоновых процессов и сервисной бизнес-логики; работа с DTO, валидацией, пагинацией, фильтрацией и обработкой больших объёмов данных.
- Работа с PostgreSQL и Entity Framework Core (EF Core): проектирование схемы данных, LINQ и SQL, оптимизация запросов и индексов, массовые операции с данными, создание и применение миграций.
- Асинхронное взаимодействие сервисов через RabbitMQ / MassTransit: контракты сообщений, publishers и consumers, обработка ошибок и retry.
- Развитие взаимодействия с промышленным оборудованием по Modbus TCP: поддержка новых моделей устройств и команд по спецификациям, чтение и интерпретация данных различных форматов, осциллограмм и спектров, дистанционное управление, многошаговое получение данных и обновление прошивки, управление подключениями и арбитраж по CCID.
- Поддержка и развитие интеграции по МЭК 60870-5-104 (IEC 104) для передачи данных внешним системам.
- Разработка расчётной и аналитической логики в предметной области электроэнергетики: расчёт гололёдных отложений и габарита провода, определение места и типа короткого замыкания, обработка и синхронизация осциллограмм.
- Разработка и оптимизация API для больших временных рядов: получение данных от нескольких устройств и объектов, SQL-агрегация по временным интервалам и downsampling для ограничения объёма передаваемых данных.
- Разработка механизмов аутентификации и авторизации: ролевая модель и иерархическое разграничение доступа к данным организаций, email-2FA и первоначальная установка пароля по ограниченным по времени токенам.
- Инициировала внедрение unit-тестирования в существующий backend; разработка тестов на xUnit / FluentAssertions с проверкой позитивных и негативных сценариев и изоляцией зависимостей.
- Развитие системы пользовательских уведомлений в составе Maintenance: настраиваемые события и графики в Telegram, разработка интеграции с MAX.
- Самостоятельное сопровождение release-процесса и production: GitLab CI/CD, deployment на test/production, EF Core migrations, rollback приложения и БД, диагностика инцидентов по логам Seq/Lens, очередям сообщений и данным PostgreSQL.
- Постановка и координация задач frontend-разработчику: формализация требований, сроки, технические консультации и приёмка результата; при необходимости самостоятельные доработки существующего frontend на React / TypeScript.

Ключевые результаты:
- Инициировала выделение расчёта гололёда из daemon-сервиса в самостоятельный сервис: адаптировала существующий алгоритм из C-приложения, работавшего с Excel, для непрерывной обработки серверной телеметрии и разделила независимые зоны ответственности компонентов.
- Оптимизировала выборку больших объёмов телеметрии в PostgreSQL, переработав составной индекс под фактический паттерн запросов; по результатам замеров сократила время выполнения примерно на порядок относительно исходного индекса.
- Спроектировала и реализовала алгоритм определения места и типа короткого замыкания по данным устройств и осциллограмм; самостоятельно исследовала предметную область, решение прошло проверку на исторических данных, реальных авариях и тестовом стенде.
- Реализовала серверный цикл работы с осциллограммами: многошаговое получение с устройств по Modbus TCP, синхронизацию в пределах опоры, использование в расчётных алгоритмах и COMTRADE-совместимый экспорт.
- Переработала модель пользователей и организаций с иерархическим разграничением доступа к данным; реализовала email-2FA с ограничением числа попыток и lockout, а также первоначальную установку пароля по одноразовым ограниченным по времени токенам.
- Развила систему пользовательских уведомлений: реализовала настраиваемые события и графики в Telegram и интеграцию с MAX; после production-инцидента с недоступностью внешнего сервиса переработала обработку сообщений, устранив зависимость внутренней обработки уведомлений от успешной отправки в мессенджер.

Посмотрите похожие резюме

Senior .NET Developer
Зарплата: 250 000 руб.
Frontend разработчик
Зарплата: 100 000 руб.
Middle+/Senior C# Desktop/Backend Developer
Зарплата: 220 000 руб.
Программист
Зарплата: 50 000 руб.