FreeTech – компания с собственным производством, специализирующаяся на автоматизации и мониторинге инженерных систем. Мы разрабатываем программные продукты для объектов разной сложности: инженерное оборудование зданий, промышленный и коммерческий холод, технологические процессы промышленных предприятий.
Мы являемся аккредитованной ИТ-компанией.
Ищем Fullstack-разработчика уровня Middle+ для развития промышленной web-платформы FreeTech. Продукт используется для мониторинга и управления инженерными системами на реальных объектах: отображает телеметрию, события и аварии, помогает работать с отчетами, настройками оборудования, объектами и пользователями.
В этой роли предстоит заниматься web-частью продукта: развивать frontend на Vue.js, backend на Node.js / Express, проектировать REST API, работать с данными, интерфейсами и бизнес-логикой системы. Низкоуровневую интеграцию с оборудованием выполняют профильные инженеры, поэтому фокус позиции – прикладная разработка, архитектура web-сервисов и развитие пользовательского функционала.
Система уже находится в эксплуатации, поэтому задачи будут связаны как с добавлением нового функционала, так и с улучшением существующей кодовой базы: рефакторингом, оптимизацией, развитием архитектуры и повышением удобства продукта для пользователей.
Задачи
- Разработка и развитие web-приложения для мониторинга и управления инженерными системами на Vue.js и Node.js / Express;
- Поддержка существующего функционала и разработка новых модулей продукта;
- Проектирование и разработка REST API для frontend-части, обмена данными и управления устройствами через существующий backend-слой;
- Реализация backend-логики для обработки данных с оборудования, событий, аварий, уведомлений и отчетов;
- Разработка пользовательских интерфейсов: дашбордов, графиков, таблиц, карт объектов, мнемосхем, форм настройки оборудования, админ-панелей и UI-компонентов;
- Работа с системой авторизации, ролями пользователей и разграничением доступа;
- Интеграция с внутренними сервисами и существующими компонентами системы;
- Работа с MariaDB: написание и оптимизация SQL-запросов, подготовка миграций, работа с историческими данными и телеметрией;
- Участие в проектировании новых модулей, декомпозиции задач и улучшении архитектуры существующего продукта;
- Поддержка, рефакторинг и развитие существующей кодовой базы;
- Взаимодействие с командой разработки и инженерами, отвечающими за низкоуровневую интеграцию с оборудованием.
Требования
- Опыт коммерческой fullstack-разработки от 3 лет;
- Уверенное знание TypeScript и JavaScript;
- Практический опыт backend-разработки на Node.js и Express;
- Опыт проектирования и разработки REST API;
- Понимание принципов построения backend-сервисов, разделения ответственности, валидации данных и обработки ошибок;
- Опыт frontend-разработки на Vue.js;
- Опыт работы с Vuex и Vue Router;
- Уверенное владение HTML5, CSS3, SCSS/SASS;
- Опыт разработки интерфейсов со сложной бизнес-логикой: дашборды, таблицы, формы, графики, административные панели;
- Опыт работы с MariaDB или MySQL;
- Умение писать, анализировать и оптимизировать SQL-запросы;
- Опыт работы с миграциями баз данных;
- Понимание принципов авторизации, ролей пользователей и разграничения доступа;
- Опыт работы с Git;
- Опыт работы в Unix/Linux-окружении;
- Умение разбираться в существующей кодовой базе, аккуратно вносить изменения и проводить рефакторинг;
- Способность самостоятельно декомпозировать задачи, предлагать технические решения и доводить их до результата;
- Готовность работать с промышленной предметной областью и большим количеством данных от оборудования.
Будет плюсом
- Опыт работы с Vite и понимание современной сборки frontend-приложений;
- Опыт описания, поддержки или использования OpenAPI / Swagger-спецификаций;
- Понимание Docker: контейнеризация приложений, работа с Dockerfile и docker-compose;
- Понимание принципов CI/CD: сборка, тестирование, деплой, работа с пайплайнами;
- Опыт настройки окружения разработки, линтеров, форматтеров и инструментов контроля качества кода;
- Опыт работы с Redis;
- Опыт работы с ClickHouse или другими хранилищами для аналитики, телеметрии и исторических данных;
- Опыт работы с WebSocket, Server-Sent Events или другими механизмами обмена данными в реальном времени;
- Опыт работы с системами мониторинга, телеметрией, событиями, авариями, уведомлениями или отчетностью;
- Понимание особенностей разработки web-интерфейсов для инженерных, промышленных или IoT-систем;
- Опыт или базовое понимание Go / Golang;
- Желание развиваться в backend-разработке на Go и участвовать в будущей миграции части сервисов с Node.js на Go;
- Опыт проектирования модульных backend-сервисов и понимание принципов их дальнейшего масштабирования и поддержки;
- Опыт работы с логированием, диагностикой и анализом ошибок в backend-приложениях.
Технологический стек
Backend:
TypeScript, Node.js, Express, REST API, OpenAPI / Swagger.
Frontend:
TypeScript, JavaScript, Vue.js, Vuex, Vue Router, Vite, HTML5, CSS3, SCSS/SASS.
Базы данных и хранилища:
MariaDB, Redis, ClickHouse, SQL, миграции баз данных.
Инструменты и окружение:
Git, Unix/Linux, Docker, внутренние инструменты обновления ПО на устройствах.
Дополнительно:
В перспективе планируется развитие и частичная миграция backend-сервисов на Go, поэтому опыт или интерес к Golang будет преимуществом.
Условия
- Работа над промышленным web-продуктом для мониторинга и управления инженерными системами на реальных объектах;
- Участие в развитии существующей системы: новые модули, улучшение архитектуры, оптимизация и развитие продукта;
- Возможность предлагать и реализовывать собственные технические решения;
- Работа в аккредитованной ИТ-компании;
- Официальное трудоустройство по ТК РФ;
- Стабильная своевременная заработная плата, выплаты 2 раза в месяц;
- Уровень заработной платы обсуждается по результатам собеседования и зависит от опыта и технического уровня кандидата;
- Возможность профессионального и карьерного роста внутри команды;
- Возможность участвовать в развитии backend-направления и будущей миграции части сервисов на Go;
- Команда, в которой можно работать не только с типовыми web-задачами, но и с предметной областью инженерных систем, телеметрии и автоматизации;
- Корпоративные мероприятия;
- Возможен гибридный формат работы: офис / работа из дома.