Разработчикам
Пять подсистем, пять языков, одна методология. Собираем компактную команду MVP — 5–6 человек с ростом до 10–11 к пиковым фазам.
Что тут строить
Это не очередной CRUD поверх базы данных. Платформа соединяет три мира: облако (портал, аналитика, ИИ-сервисы), физический объект (шлюз, который обязан пережить обрыв интернета на трое суток и не потерять ни одного события) и нормативную базу (сотни документов, которые надо превратить в проверяемый код со ссылками на источник).
Из этого вырастают задачи, которых нет в типичном SaaS: разбор BIM-моделей (IFC), драйверы полевых протоколов — от открытых ONVIF и BACnet до проприетарных панелей, событийное ядро на десятки тысяч датчиков, RAG, которому запрещено галлюцинировать, и криптография, которую можно заменить, не переписывая систему.
Продуктовые требования написаны и оценены заранее: у каждой фазы есть бэклог, у бэклога — приоритеты. Придумывать продукт на ходу не придётся; придётся хорошо строить.
Стек по подсистемам — и почему именно такой
portal/ · Ruby on Rails 8
работаетПортал, аутентификация, кабинеты, ядро бизнес-логики. Rails 8 без node: propshaft, importmap, SQLite, деплой Kamal. CRUD-ядро с авторизацией быстрее всего итерируется именно здесь — каркас уже в продакшне.
ai/ · Python (FastAPI)
фаза 1Нормативный движок: правила как код со ссылками на пункты норм, RAG по нормативной базе, ассистент, каждый ответ которого проходит валидацию на цитирование. Гибрид: облачные LLM для генеративных задач, собственные модели для контуров, откуда данные не выходят.
edge/ · Rust + C
фаза 2Объектовый шлюз обязан жить без облака 72 часа, буферизовать события и не течь по памяти месяцами. Rust — там, где «падать нельзя» проверяет компилятор; C — там, где драйверам полевых протоколов (ONVIF, Modbus, BACnet, OSDP) нужен низкий уровень.
events/ · Elixir (OTP/Phoenix)
фаза 2Поток событий от тысяч датчиков — задача, будто придуманная для модели акторов: миллионы легковесных процессов, supervision trees, отказ одного обработчика не роняет ядро. Плюс Phoenix для live-дэшбордов.
integrations/ · Node.js (TypeScript)
фаза 2+Коннекторы к внешним системам заказчиков, генерация PDF-отчётов, фронтенд-инфраструктура. Экосистема npm здесь работает на нас, а не против.
Инженерные принципы — с пояснениями
Человек в контуре
ИИ готовит черновики и находки; любое действие с последствиями — отчёт клиенту, изменение конфигурации, наряд на работы — подтверждает человек, и подтверждение фиксируется. Это не бюрократия, а условие продаваемости продукта в ответственной области.
Данные ≠ инструкции
Всё, что загрузил клиент, — недоверенный вход. Контент объекта не попадает в системные промпты, а у ИИ-агентов права «стажёра с эрудицией и неизвестной лояльностью»: читать и предлагать можно, действовать — нельзя.
Критичное живёт локально
72 часа автономии edge — архитектурный инвариант, а не пожелание. Облако агрегирует и анализирует, но его недоступность не ослепляет объект и не теряет события.
Zero Trust и крипто-гибкость
mTLS между всеми компонентами; алгоритм шифрования — заменяемый параметр. Впереди миграция на постквантовые схемы, и переписывать систему ради неё нельзя — значит, гибкость закладывается с первого коммита.
Секреты только в ENV
Никаких credentials-файлов и ключей в репозитории — только переменные окружения и masked/protected-переменные CI.
Как устроена работа
- Монорепозиторий: portal/, ai/, edge/, events/, integrations/. Ветка feature/* от develop, merge request с описанием «что / зачем / как проверено».
- CI на каждый MR: линтер, SAST, тесты — всё зелёное, иначе не едем. develop деплоится на staging автоматически, main — на продакшн вручную после ревью.
- Тесты обязательны для новых моделей и контроллеров; новые зависимости — только через обсуждение. Definition of Done зафиксирован в репозитории, а не в чьей-то голове.
Кого ищем по фазам
Как присоединиться
Напишите в чат пару слов о себе и о том, какая подсистема интересна → короткий созвон → доступ в репозиторий и кабинет разработки на этом портале → первая задача из бэклога MVP. Без многоэтапных собеседований и тестовых заданий в стол.
Написать в чатСвязаться
Новости проекта — в телеграм-канале, вопросы и обсуждение — в чате. Отвечаем лично: инвесторам, пилотным клиентам и кандидатам в команду.