Engineering

Architecture

How the platform is put together.

SecurityMulti-tenancyArchitecture

The browser is not a witness

We found the same hole twice, in two systems written a year and a half apart by people solving unrelated problems. Neither was a subtle cryptographic mistake. Both were the same sentence, written twice: The browser told us which organisation this request is for, and we believed it.

ArchitectureMulti-tenancy

Four frontends, one address

An organisation's address serves three separate applications: They are three builds, from three directories, with three bundles. They share a domain, a session and a design system,…

FrontendArchitecture

A dash is not a zero

A learner scored 120 out of 300 on a project. The admin console showed 300%. The instructor console showed 0%. The student's own course card showed 12000%. Nobody had written a bug…

EdgeMulti-tenancyArchitecture

Branding that arrives before the JavaScript does

Every organisation on the platform gets its own address and its own branding. The obvious way to build that is to fetch the branding when the app starts. We did, and it was wrong i…