For developers

Five subsystems, five languages, one methodology. We are assembling a compact MVP team — 5–6 people, growing to 10–11 at peak phases.

What there is to build

This is not another CRUD app over a database. The platform connects three worlds: the cloud (portal, analytics, AI services), the physical site (a gateway that must survive a three-day internet outage without losing a single event) and the regulatory base (hundreds of documents that have to become verifiable code with references to the source).

That produces problems a typical SaaS never sees: parsing BIM models (IFC), field protocol drivers — from open ONVIF and BACnet to proprietary panels, an event core handling tens of thousands of sensors, a RAG pipeline that is forbidden to hallucinate, and cryptography that can be swapped out without rewriting the system.

The product requirements are written and estimated up front: every phase has a backlog, every backlog has priorities. You will not have to invent the product on the fly; you will have to build it well.

Stack by subsystem — and why exactly this one

portal/ · Ruby on Rails 8

running

The portal, authentication, dashboards, core business logic. Rails 8 with no node: propshaft, importmap, SQLite, Kamal deploys. A CRUD core with auth iterates fastest here — the skeleton is already in production.

ai/ · Python (FastAPI)

phase 1

The rule engine: rules as code with references to code clauses, RAG over the regulatory base, an assistant whose every answer passes citation validation. Hybrid models: cloud LLMs for generative tasks, in-house models for circuits data cannot leave.

edge/ · Rust + C

phase 2

The on-site gateway must live without the cloud for 72 hours, buffer events and not leak memory for months. Rust where “must not crash” is checked by the compiler; C where field protocol drivers (ONVIF, Modbus, BACnet, OSDP) need the low level.

events/ · Elixir (OTP/Phoenix)

phase 2

An event stream from thousands of sensors is a problem seemingly invented for the actor model: millions of lightweight processes, supervision trees, one failed handler never taking down the core. Plus Phoenix for live dashboards.

integrations/ · Node.js (TypeScript)

phase 2+

Connectors to clients' external systems, PDF report generation, frontend infrastructure. The npm ecosystem works for us here, not against us.

Engineering principles — with the reasoning

Human in the loop

AI prepares drafts and findings; any action with consequences — a client report, a configuration change, a work order — is confirmed by a human, and the confirmation is recorded. Not bureaucracy: the condition for selling a product in a high-responsibility domain.

Data ≠ instructions

Everything a client uploads is untrusted input. Site content never reaches system prompts, and AI agents hold the rights of “an erudite intern of unknown loyalty”: reading and suggesting — yes, acting — no.

Critical things live locally

72 hours of edge autonomy is an architectural invariant, not a nice-to-have. The cloud aggregates and analyses, but its unavailability neither blinds the site nor loses events.

Zero Trust and crypto agility

mTLS between all components; the cipher is a replaceable parameter. A migration to post-quantum schemes lies ahead, and rewriting the system for it is not an option — so agility is built in from the first commit.

Secrets in ENV only

No credentials files and no keys in the repository — environment variables and masked/protected CI variables only.

How the work is organised

  1. A monorepo: portal/, ai/, edge/, events/, integrations/. Branch feature/* off develop; merge requests come with a “what / why / how it was verified” description.
  2. CI on every MR: linter, SAST, tests — all green or it does not ship. develop deploys to staging automatically; main goes to production manually after review.
  3. Tests are mandatory for new models and controllers; new dependencies only after discussion. The Definition of Done lives in the repository, not in somebody's head.

Who we are looking for, by phase

Rails engineer (portal core and API) Python ML engineer (rule engine, RAG, predictive) Rust/C embedded (edge gateway, protocol drivers) Elixir engineer (event core) Node/React engineer (frontend, integrations, reports) QA engineer (regulatory and AI circuits) DevOps (IaC, environments, on-prem builds)

How to join

Write a few words in the chat about yourself and which subsystem interests you → a short call → access to the repository and the development dashboard on this portal → your first ticket from the MVP backlog. No multi-stage interviews and no throwaway test assignments.

Write in the chat

Contact

Project news lives in the Telegram channel; questions and discussion — in the chat. We answer personally: investors, pilot clients and team candidates alike.