Разработчик ПО верхнего уровня РТК
Описание
Ищем разработчика для создания ПО верхнего уровня промышленных робототехнических комплексов. В работе ориентировочно 70% backend / 30% frontend. Основной стек — C#/.NET и/или Python. C++ используется для отдельных задач интеграции с оборудованием и низкоуровневыми компонентами. Чем предстоит заниматься • Самостоятельно разрабатывать ПО для робототехнических комплексов по техническому заданию Главного инженера проекта. • Участвовать в проектировании архитектуры ПО. • Настраивать взаимодействие между ПЛК, роботами, периферийным оборудованием и информационными системами Заказчика: ERP, MES, SCADA и др. • Тестировать разработанное ПО непосредственно на оборудовании совместно с робототехниками и инженерами по автоматизации. • Диагностировать возникающие проблемы и находить технические решения. • Готовить техническую документацию. В составе команды предстоит пройти полный цикл разработки: от получения исходных требований, подготовки концепции и MVP, проверки гипотез и интеграции с оборудованием до подготовки РТК к производству и запуска комплекса в эксплуатацию. Технологический стек • Платформа: .NET (актуальная LTS-версия), Python • ОС промышленного ПК: Linux • Шлюз: ASP.NET Core Web API — серверная часть; механизмы retry/timeout/circuit breaker; исходящие callback с ретраями и экспоненциальной задержкой или аналоги • Планировщик: фоновые задачи и оркестрация, явные конечные автоматы для управления состояниями и технологическими процессами • База данных: PostgreSQL; EF Core либо Dapper • Стык с ПЛК: OPC UA (клиент), библиотека OPC Foundation, Modbus, PROFINET • Логирование: структурное, Serilog или аналоги • Тестирование: xUnit, Testcontainers для интеграционных тестов или аналоги Что важно • Уверенное знание C#/.NET или Python и основ backend-разработки. • Понимание принципов ООП, модульной архитектуры и проектирования приложений. • Базовые навыки frontend-разработки. • Знания в области разработки многопоточного и асинхронного ПО. • Базовые знания в области построения и конфигурации сетей. • Умение работать с системами контроля версий. • Умение работать с Linux на уровне, необходимом для запуска, настройки и диагностики разработанного ПО. • Умение работать с актуальными ИИ-ассистентами для написания кода и документации. • Техническое образование или обучение по техническому направлению. Особенности работы Здесь важно быть готовым к специфике разработки промышленного ПО: • Неполные и меняющиеся требования. Часть вопросов к Заказчику может оставаться открытой, а ответы поступать уже в процессе работы. Процессы тестируются и могут изменяться в процессе реализации. • Работа непосредственно с оборудованием. Необходимо быть готовым работать на площадке рядом со стендом и активно участвовать в тестировании — 2–3 дня в неделю на площадке. • Самостоятельность. От разработчика ожидается не только реализация поставленной задачи, но и способность предложить техническое решение, проверить его на стенде и довести до устойчивой работы. Будет преимуществом • Опыт работы с промышленными протоколами: Modbus TCP/RTU, PROFINET, OPC UA и другими. • Опыт embedded-разработки: STM, ESP, Arduino. • Знание C/C++. • Опыт работы с CI/CD. • Знание MES, WMS, SCADA, АСУ ТП — любой опыт рядом с оборудованием. • Опыт работы в команде с инженерами-механиками и электронщиками — умение разговаривать не на языке разработчика. Условия • Заработная плата: обсуждается индивидуально. • График: 5/2, гибридный формат. • Место работы в пешей доступности от метро Озёрная. • Возможны редкие краткосрочные командировки. • Оформление согласно ТК РФ. Что предлагаем • Работа над реальными продуктами. • Современная лаборатория/цех с 3D-принтерами, станками, набором камер, датчиков и роботов. • Возможность приобрести уникальные практические навыки в робототехнике при реализации проектов.