
Careers
The constraints,written down.
You can read the rules this site is built under, then check every one of them in the source of the page you are on. That is the whole pitch.
Eight rules. All eight are verifiable from this page in under a minute, without taking anyone's word for anything.
HUREAL / Material studies
How this is built
Eight rules,and where each one lives.
Open the source of this page. Then open the four files in assets/. Everything below is either true in front of you or it is not, and there is no third state.
| The rule | What it means in the source | Where it is written |
|---|---|---|
| The systemOne edit changes every page | ||
| One stylesheet | No page on this site carries a style block. If a rule would ever appear on a second page it lives in one file instead, and a page that is copying a rule out of another page has already failed the test. | assets/hureal.css |
| One palette, and no grey | Every colour resolves to one of fifteen tokens declared once. There is no sixteenth. Every hairline and every shadow is an alpha of a palette colour, which is how the site stays inside the palette without inventing a neutral. | The token block at the top |
| One button, one link, one corner, one grid | The interactive vocabulary is closed. Adding a control is a change to the system, reviewed once, rather than a change to a page, unreviewed forever. | assets/hureal.css |
| One chrome | The ribbon, the bar, the menu and the footer are rendered from one file, so a nav change is one edit rather than sixty three and a page built next month cannot quietly ship last month's nav. | assets/partials.js |
| The floorsMeasured rather than asserted | ||
| Contrast over a photograph is read back, not claimed | Type composited over artwork is measured in the browser, at the real viewport, against the real pixels, after the crop has been decided. If the worst pixel under the copy box comes in under 5:1, a full point above the standard's floor, the scrim is raised and it reads again. | assets/hureal.js |
| Everything readable is visible at rest | Nothing readable is tied to scroll position by opacity, anywhere. The only things that move on scroll are transforms, and reduced motion removes every one of them. Turn it on and watch what happens instead of nothing. | The load motion block |
| A drawing's content exists as text | Every diagram on this site has a numbered walkthrough in the page body, not only in an alt attribute, because content trapped in an image is content a screen reader, a search engine and an assistant all fail to reach. | Every service page |
| The answers are open at rest | No FAQ on this site is behind an accordion. An accordion hides the answer from a reader who is skimming and from a machine that is lifting, and the FAQ is the block that exists to be lifted. There is a comment in the source saying not to add one. | assets/hureal.js |
Scroll the table sideways to read it.
One more, which is smaller and says more than the other eight. There is no em dash and no en dash anywhere on this site: not in copy, not in a class name, not in a comment. The breadcrumb separator is a glyph for that reason. It is a trivial rule, it is enforced, and the reason to mention it is that a place which holds a trivial rule for sixty three pages is a place that holds the ones that matter.
What the work is
The interesting partis the gates.
A large part of the production work here is carried by systems HUREAL built and runs: drafting, generation, checking, testing, and the same check repeated on every page every time. That part is not the job. The job is what gets checked, how the check is written so it cannot be satisfied by accident, and what a failing check is allowed to stop.
A gate that nobody can fail is decoration. A gate that blocks everything gets switched off in the second week. Getting that right is judgement, it is done by a person, and it is the work that actually decides whether the rest of the system is worth anything.
A gate produces a measurement. A person decides what to do about it.
What is open
Roles are listed herewhen they are real.
A role appears on this page the day it exists and comes down the day it is filled. Nothing is held open to look busy, and nothing is posted to collect applications against a job that has not been decided.
What a listing carries when one is here
- The title, and the one sentence saying what you would own.
- The constraints you would be working inside, which are the eight in the table above plus whatever is specific to the role.
- How the decision gets made, how long it takes, and who makes it.
- The arrangement, in plain words, before you spend an hour on an application.
No role is open today. No role is named on this page, no arrangement is described, and no salary, band or benefit is stated, because none of them has been decided. A recruiting page that invents any of those is the first thing an engineer checks and the first thing they find. If you want to write to us in the meantime, the address is application address to set.
Until then
Two things you can readthat are not about hiring.
How this site is built
The stack, the accessibility target and how it is tested, the launch checks by name, what is generated and what is hand built, and what is not finished. It is the longest technical document on the site and it is the one written to be argued with.
Read the build recordThe demonstration
An agent answering in the browser, grounded in named sources, handing over what it cannot ground. Three minutes, no form, no booking. It is the only thing on this site you experience rather than read.
Hear it workNeither of these puts you in a sequence, and neither of them asks for an address.
Want to hear when something opens? There is no alert to sign up to, rather than a form that goes nowhere. A role appears on this page the day it exists, so this page is the place to look.