Адвантика. Автоматизация 5.0
Middle+ Backend разработчик C#.NET / Microservices architecture High-load conditions
- C#
- PostgreSQL
- Highload
- Многопоточный и асинхронный код
- Рефакторинг кода
- SOLID
- Code review
- WPF
- SQL
- gRPC
Оптимизация высоконагруженного (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-архитектурам). В этом вам помогут наши системный архитектор и техлид. Мы нацелены на долгосрочное сотрудничество, поэтому гарантируем прозрачный профессиональный рост и соразмерное увеличение финансового вознаграждения по мере развития ваших компетенций.
........................
Внимание! Отклик на вакансию без сопроводительного письма не рассматривается.
Пожалуйста, скопируйте текст ниже, вставьте его в сопроводительное письмо, поставьте себе оценку от 1 до 5 по каждому пункту и кратко (1–2 предложения) подтвердите её фактами из вашей коммерческой практики *.
- Высшее профильное образование (очное, бакалавриат / магистратура / специалитет): укажите вуз, факультет, специальность и год окончания. (Внимание: это обязательное требование руководства компании, кандидаты без профильного диплома не рассматриваются).
- Опыт работы с высоконагруженными системами (High-load): укажите, в чем заключалась специфика высокой нагрузки в ваших проектах и какие архитектурные подходы вы применяли.
- Опыт работы с крупными проектами и их рефакторингом: кратко опишите самый масштабный проект, в модернизации или рефакторинге которого вы принимали участие, и к какому результату для системы или бизнеса это привело.
- Опыт работы с многопоточными приложениями (Параллельные вычисления, CPU-bound задачи): укажите, в рамках какой бизнес-логики или расчетного модуля вы решали задачи распараллеливания вычислений и синхронизации доступа к разделяемой памяти.
- Опыт работы с асинхронным кодом (Асинхронное программирование, I/O-bound задачи): укажите, с какими внешними сервисами, базами данных или брокерами сообщений вы выстраивали асинхронное взаимодействие с использованием async/await.
- СУБД (PostgreSQL) / Оптимизация запросов: опишите ваш опыт оптимизации «тяжелых» запросов и работы со сложной логикой (индексы, оконные функции, хранимые процедуры, оптимизация планов запросов).
- Опыт разработки WPF-приложений: укажите, какие ключевые задачи или интерфейсные модули вы реализовывали на WPF и каков был масштаб desktop-приложения.
- Параметры максимальной нагрузки: назовите конкретные метрики систем, с которыми вы реально работали в production (пиковый RPS, объемы данных в БД в гигабайтах/терабайтах, количество одновременных подключений) и характер вычислительной логики.
Эти запросы были простыми CRUD-операциями (чтение/запись строк)? или это тяжёлая вычислительная логика (обработка массивов данных, файлов, потоковой телеметрии в памяти)?
В чем именно заключалась задача?
* Отклики только с оценками или общим теоретическим текстом без описания личного опыта и инструментов рассматриваться не будут. Указывайте только конкретные факты из своей практики. Ответы, содержащие общую теорию или сгенерированные ИИ, будут отклонены.
Для ответов на вопросы Вам потребуется ~ 15 минут.