Разработчик SCADA-системы (Backend + Web)
В нашу команду промышленной автоматизации требуется сильный разработчик, который уверенно чувствует себя и в backend-разработке, и во frontend (web), и готов работать с «живыми» технологическими данными, оборудованием и временными рядами.
Мы развиваем собственные программные решения для мониторинга и управления технологическими объектами и не только. Вас ждут задачи на стыке backend, web и промышленной автоматизации: работа с протоколами нижнего уровня, историческими данными, бизнес-логикой аварий и отчётности, а также создание удобного веб-интерфейса для инженеров и операторов.
Чем вы будете заниматься
В повседневной работе вам предстоит:
— участвовать в проектировании архитектуры сервисов: опрос устройств, хранение данных, API, веб-панель;
— реализовывать опрос промышленного оборудования по протоколам Modbus RTU/TCP и/или OPC UA;
— проектировать и настраивать базу данных для временных рядов (PostgreSQL, исторические данные телеметрии, агрегирование по времени);
— разрабатывать бизнес-логику поверх телеметрии: вычисляемые теги, агрегаты, обработку аварий/алармов, журналы событий, отчёты и графики;
— создавать и поддерживать REST API (JSON) для доступа к текущим и архивным данным;
— разрабатывать веб-интерфейс (HMI): мнемосхемы, таблицы параметров, тренды, журналы аварий и событий;
— реализовывать безопасную отправку команд на оборудование через PLC с протоколированием действий пользователей;
— настраивать логирование, базовый мониторинг сервисов и резервное копирование.
Требования
Языки и технологии
— уверенный опыт разработки на одном из языков: Golang / Python / C# (обязателен хотя бы один из них);
— опыт web-разработки: JavaScript + React или другой современный SPA-фреймворк;
— умение проектировать и реализовывать REST API, уверенная работа с HTTP и JSON.
Промышленная часть
— практический опыт работы с Modbus RTU/TCP и/или OPC UA;
— понимание цепочки «датчик → PLC/RTU → SCADA», базовое знание DI/DO/AI/AO, тегов, уставок, принципов работы полевого оборудования.
Базы данных
— уверенное владение SQL и опыт работы с PostgreSQL;
— понимание особенностей хранения временных рядов: данные, индексируемые по времени, агрегация по часам, суткам и т.п.
Инфраструктура
— уверенная работа с Linux на уровне установки и настройки сервисов;
— практический опыт работы с Git, базовые навыки использования Docker.
Будет преимуществом
— опыт работы с любыми SCADA/АСУ ТП (WinCC, Ignition, Wonderware, MasterSCADA и др.);
— навыки программирования PLC (Siemens, Schneider, ОВЕН и др.);
— участие в промышленных проектах (энергетика, водоснабжение, производство и т.д.);
— базовое понимание ИБ: ролевая модель доступа, логирование действий пользователей, работа по HTTPS.
Ищем разработчика, который готов браться за задачи любого уровня сложности — от низкоуровневой работы с оборудованием до развития веб-интерфейса, — и хочет расти вместе с нами в рамках развивающейся организации с адекватными условиями, прямым влиянием на продукт и возможностью инициативно предлагать и реализовывать свои решения.
Даже если какого-то из перечисленных навыков у вас пока нет, но вы быстро учитесь, умеете разбираться в новых технологиях и не боитесь сложных задач, — всё равно откликайтесь. Мы внимательно рассматриваем всех кандидатов и готовы обсуждать развитие недостающих компетенций внутри команды.