Оптимизация высоконагруженного (high-load) программно-технического комплекса c микросервисной архитектурой. Участие в реорганизации сервера, оптимизация производительности серверной части, обеспечение отказоустойчивости и высокой доступности системы. Разработка новых функций системы. Применяемые при разработке Программно-технического комплекса инструменты и технологии : C#, ORM, Entity Framework, WPF, ASP.NET Core/Web API; PostgreSQL, ClickHouse; Node.js, Three.js, Web GPU; Portainer, Docker; Prometheus, Grafana; gRPC, REST, Kafka, SignalR. Компания : Аккредитованная IT-компания. Специализация бизнеса – разработка программного обеспечения верхнего уровня: разработка и внедрение программно-технических комплексов для ведущих горных предприятий России - системы аварийного оповещения, точного позиционирования горнорабочих и транспорта, мобильные решения, средства радиосвязи и видеонаблюдения. Является частью (дочерним предприятием) производственного холдинга. Группа компаний более 17 лет на рынке систем автоматики и горно-подземной связи. Разрабатываемые системы применяются более чем на 80 рудниках и шахтах России, Казахстана и Белоруссии. Среди клиентов такие компании как НорНикель, Алроса, УГМК и другие. Основной проект – современная система точного позиционирования горнорабочих и транспорта на .NET 8 , позволяющая строить сложные трёхмерные модели шахт и рудников и предоставлять конечный результат в полном 3D как на десктоп (SharpDX), так и в мобильном варианте (Three.js), с визуализацией стационарных и подвижных объектов. Компания является лауреатом горнопромышленного форума «Майнекс Россия» за разработку и внедрение систем в ПАО «ГМК «Норильский никель». Предлагаем стабильность, уверенность в завтрашнем дне, профессиональный рост. Основные задачи: Разработка программно-технического комплекса. Многопоточное приложение. Основной вектор работы - разработка новых функций системы и поддержка старых, в том числе оптимизация. Участие в переводе Desktop приложения на более современный стек; Участие в реорганизации сервера, оптимизация производительности серверной части, обеспечение отказоустойчивости и высокой доступности системы; Участие в дальнейшем развитии системы точного позиционирования горнорабочих и транспорта: участие в проектировании и поддержке архитектуры, компонентов и код-дизайна; Работа с ведущими, старшими разработчиками, системным архитектором Desktop и Web группы в ходе выполнения поставленных задач, улучшение существующих решений. Квалификация (необходимые профессиональные знания и навыки) : Высшее образование, бакалавриат и магистратура в сфере ИТ или математическое; Опыт в роли back-end инженера-разработчика от трёх лет; Опыт работы с высоконагруженными системами; Опыт работы с крупными проектами и их рефакторингом. Опыт работы с многопоточными приложениями. Уверенное владение .NET 8, понимание изменений и улучшений в ASP.NET Core; Знание принципов SOLID, опыт применения паттернов проектирования (в т.ч. IoC, DI); Опыт работы с многопоточным и асинхронным кодом (async/await); Понимание основных структур данных и алгоритмов; Значительный опыт работы с реляционными СУБД (PostgreSQL), оптимизация запросов, использование оконных функций; Опыт работы с ORM (Hibernate или Entity Framework); Теоретические знания и опыт использования коммуникации через REST / gRPC / WebSocket; Навыки работы с Git, понимание таких процессов, как code review, feature branching, pull requests и т.д.; Будет преимуществом: 14. Опыт разработки WPF-приложений ; 15. Практический опыт работы с Docker и Kubernetes для управления контейнерами и их развертыванием в облачной или локальной среде. Опыт работы с CI/CD-пайплайнами для автоматизации развертывания микросервисов; 16. Практический опыт применения DDD/CQRS; 17. Знание инструментов для мониторинга и логирования, таких как Prometheus, Grafana, ELK. Важно (!!!): Для текущего проекта опыт работы с WPF является ключевым. Текущая позиция подразумевает множество различных задач, связанных с WPF, а также оптимизация SQL-запросов для отчётов, оптимизация и доработка серверных модулей. Высокая экспертиза в WPF и SQL - в приоритете. Пожалуйста, направляя резюме, укажите, с какой максимальной нагрузкой (RPS, объем данных, количество одновременных соединений) Вы лично работали в своей практике и в чем именно она заключалась? Условия работы: Полностью удалённая работа в аккредитованной IT-компании; По желанию сотрудника возможна работа в офисе компании (бл.ст. метро Удельная) или гибридный формат; В штат предприятия со всеми обязательствами по ТК РФ; Полная занятость; Отпуск в соответствии с действующим законодательством (14+14 дней); 100 % компенсация больничного; График работы пн-пт, 09:00-17:30. После 2-3-х месяцев адаптации к продукту и процессам возможен более гибкий график начала/окончания рабочего дня. Индексация заработной платы ежегодная; Оплачиваемые компанией курсы повышения квалификации в случае необходимости. ✔ Мы предлагаем финансовую стабильность, уверенность в завтрашнем дне, профессиональный рост, востребованный, интересный с профессиональной точки зрения и нужный продукт. ✔ Мы следим за тенденциями, тестируем и внедряем новые технологии; у нас позитивная рабочая среда, информационная открытость; мы признаём и оцениваем достижения сотрудников. ✔ Мы плавно вводим в проект: по мере достижения результатов вы будете переходить к более масштабным задачам (от desktop-разработки на WPF к современным SPA-архитектурам). В этом вам помогут наши системный архитектор и техлид. Мы нацелены на долгосрочное сотрудничество, поэтому гарантируем прозрачный профессиональный рост и соразмерное увеличение финансового вознаграждения по мере развития ваших компетенций. ........................ P.S. Внимание! Отклик на вакансию без сопроводительного письма не рассматривается. Пожалуйста, скопируйте текст ниже, вставьте его в сопроводительное письмо, поставьте себе оценку от 1 до 5 по каждому пункту и кратко (1–2 предложения) подтвердите её фактами из вашей коммерческой практики *. Высшее профильное образование (очное, бакалавриат / магистратура / специалитет): укажите вуз, факультет, специальность и год окончания. (Внимание: это обязательное требование руководства компании, кандидаты без профильного диплома не рассматриваются). Опыт работы с высоконагруженными системами (High-load): укажите, в чем заключалась специфика высокой нагрузки в ваших проектах и какие архитектурные подходы вы применяли. Опыт работы с крупными проектами и их рефакторингом: кратко опишите самый масштабный проект, в модернизации или рефакторинге которого вы принимали участие, и к какому результату для системы или бизнеса это привело. Опыт работы с многопоточными приложениями (Параллельные вычисления, CPU-bound задачи): укажите, в рамках какой бизнес-логики или расчетного модуля вы решали задачи распараллеливания вычислений и синхронизации доступа к разделяемой памяти. Опыт работы с асинхронным кодом (Асинхронное программирование, I/O-bound задачи): укажите, с какими внешними сервисами, базами данных или брокерами сообщений вы выстраивали асинхронное взаимодействие с использованием async/await. СУБД (PostgreSQL) / Оптимизация запросов: опишите ваш опыт оптимизации «тяжелых» запросов и работы со сложной логикой (индексы, оконные функции, хранимые процедуры, оптимизация планов запросов). Опыт разработки WPF-приложений: укажите, какие ключевые задачи или интерфейсные модули вы реализовывали на WPF и каков был масштаб desktop-приложения. Параметры максимальной нагрузки: назовите конкретные метрики систем, с которыми вы реально работали в production (пиковый RPS, объемы данных в БД в гигабайтах/терабайтах, количество одновременных подключений) и характер вычислительной логики. Эти запросы были простыми CRUD-операциями (чтение/запись строк)? или это тяжёлая вычислительная логика (обработка массивов данных, файлов, потоковой телеметрии в памяти)? В чем именно заключалась задача? * Отклики только с оценками или общим теоретическим текстом без описания личного опыта и инструментов рассматриваться не будут. Указывайте только конкретные факты из своей практики. Ответы, содержащие общую теорию или сгенерированные ИИ, будут отклонены . Для ответов на вопросы Вам потребуется ~ 15 минут.