Skip to content

About

An engineering studio built around one core, with a team per project

No account manager, and nobody between you and the people writing the code. Each project gets a team picked for the fields it touches, and one project lead who writes the specification and answers every email. The work arrives as somebody else's system — a device fleet, a platform other engineers are still committing to, a spreadsheet the business runs on, a station, a module, an export — and it has to keep running where it already runs. That includes building automation software, which is one of the disciplines here rather than all of them. Quoted as a fixed price against a written specification and scheduled rather than queued: if the next slot is months away you will be told in the first reply.

Who works on your project

A project lead, and the roles the job needs

Every job has one project lead, named in the quote, who writes the specification, answers the email and takes the call when something will not load. Today that is Usama Iqbal, who also writes the integration software and the Java. Device work brings in the hardware and firmware role; anything with a physical part brings in mechanical design in SOLIDWORKS and 3D printing. The specification names who does each part before you pay for any of it, and nothing is passed on to anyone the specification does not name.

The fields and the roles each one is staffed with →

Remote. Written work — specifications, installation notes, audit reports — is in English and is yours to keep.

Only a small number of stations are held under monthly care at any time. That is a choice rather than a shortage: the person who answers the phone about a station should be the one who built it, and that stops being true past a handful of them.

The background is software rather than field engineering: Java, web front ends and build tooling, applied to one framework. A commissioning engineer will know some things about a site that we do not, which is why the specification comes before the price and why the first question is usually about your point naming.

Why this exists

The Niagara ecosystem has a strange shape. It is the building management system in a very large number of buildings, it has a capable and open module architecture, and yet the market for third-party modules is served by a handful of vendors. Most BMS integrators who need something outside the stock catalogue either do without, or pay for a bespoke build from whoever is nearest, and then discover three years later that nobody holds the source.

This practice exists in that gap: build the thing properly, sign it, stamp it so it installs across a mixed estate, document it for the engineer who has to commission it, and hand over the source so the module outlives the supplier.

How the work is approached

Each constraint below exists because ignoring it is how Niagara work fails. No native code, because a native library will not load on an ARM controller. Stamped to the floor version, because a module stamped too high is refused outright. Signed, because verification modes tighten in every release and become absolute in Niagara 5. Small, because a JACE has far less headroom than the laptop it was developed on.

The same discipline applies to the front end. The widgets shown in the demos are built on a documented token layer — the same one this website is built on — so a client theme is a re-point rather than a rewrite, and a view that must also render inside Workbench is written to the browser engine Workbench actually embeds rather than to whatever shipped in Chrome last month.

Working together

Engagements are remote and quoted as a fixed price per deliverable against a written specification. The first conversation is half an hour and is free, and it is allowed to end with a recommendation that costs nothing — a stock feature you had not found, or a configuration change that removes the need for a module at all.

Estates are rarely uniform. A single client often has stations on Niagara AX, on several Niagara 4 point releases and on nothing at all yet, with HVAC plant from four vendors underneath. Work is scoped against the version floor that estate actually has, not against the newest one in it.

Working behind somebody else's name

A large share of this work arrives through somebody who is not the building owner: a consultant, a main contractor, a vendor's own engineer, another integrator carrying a job that has one piece in it they do not want to build. In front of their client, the work is theirs. Three things hold on every job of that kind, and they are worth stating rather than leaving to be asked about.

The name on it is yours. A module's vendor string, the cover of a specification, the header of a handover note — all of it is set to whoever the client is buying from. A module can be handed over for you to sign with your own code-signing certificate, so the signature does not introduce a name either. There is no watermark, no about box and no link home hiding in a graphic.

Your client stays your client. There is no contact with them except through you, during the job or after it, and no later approach — not a follow-up, not a newsletter, not a "we worked on your site" mail two years on. No client, employer or partner is named anywhere on this site; the case studies here are anonymous and stay that way, which is the same promise seen from the other side.

The specification is yours. Whoever commissions written work owns it — the specification, the audit report, the source and the right to hand the whole lot to a different engineer next time without asking. Nothing is held back to make the next job compulsory. The point of documenting a module properly is that somebody else can pick it up, and that is as true when the somebody else is a competitor.

Capability

Technical ground covered

FrameworkNiagara 4 and Niagara 5; Baja API; rt, wb and ux module profiles; module signing and version stamping.
Front endbajaux, BajaScript, PX graphics and standard sheet sets, ORD binding, BQL history queries, responsive token-driven component systems, light and dark theming.
HardwareJACE controllers on ARM, Supervisor and PC stations on x86.
ProtocolsBACnet/IP and MS/TP, Modbus TCP and RTU, MQTT, REST and vendor APIs by specification.
Station workPlatform commissioning, TLS and certificates, user and role models, tagging, histories, alarm classes, schedules, Niagara Network and provisioning, backup and verified restore.
MigrationJava 8 to 25 porting, dependency auditing, re-signing, module inventory and readiness assessment, JACE-8000 to JACE-9000 sequencing.

Next step

Tell us the version, the hardware, and what it has to do.

You will get a written scope and a fixed price against it. If the honest answer is that you do not need us, you will get that instead.