Duress in Typography
She woke before her alarm, heavy with a dream she could only keep by describing it to herself: the canal had been a mirror that refused to choose one reflection, and the bell on her bike had chimed yes in a language made of care. She wrote that down, then ruined the poetry with a list because lists were how she didn’t squander luck: board packet; governance draft; webhook verification with partner; lunch. The morning air had bite, which she respected. She tied her hair the way she did when her brain needed both hands and wheeled the bike out into a Dublin that had decided to wear light like a well-earned joke.
Her phone was already lit. Red banner. FAIRNESS DASHBOARD: ALERT.
At the lab, the kettle had passed from steam to whistle in that passive-aggressive way kettles do when you aren’t paying them attention. Priya had beaten her in and was sitting cross-legged in a chair, laptop balanced, watching the fairness dashboard scroll like a quiet tide. “Your webhook is behaving,” she said without looking up. “Revocation cascade average is down to nineteen seconds. Outliers are partner timeouts we now catch.”
The fairness dashboard had been red since before dawn. Partner demo at eleven. No room for pretty lies—only the kind of truth that held up when questioned.
“Good,” Tara said. “We’ll tell people the number, not a story about the number.” She poured tea and leaned against the workbench. The day already felt like a sequence, which she liked; sequences could be walked. “Any new cold start weirdness?”
“Less assumption of wealth,” Priya said, pleased. “Jules’ phrasing on ‘what would you like to see less of?’ pulled honest signals.”
Jules came in with a roll of paper under her arm like a banner and a pastry in her mouth like a secret she didn’t mind being seen. She unrolled a poster on the table—one of those calm diagrams that said: we hear your no; here is what our system does after you say it; here is what we log (us, not you). She tapped the corner where a small bell icon lived. “I know it’s twee,” she said, “but users keep saying they like imagining a bell. Doors. Trains. Spines.”
“Keep it,” Tara said. “A metaphor that’s polite is still a metaphor.”
Sabina arrived and did her standard room scan. “Who needs a doorstop today and who needs a lock?” she asked, already knowing her own answer.
“Demo at eleven,” Mick said, sliding in with his spreadsheet energy and a bag of crisps he pretended were for later. “Aoife’s asked for ‘selective show’. Does not want to show anything with the word experimental on it. Has highlighted in yellow. Then underlined the yellow.”
“Understood,” Tara said, trying not to make a face. The word selective made her teeth itch. “We’ll show the sequence. We won’t show anything that lies with prettiness.”
Declan messaged from the Rekindle floor: Logs are good. Bringing the ‘frequency preference’ stub to the meeting—behind a rock, not a flag. Also, found a curry that might dethrone yours. She sent back: Blasphemy is a dangerous hobby; bring receipts. He replied with a photograph of a tiled counter and a laminated menu with pickles listed as if they were poems. She let herself smile and then put her phone face down, because rituals mattered.
The partner demo was in a conference room that tried to pretend it was a living room and failed because the sofas had been designed by someone who hated spines. Aoife had arranged the bowls of fruit the way you do when you want to prove to yourself you can control something. The partner—community centre consortium with enough budget to matter and enough conscience to be worth the work—sent three representatives: a director who had chaired more committees than was reasonable for any human life; a technologist with pen twitches; and a programme lead who had the steady eyes of someone who knew how to talk to people who were ashamed of needing help.
“Thanks for coming,” Declan said, warm without butter. “We’re going to show you what we’ve built, what we haven’t, and what we refuse to pretend we’ve built.”
Tara took the sequence. “Consent isn’t a cliff here; it’s steps. You’ll see the prompts. You’ll see what changes when you say no. You’ll see where we hold our own system to account.” She did not use acronyms. She did not say anything that would go stale in a regulatory season. She said, “Here’s the bell,” and rang it in the diagram, and the programme lead smiled like relief had a sound.
They ran through the flow. It behaved. The partner technologist asked a question about webhooks that made Tara warm to her immediately. Declan answered without patronising. Priya showed the stratified chart, not in a way that made a person feel reduced to a line, but in a way that made a person feel protected by one. Jules demonstrated the opt-out like a ritual with dignity: “You can say no. We won’t make you say it twice.”
“And frequency?” the director asked. “We run drop-ins and we don’t want our people to start avoiding us because we’re in their face. Can your app learn that a gentle nudge is better than a shout?”
“It can,” Declan said. “We’ve added a preference that lets a person set a cadence. Weekly or less. Or never. And we won’t quietly change that for them behind their back.”
“Good,” the programme lead said. “People who’ve been shouted at don’t need your app to remind them what that feels like.”
They closed with tea because this was still Ireland and decency isn’t negotiable. Tara sent the partner away with a one-pager that used verbs like keep and stop and listen. Aoife leaned against the window once they’d gone and stared at something middle distance. “That could make my life easier,” she said, which, for Aoife, was a sonnet.
“By ‘my life’ I assume you mean fundraising,” Sabina said sweetly.
“Darling, everything is fundraising, even the part where we pretend it isn’t,” Aoife said, then added, almost humanly, “Thank you for not showing the clever bits that break.”
“We don’t show the clever bits that break,” Tara said. “We fix them.”
Aoife’s mouth did that almost-smile again. “Board wants an internal demo this afternoon. Short. ‘Delight,’ they said, which I hate.”
“We’ll delight them with the knowledge they won’t be sued,” Sabina said.
“Or scolded on radio,” Jules added.
They set up for the internal demo because you had to inoculate against theatre with preparedness. Declan and Niamh decided to polish the ‘frequency preference’ stub to the point where it could be shown in static form. A list of intervals you could choose, with sane defaults and a line of copy that made you feel more like a person than a spam target. Tara wrote the description for the model card: Frequency preference is user-set; never inferred; changes are logged to our system behaviour only; users can inspect and roll back changes in settings. She made sure the sentence carried its own weight without leaning on adjectives.
At one-thirty a message hit their shared channel like a pebble that wanted to be a rock. A board member had invited, at the last minute, two observers from a potential strategic partner—a listings aggregator with reach and, notoriously, a fondness for “frictionless growth.” The observers were already on-site. Aoife posted three dots, which for her was swearing.
“We can do this,” Declan said, already pulling the clever bits into drawers. “We show the same as we showed the community centre. No extra sparkle.”
“No sparkle at all,” Tara said. “Function and care.”
They walked into the demo room to find that the chairs had multiplied—boards always conjure chairs—and that the observers had the tidy look of people who do not permit scuffs in their own offices. Introductions were made. The observers smiled with their mouths only. Aoife began with moat talk because it spoke a language boards understood. Declan did the product overview. Tara did the sequence. Priya did the chart. Jules did the opt-out. Sabina did the lock. It was almost clean.
Almost. One of the observers—slick, handsome, a pen that looked expensive and therefore out of ink—said, “We’re excited by this ‘smart reorder’ we glimpsed in your deck last quarter. Will we be seeing it today?”
“No,” Tara said, before Declan could open his mouth. “It isn’t ready. It misbehaves under pressure and we won’t show you something that lies.”
“We could show a static,” Declan offered, trying to be decent, trying to be flexible. “To explain the idea.”
“It’s not the idea that will hurt them,” Tara said gently, “it’s the implementation.”
The observer smiled at her the way men smile at women when they have decided to be charming about their own entitlement. “We understand,” he said, which meant: we do not. “a glimpse?”
Aoife cut in with a speed that made Tara want to send her flowers. “You’ll see a glimpse when we can stand behind it,” she said. “Not before.”
The demo ended a little flatter than Tara would have liked, but it ended without lies. The observers left with business cards that they would definitely put in a drawer. The board retreated to a private room to do the expensive kind of frowning.
In the corridor, Declan put his head against the wall briefly, the way you do when your body wants to leak and you call it back with the cool of paint. “Sorry,” he said. “I shouldn’t have even said static.”
“You were kind,” Tara said. “But kindness to a demand is not kindness to a user. We’ll practise saying no faster.”
“I’ll put that on a T-shirt,” Jules said.
They were barely back at their desks when the thing happened that would turn the afternoon from a pilot day into an object lesson in why guardrails exist. A rekindle engineer—bright, over-slept, good-hearted—pushed a branch to staging that toggled the ‘smart reorder’ feature on for ‘internal-demo’ accounts. It wasn’t meant to touch production. It touched production for three minutes in a single region because someone had copied a flag across environments without meaning to. Three minutes is nothing when you’re telling a story later. Three minutes is a lifetime when your app decides to show someone something they did not ask to see.
The thing it did—in those three minutes—was simple and not malicious, and also wrong. It re-ranked a set of accessibility-tagged events—quiet hours at a pool; a sensory-friendly hour at a museum—behind louder, more sponsored items, because the ‘smart reorder’ still carried in its bones the old sin of engagement as proxy for relevance. Nobody fell. Nobody died. But a person who had set ‘low sensory’ in their preferences and who had said a firm no to marketing would have seen a row of listings that did not care who they were. The room went very quiet while the log told them, blandly, what had happened.
“I’m rolling back,” Declan said, voice already in the cadence of a person doing the work. “I’m writing the postmortem doc. I’m—”
“You’re not going to be Sorry Guy,” Tara said softly. “You’re going to be Fix It Guy.”
“I know,” he said, and he did. He pinged the channel: Bug: internal-demo flag leaked to prod in EU-West for 2m54s. Scope: reorder only; frequency/consent unaffected; affected cohort: users with ‘low sensory’ preference; visible effect: accessibility listings suppressed in one carousel. Action: rolled back; flags verified; writing postmortem; adding tests; adding CI gate on flags that affect ranking; users affected: likely < 200; we will send an in-app apology if we can identify and a public note either way.
Aoife appeared in the lab doorway as if she had conjured herself by sheer interest. “Do I need to start making calls?” she asked, razor-kind and ready.
“No,” Tara said. “You need to let us fix it, then help us tell the truth.”
“Copy,” Aoife said, and took out her notebook like a sword.
They wrote the postmortem. They wrote it blameless. The first line: We introduced a change to an internal flag that touched production for two minutes and fifty-four seconds in EU-West, suppressing accessibility-tagged listings in a carousel for users who had asked for quiet. The second line: We regret the harm; we are setting gates to make this harder to do; we credit the user preferences as the authority, not our cleverness. There was a page of cause. There was a page of fix. There was a page of what they’d show to users and what they’d show to each other.
“Owner?” Sabina asked, pen poised.
“Me,” Declan said. “And Niamh. And a test that fails loud enough to wake the building.”
“Add this,” Tara said, sliding the postmortem back. She had written a single sentence on a sticky note and stuck it to the top like a prescription label: Preference tags are higher law than ranking. He read it, then wrote it into the document in his own hand.
When they had the bones, Aoife took what she needed and went to the board with a print-out because sometimes paper feels more contrite than screens. The board summoned them in, which was their right. Rectangles on a wall; faces calibrated; a kind of hush that invites careful speech.
Declan did not lean on clever. He said what happened and how and what they had built around the fault. He did not say sorry like a man who wanted to be forgiven; he said it like a man who knew he had cost trust and wanted to put it back by work. Tara added three sentences about preference and authority and sequence. Jules said, “We will show the user what we broke without making them parse our jargon.” Priya spoke about metrics but in human tone. Sabina pointed at a lock and made it unlaughable.
Then a board member—one who had come with the observers and liked the sound of their own watch—said, “I appreciate the transparency, but we are haemorrhaging momentum. The market doesn’t wait for perfect. We ship this quarter. Move the accessibility bits behind a later ‘phase two.’ Do a quiet beta.”
There was a silence in which you could feel the city’s rain even inside a room with no windows. Declan’s jaw moved, that old reflex twitching in him like a flinch trained into muscle. If he had been alone, Tara thought, he might have said yes to speed and then forgiven himself later with a story. He wasn’t alone.
“No,” she said, calm as a bell. “If you ship without honouring preference as law, I step back. The lab doesn’t bless it. We will not be anyone’s fig leaf.”
The board member’s eyebrows registered affront as if someone had reached across the table and rearranged their cutlery. “Is that a threat?”
“It’s a boundary,” Tara said, evenly. “A sequence. We will not be in the room for something we believe will harm. We’ll be in all the rooms where you choose not to.”
Aoife looked between them like a referee who also owned the pitch. She said, in a low, controlled voice, “Give us twenty-four hours. We’ll present a plan that keeps users first and still gives you a launch that doesn’t embarrass us.”
“We need more than your usual assurances,” another board member said, not unkindly, tired. “We need a plan with bones.”
“You’ll have a skeleton,” Declan said.
They left the room without slamming a door, because they were adults. In the corridor, the team did that group inhale that happens after you’ve been told to run and you’re deciding whether to do it into a wall. Priya pinched the bridge of her nose and then laughed, unexpected. “I joined this lab to be bored,” she said. “And somehow you’ve found the only way to make decency more interesting than adrenaline.”
Mick handed around crisps as if carbs could be a meeting. Jules drew a tiny cartoon of the board member’s eyebrows and pinned it to the noticeboard with a caption: ‘We ship when it won’t hurt anyone we’d invite to dinner.’ Sabina sharpened a pencil with an intensity that felt like a prayer.
Declan looked at Tara, not for permission but for calibration. “I nearly said yes,” he said. “Thank you for saying no.”
“You’ll say it,” she replied. “Tomorrow. In that room. Without making me your conscience.”
He nodded, something old in him shifting, the kind of shift that never looks dramatic from the outside and changes a person’s whole way of walking. “I will.”
They worked past dusk. They split the plan into two rails as if they were laying track across a marsh: one rail was the ‘pause’—what features would not ship and why; the other rail was the ‘safe launch’—what they could ship that felt like honour, not compromise. They named the ‘smart reorder’ as out-of-scope until the tests sang. They rooted the accessibility tags as high law. They reduced some of the visual cleverness in the carousels because cleverness has a way of removing choice when left unsupervised. They wrote the words they would say to users if anything went wrong. They tried not to romanticise failure as learning, even when failure is sometimes the only way humans learn.
At eight, when the lab had that cave echo it got after hours, Tara and Declan stood at the whiteboard and sanded the last rough edge. He was tired enough to be handsome in a different way—edges down, voice lower, humour without the fizz. “We’ll be told we lack ambition,” he said, not bitter, almost amused.
“Then we’ll be ambitious about not hurting people,” she said. “It’s a longer game.”
“Yes,” he said, like a yes to more than the sentence. He reached for her wrist and didn’t touch it. “Not here.”
“Not here,” she said, grateful for the echo. They closed their laptops in the ritual that had become a kind of vow. Outside, rain had decided to be meaningful again. They took the umbrella because being dry was not a moral failing.
And Tara knew—whatever happened next—it would be honest.