Основная задача: Разработка и поддержка надежного бэкенда, состоящего из микросервисов, отвечающих за связь с железом катамарана, управление миссиями и обработку потоковой телеметрии. Технические требования (Hard Skills) Обязательные: 1.Python 3.10+: Продвинутый уровень, понимание асинхронности (asyncio). 2.Django + Django REST Framework (DRF): Глубокое знание, включая:
3.Работа с аппаратными протоколами (Ключевой навык!): MAVLink: Опыт работы с библиотекой pymavlink или аналогичной. Понимание протокола, типов сообщений (HEARTBEAT, GLOBAL_POSITION_INT). NMEA 0183: Опыт работы с последовательными портами через библиотеку pyserial или asyncserial. Умение парсить NMEA-строки. 4. Работа в реальном времени:
Django Channels для реализации WebSocket (обязательно!).
Понимание архитектуры публикации/подписки (Pub/Sub), опыт работы с Redis как бэкендом для Channels.
5. Базы данных: Опыт работы с PostgreSQL, проектирование схемы, оптимизация запросов. 6. Фоновые задачи: Опыт с Celery для обработки данных, очередей задач. 7. Docker: Умение писать Dockerfile, работать с docker-compose для сборки и запуска всех сервисов (Django, Postgres, Redis). Желательно (будет большим плюсом): 1. Опыт работы с геопространственными данными в PostgreSQL (PostGIS). 2. Знание протокола RTSP для работы с видеопотоками. 3. Опыт развертывания на одноплатных компьютерах , понимание ограничений (память, CPU). 4. Опыт работы с месседж-брокерами (RabbitMQ, Kafka) для высоконагруженных систем. 5. Знание Linux (администрирование, systemd, настройка сети). 6. Навыки написания интеграционных и нагрузочных тестов. Критично!
Надежность и внимание к деталям: Код, управляющий аппаратом, должен быть максимально стабильным и предсказуемым. Недопустимы memory leaks, race conditions.
Понимание сетевого взаимодействия и low-level: Работа с сокетами (TCP/UDP), последовательными портами, таймаутами, обработкой ошибок связи.
Архитектурное мышление: Умение проектировать микросервисы с четкими границами ответственности, планировать взаимодействие между Core/Mission/Data сервисами.
Проблемно-ориентированный подход: Готовность глубоко вникать в предметную область (морская робототехника, телеметрия), чтобы предлагать адекватные технические решения.
Командная работа: Тесное взаимодействие с фронтенд-разработчиком (согласование API) и, возможно, embedded-инженером.
Git: Опыт работы в команде, понимание Git Flow или аналогичных методологий.
Английский язык: Уровень чтения технической документации (протоколы MAVLink, документации библиотек).
Портфолио/Опыт: Наличие реализованных проектов со схожей сложностью (системы реального времени, IoT, дашборды, картография).
Готовность работать в стартап-среде: Ответственность за свой модуль от идеи до продакшена, способность принимать решения.
Основная задача: Разработка веб-интерфейса для управления морским беспилотным аппаратом, включающего карту, панели телеметрии, управление миссиями и визуализацию данных в реальном времени. Технические требования (Hard Skills) Обязательные: 1. React 18+: Глубокое понимание функциональных компонентов, хуков (useState, useEffect, useContext, useCallback, useMemo), виртуального DOM. 2. TypeScript: Уверенное использование типов, интерфейсов, дженериков. Умение описывать типы для сложных структур данных (телеметрия, миссии). 3. Состояние приложения:
Redux Toolkit (предпочтительно) или аналогичный стейт-менеджер (MobX, Zustand).
Знание паттернов для асинхронных действий (RTK Query, thunks).
Умение структурировать стейт для сложного SPA.
4. Работа с данными в реальном времени:
Опыт работы с WebSocket (библиотека socket.io-client).
Понимание потоковой передачи данных, обработки разрывов соединения, реконнектов.
5. Картографические библиотеки: Опыт работы с React Leaflet или аналогичными (Mapbox GL JS, OpenLayers) для отображения маршрутов, позиции аппарата, точек интереса. 6. Визуализация данных: Опыт с библиотеками построения графиков в реальном времени (Recharts, Chart.js, D3.js для сложных случаев). 7. Современный CSS:
Опыт с Tailwind CSS или аналогичными утилитарными фреймворками.
Понимание адаптивной верстки.
Желательно (будет большим плюсом): 1. Опыт работы с дашбордами и системами мониторинга в реальном времени. 2. Знание форматов данных для карт (GeoJSON). 3. Опыт работы с Web Workers для обработки данных телеметрии без блокировки UI. 4. Знание PWA (Progressive Web App) для возможного оффлайн-режима. 5. Опыт написания unit-тестов (Vitest / Jest, React Testing Library). Критично!
Внимание к производительности и оптимизации: UI должен обновляться плавно при высоком потоке данных.
Понимание UX для сложных интерфейсов: Способность продумать логику управления миссией, отображения множества параметров телеметрии без «перегруженности».
Коммуникация с бэкендом: Умение четко формулировать требования к API, понимание специфики сетевого взаимодействия.
Ответственность: Система управления БПА — это не корпоративный сайт. Ошибки интерфейса могут привести к потере управления.
Аналитический склад ума: Способность разобраться в предметной области (основы географии, навигации).
Git: Опыт работы в команде, понимание Git Flow или аналогичных методологий.
Английский язык: Уровень чтения технической документации (протоколы MAVLink, документации библиотек).
Портфолио/Опыт: Наличие реализованных проектов со схожей сложностью (системы реального времени, IoT, дашборды, картография).
Готовность работать в стартап-среде: Ответственность за свой модуль от идеи до продакшена, способность принимать решения.