Set a latency budget live for a feature I describe.
ORDER · latency budgets and UX tradeoffs
The interviewer says three words: reads a request, checks calendars, proposes times. You have maybe ninety seconds to turn that into real numbers. Nobody's grading whether you can name the three stages. They're grading which one you protect first, out loud, with no time to go back and think.
The direct answer
Split "checks calendars" into its fast internal part and its slower external or shared part, and give the external part the guarded slice, not "proposes times," even though proposing times does the harder reasoning. A slow proposal just costs a longer wait. An external calendar check that runs out of time and gets silently skipped can put a meeting on two people's calendars that one of them was never actually free for, and that mistake is already sent before anyone can catch it. Keep request-parsing and internal calendar checks thin, let the proposal stream instead of claiming a bigger slice for itself, and make sure anything still unconfirmed when the clock runs out gets flagged, never guessed.
Rank the live budget, in order
Give the external, shared-calendar check the guarded slice, not the stage that reasons the hardest.Why: a wrong proposal that goes out because a calendar was never actually confirmed can't be quietly redone once two people have it on their own calendars.
Split "checks calendars" into its fast internal part and its slower external part before allocating a single millisecond.Why: one shared number for both hides that a colleague's calendar and a client's calendar almost never answer in the same amount of time.
Decide what propose-times says when a calendar hasn't answered yet, before fixing any timeout number.Why: a timeout with no flag just turns silence into a guess dressed up as a confirmed time.
Let propose-times stream its first candidate time instead of claiming a bigger slice for itself.Why: someone watching a time appear and refine tolerates a longer total wait than someone staring at nothing while the hardest reasoning finishes first.
Test the external slice against real client-calendar response times before fixing it for good.Why: a number that looked fine against colleagues' calendars badly undercounted how long a client's forwarded invite or shared link actually takes.
Resist removing the timeout altogether just to chase zero conflicts.Why: a two-week test with no timeout at all pushed total proposal time past fifteen seconds on the slowest client calendars, and close to one in five people gave up and went back to email.
How to answer this, stage by stage
Nobody's grading whether you can list "parse, check, propose." They're grading whether you can turn that list into a ranked number, live, and defend it when someone points out the reasoning stage is the one that's actually slow today.
1
Repeat the feature back and name its stages before ranking anything in the abstract
Say it like this
"Okay, so: it reads a request, it checks calendars, it proposes times. Let me call those three stages parsing, calendar-check, and propose-times, and I'll allocate a total budget across them, say four seconds, since that's roughly what someone will tolerate for a scheduling assistant before they just go back to email."
Why this works
Restating it out loud buys a few seconds of thinking time and proves you're allocating what was actually described, not a memorized pipeline from another product.
2
Say your structure out loud before naming a single millisecond
Say it like this
"I'm going to name what the whole budget is protecting, split calendar-check into its fast and slow parts, say which of those parts is hardest to undo if it's wrong, then rank the three stages and give real numbers."
Why this works
Tells the interviewer you have a method you're running live, not an opinion you're assembling one guess at a time.
3
Split calendar-check into its fast and slow parts before ranking a single stage
Say it like this
"Calendar-check isn't one thing. Checking a colleague's calendar on the same company system is fast and almost always answers. Checking a client's calendar through a shared link or a forwarded invite is slower and far more likely to still be running when the clock runs out. Those need two separate slices, not one shared number."
Why this works
Most candidates allocate by the three named stages and stop there. Splitting the fragile half out of "checks calendars" is the move that actually earns the ranking.
4
Give the slow, external part of calendar-check the guarded slice, using the reversibility test, not "how slow is it today"
Say it like this
"If I allocated by which stage takes the most compute, propose-times would win, it's the one doing real reasoning over constraints. But propose-times being slow just costs a longer wait. An external calendar check running out of time and getting silently skipped costs a meeting invite that goes out wrong, one an attendee accepts before anyone catches it. That's the one nobody can quietly redo."
Why this works
This is the whole test of the framework. An allocation that only follows raw compute time gets the order wrong.
5
Decide what the proposal says when a calendar hasn't answered, before setting any timeout number
Say it like this
"The millisecond number is downstream of a different decision: what does the assistant say the moment an attendee's calendar hasn't come back yet? If the answer is stay quiet and propose anyway, the number doesn't matter, it's already wrong. If the answer is flag it, not confirmed for this person, then the number is just how long I'm willing to wait before showing that flag. I'd also want two weeks of real client-calendar response times before I lock the number in for good."
Why this works
Naming the dependency, and the cheap evidence that would test it, stops a timeout number from shipping before anyone has written the sentence it triggers.
6
Close by stating the order and defending the top pick, with real numbers
Say it like this
"So out of four seconds: parsing gets 150 milliseconds, it's simple and cacheable. Internal calendar checks get 350, they're fast and reliable. External calendar checks get the guarded slice, 2,000 milliseconds, and anything still unanswered after that gets flagged, not guessed. Propose-times gets 1,200, streamed, so the first candidate time shows almost immediately. External calendar-check goes first in the ranking, not because it's the slowest stage today, but because it's the only one where running out of time can put a wrong meeting on two people's calendars before anyone finds out."
Why this works
Ending on the stated order, defended in one line, is what makes this sound like a ranked decision made live, instead of a pipeline diagram read off a slide.
Let's learn
Slotwise is the scheduling assistant Verlask Consulting built for its own staff. Someone types "set up a 45 minute kickoff with the Meridian client team next week," and Slotwise reads the request, checks every attendee's calendar, internal colleagues and outside clients alike, and proposes three ranked times.
Before Slotwise, locking a time for a meeting with at least one outside client took an average of 4 email round trips and about 30 hours of back and forth. Roughly 500 of those requests came in every week across the firm.
Slotwise proposed three ranked times in under 4 seconds instead. People liked it enough that usage grew from 500 requests a week in beta to about 12,000 a week within seven months, once it rolled out firm-wide.
Knowledge spark: what's a shared timeout?
A shared timeout is one clock covering two different jobs. If one job runs long, the other has to hurry or skip a step, even though nobody meant to shortchange it.
The turn: the conflicts were never about the model getting worse. The same model ran the whole seven months. The turn is that calendar-check and propose-times shared one combined window of 1,850 milliseconds, with no split between a fast internal calendar and a slow external one. Whichever calendars had answered by the time that window closed got used, and propose-times went ahead anyway, with nothing on screen to say an attendee's calendar had never actually come back.
We didn't lose milliseconds. We put a meeting on someone's calendar we'd never actually checked was free.
Neither timeout number is real until this gets answered first: what does propose-times say the moment a calendar hasn't come back yet.
Here's the build-up behind the budget the team eventually corrected to. Four seconds, split across five stages, once the external calendar check finally got the slice the decision actually needed.
The build-up: Slotwise's corrected 4,000 ms budget, stage by stage
Parse requestInternal calendars, fast tierExternal calendars, guarded, flaggedPropose times, streamedBuffer
External calendar-check is the tallest bar in the corrected budget, 2,000 of the 4,000 milliseconds. The original launch design gave calendar-check and propose-times one combined 1,850ms window with no split at all.
Parsing and internal calendars barely move. Together they cost 500 milliseconds and both are close to fixed cost, a colleague's calendar on the same company system almost always answers inside a few hundred milliseconds. Propose-times is the heaviest single computation, ranking three candidate times against everyone's stated hours and time zones, but once it streams, the requester sees the first candidate under half a second in, long before the full 1,200 milliseconds finishes.
External calendar-check doesn't work that way. It's a call through a shared link, a forwarded ICS file, or a client's own webmail calendar, none of it inside Verlask's control, and the number that mattered wasn't the average response time. It was how often that call ran out of whatever slice it had been given.
Slotwise's conflict rate, share of proposed meetings with an unchecked double-booking, week 1 to week 16
Meetings proposed with at least one unconfirmed attendee
Baseline sat near 1%. As client-facing usage grew, the shared 1,850ms window failed hardest on exactly the external calendars, and the conflict rate climbed to 13% by week eleven, then fell to about 0.7% once external calendar-check got its own guarded slice with a not-confirmed flag.
Propose-times can be re-tuned next sprint with nobody the wiser. A wrong invite already accepted can't. That asymmetry, not which stage is slowest today, is what decides who gets the guarded slice.
The choice that mattered
Calendar-check and propose-times launched sharing one 1,850 millisecond window, so whichever calendars had answered by then got used, with no flag when an attendee's calendar, usually an external one, hadn't answered at all.
At its worst, a scheduling assistant that proposes with total confidence keeps quietly sending real invites for slots that were never actually free, until an account manager has apologized to the same client twice in one week for a meeting that was never really open.
What I'd leave alone: request-parsing genuinely didn't need this treatment. It's a small, mostly fixed cost, and it never once produced a wrong meeting on anyone's calendar.
The lesson: a budget that adds up to a clean total can still hide which slice is allowed to fail quietly. That's the one worth protecting, not the sum, and not whichever stage looks hardest to compute.
Now here is the same thing as a story
Read the long version below when you want to feel why a shared timeout that never looked broken on a dashboard still sent a real client a meeting invite for a slot that wasn't actually theirs.
Gethin Thackery could look at a scheduling request and tell inside a minute whether it would be simple or a headache, long before Slotwise ever suggested a time. He'd run client operations at a mid-size accounting firm for six years before Verlask hired him to build Slotwise from nothing.
The early months were genuinely good. Slotwise launched with a single promise, three ranked times, every time, inside four seconds. People who'd spent years chasing email threads loved not chasing them anymore. Requests grew from the 500-a-week beta to 4,500 a week by month three, and every proposal it sent held up, because volume was still low enough that a slow external calendar rarely got squeezed.
It faded in three beats, and none of them looked like a mistake at the time. Beat one: as client-facing usage climbed, a few account managers started noticing a proposed time turning out to conflict with something already on a client's calendar, awkward, but rare enough to shrug off. Beat two: Malick Osokwe, the engineer who owned the calendar-integration calls, started getting pulled into more of those awkward messages himself, tracing why a "checked" calendar hadn't actually been checked in time. Beat three: a few account managers quietly started double-confirming external attendees by email before trusting Slotwise's proposal at all, the exact extra step Slotwise was built to remove.
Same inbox, same engineer. What changed was whether a skipped calendar check announced itself, or just waited to become someone else's apology.
It surfaced on an ordinary Tuesday, not through a dashboard. Yannic Adjei, Gethin's ops lead, pulled ten recent client meetings at random for a routine readiness check ahead of a quarterly review. Three of the ten had already needed a manual reschedule after Slotwise proposed them, because the external attendee had actually been busy at the time Slotwise confidently offered.
It was never really about Slotwise guessing wrong. It was about a shared clock that never gave the slow half of the check room to actually finish.
Gethin pulled the numbers that afternoon. Slotwise's own dashboard looked fine on the surface, average end-to-end time sitting comfortably under four seconds, right on target. Split by whether the external attendee's calendar had actually answered before propose-times ran, the picture changed: during the two busiest days of each week, external calendars regularly ran past their share of the combined 1,850 millisecond window, and every one of those timeouts let propose-times go ahead anyway, no flag, no warning. Across the quarter, that meant Slotwise proposed 190 meetings with at least one attendee it had never actually confirmed, and 3 of every 10 client-facing proposals sampled in Yannic's audit needed a manual fix.
Nobody decided on purpose to give the external check too little room. It just never got a slice of its own.
The decision that opened the door went back to a short design conversation near the end of Slotwise's build. Someone asked how the calendar-check step and the propose-times step should share their time, and the fast, sensible-sounding answer was to fold them into one combined window and let propose-times start the moment enough calendars looked ready. Nobody in that conversation asked what "enough" meant, or what propose-times should do about the ones that weren't.
Run that conversation again with one change: external calendar-check gets its own guarded slice, 2,000 milliseconds, and if a specific attendee's calendar still hasn't answered by then, the proposal shows a plain flag next to their name instead of quietly assuming they're free. Same 12,000 weekly requests. Conflict rate drops from 13 percent in its worst week to about 0.7 percent, and Malick's afternoons of untangling the same double-booking mostly disappear.
One design assumed every calendar in the request would answer at roughly the same speed. The other design asks which calendar, if it's wrong, someone can act on before anyone gets a chance to catch it.
What I'd tell myself, back in that short design conversation: ask what each stage is allowed to assume when the clock runs out, before you ever agree to let two stages share one clock.
A meeting's real risk was never about which company it involved. It was how much of the calendar-check leaned on an external, unreliable answer, and how costly a wrong guess would be if it did.
ORDER, the five letters you say out loud while the feature's still being described
Not a story wearing a framework's clothes. This is a live ranking problem across three stages of one feature, and ORDER is what stops "whichever stage looks hardest to build" from quietly standing in for "whichever stage's mistake nobody can take back."
OOutcome. What is every slice of this budget actually competing to protect?
A requester who reads Slotwise's three proposed times and picks one without needing to double check anyone's calendar themselves. Every slice, parsing, calendar-check, propose-times, is fighting for that same trust.
Name the outcome before naming a single millisecond, or the split is just an engineering estimate wearing a budget's clothes.
RReversibility. Which slice is hardest to undo if it runs out of time?
External calendar-check wins this, not because it's the heaviest stage to compute, propose-times is, but because a skipped check can put a real invite on two people's calendars before anyone can catch it. Parsing, internal calendars, and propose-times are all reversible: run slower or faster next sprint, and nobody was ever misled in the meantime.
This is the hardest step, and the one a quick pipeline sketch skips. The stage that reasons the hardest and the one that's hardest to undo were not the same stage.
DDependency. What has to be decided before what?
You can't responsibly pick a millisecond number for the external check before deciding what propose-times says the moment that check hasn't come back. The flag is the product decision. The number is downstream of it, not the other way round.
Naming the dependency stops a timeout number from shipping before anyone has written the sentence it triggers.
EEvidence. What could you learn cheaply before fixing a number for good?
Pulling real response times for external and shared calendars specifically, not blended with fast internal ones, would have shown the combined 1,850 millisecond window failing hardest on exactly the client-facing meetings Slotwise was supposed to be trusted for.
Cheap evidence beats a number that only ever got tested against a colleague's own fast-answering calendar.
RRank. State the order, defend the top pick.
Out of 4,000 milliseconds: external calendar-check first at 2,000, guarded and flagged; propose-times second at 1,200, streamed; internal calendar-check third at 350; parsing fourth at 150; buffer 300. External calendar-check goes first because it's the only slice where running out of time can put a wrong meeting on two real calendars before anyone finds out.
If the ranking would look the same with a different outcome named in step one, it was ranked by gut and the outcome got written afterward.
Three things worth stating directly, since the real judgment sits here. The alternative Verlask's team tried first, and dropped, was removing the timeout entirely and waiting for every calendar no matter how long it took, to guarantee no conflict ever slipped through. It lost in a two-week test: total proposal time on requests with a slow client calendar stretched past 15 seconds, sometimes 40, and close to one in five people closed Slotwise mid-wait and went back to email, the exact habit Slotwise was supposed to be replacing. The AI-specific failure worth naming by name is a confident proposal made without confirming every input: when the shared window ran out, Slotwise didn't say "I couldn't confirm everyone yet," it proposed the time anyway, in the same certain voice it used for everything else, because the model is built to produce a clean answer, not to admit it ran short on time. The guardrail is a validation step that forces a "not confirmed for [name]" flag into any proposal where an attendee's calendar didn't return inside its own slice, logged every time so it shows up as a weekly count instead of only surfacing through a client's confusion. That guardrail isn't free. Verlask accepted a bigger, more compute-heavy slice for external calendar-check, calling two integration paths, a direct API and a fallback file parse, in parallel, in trade for a conflict rate that fell by more than 12 points in one quarter.
And if you want to be sure it really works, try it somewhere else
Same five letters, an ER radiologist's queue instead of a meeting request, and this time the lever wasn't which calendar to trust more. It was what a stalled check was allowed to assume by default.
TriageScan is Corvasan Health's tool. An ER doctor orders an X-ray, and TriageScan reads the image, pulls the patient's prior imaging record to check for change, and drafts a preliminary flag, acute finding, no acute finding, or uncertain, for a radiologist to confirm before the ER doctor ever sees it. Zorion Machtelt owns cost and quality on it.
The decision Zorion would take back
Letting image-read and the prior-imaging pull share one 2,400 millisecond window, and having the draft flag default to "no acute change" whenever that pull ran late, because that default was the one that let the shared window close on schedule most often.
The build-up: TriageScan's budget gave the prior-imaging pull about 900 milliseconds inside that shared window. When an older record lived in a slower legacy archive, roughly 1 read in 20, the pull didn't finish in time, and the flag defaulted to "no acute change" instead of waiting or asking for help. Over one quarter, that meant 19 cases where a real change from a prior image went unflagged, caught only when a radiologist happened to pull the comparison manually during a routine second read.
Four parts share one clock. The one most likely to run long is also the one whose silence used to read as good news.
Same rank, different lever: the stage touching a live, changeable fact, whether a prior image exists and what it shows, still needs the guarded slice here too, but the lever isn't which archive to call in parallel, it's what the default assumes when time runs out. Zorion's team flipped the flag's default from "no acute change" to "uncertain, needs comparison," so a slow legacy archive now costs a radiologist a flagged manual check instead of a false reassurance nobody double-checked.
Swap the trigger and it still runs.
Speed: an interviewer caps you at ninety seconds. Skip straight to it: give the guarded slice to whichever stage touches a live, changeable fact a person can act on, not whichever stage does the hardest reasoning, and make its timeout fail with a flag, never a silent guess.
Cost: there's no budget this quarter for both a faster external-calendar fetch and a bigger buffer everywhere else. Fund the external fetch. A guarded slice that rarely times out beats a bigger buffer sitting behind a check that was never split out in the first place.
The model got better, for real: say Slotwise's ranking model gets meaningfully faster at scoring candidate times. That's real, and it should shrink propose-times' own slice further. It does nothing to how long a client's forwarded calendar invite takes to resolve, which is what actually decides how often the guarded slice has to do its job.
Where people run it wrong.
They allocate by which stage looks hardest to build, instead of by which stage's mistake a person can act on before anyone gets a chance to fix it.
They set a timeout number before deciding what the feature says the moment it fires, so the fallback quietly becomes silence instead of an honest flag.
They remove the timeout altogether to chase zero mistakes, and lose the person to a wait that feels worse than the rare conflict ever did.
How to use it live. Say the real question out loud before naming a single millisecond: "if this stage runs out of time, does the answer just get slower, or does it quietly become wrong." That buys a beat to actually rank instead of reciting whichever pipeline diagram you remember from the last product.
Flashcards (tap any card to flip it)
1 · THE FRAMEWORK
What framework is this, and what's its one job?
Tap to flip
ANSWER
ORDER: rank by what's hardest to undo. Built for prioritization questions, including live latency-budget calls made on a feature just described, not a single number to estimate.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Gethin Thackery, who owns Slotwise at Verlask Consulting. Ran client operations at a mid-size accounting firm for six years before this.
3 · THE MISTAKE
What did the shared timeout quietly do that nobody decided on purpose?
Tap to flip
ANSWER
It let propose-times go ahead on whichever calendars had answered inside 1,850 milliseconds, with no flag when an attendee's calendar, usually an external one, hadn't answered at all.
4 · THE RANKING LOGIC
Why does the external calendar check get the guarded slice when propose-times does the harder reasoning?
Tap to flip
ANSWER
Because a slow proposal just costs a longer wait, fully fixable next sprint. A skipped external check can put a wrong meeting on two people's calendars before anyone catches it.
5 · THE OLD DECISION
What decision would Gethin take back?
Tap to flip
ANSWER
Merging calendar-check and propose-times under one shared 1,850 millisecond timeout instead of splitting calendar-check into its fast internal part and its slower external part, each with its own honest fallback.
6 · THE NUMBER
Fill in the blank: the conflict rate peaked at about ___ percent in week eleven, and fell to about ___ percent once the external check got its own guarded slice.
Tap to flip
ANSWER
13 percent, and 0.7 percent. The only thing that changed between the two numbers is whether an unanswered calendar got flagged or silently skipped.
7 · THE REPLAY
Same audit, new budget, what changes?
Tap to flip
ANSWER
External calendar checks get a guarded 2,000 millisecond slice, and anything still unconfirmed after that shows a flag instead of a guess. Conflict rate drops from about 13 percent to about 0.7 percent.
8 · CROSS-PRODUCT TRANSFER
Section 4 answers this same question again for a different product. Which product, and what's the different lever there?
Tap to flip
ANSWER
TriageScan, an ER imaging triage tool at Corvasan Health. There the lever is what the draft flag assumes by default when a slice runs out, not which calendar to trust more.
Check yourself Score: 0 / 0
Fill in the blank
1. The original design gave calendar-check and propose-times one shared window of about ___ milliseconds, with no split between internal and external calendars.
Show hint
Look at "the turn" paragraph in Let's learn, right after the two numbers about how the request volume grew.
Show answer
1,850 milliseconds. That single combined window is the number the direct answer's whole reasoning is built to fix.
True or false
2. True or false: Slotwise's conflict rate climbed because the underlying model got worse at reading calendars.
True
False
Show hint
The story is explicit that the same model ran the whole seven months. Ask what actually changed between the good months and the bad ones.
Show answer
False. The same model answered every request the whole time. The shared 1,850 millisecond window, with no split and no flag, is what let propose-times go ahead on unconfirmed calendars.
Multiple choice
3. Why does the external calendar check get the guarded slice instead of propose-times, even though propose-times does the harder reasoning?
A. Propose-times is cheaper to run, so it doesn't need protecting.
B. A slow proposal just costs a longer wait, while a skipped external check can put a wrong meeting on two calendars before anyone catches it.
C. Internal calendars are always wrong, so external ones need more time.
D. Client calendars cost more to query per request.
Show hint
Look at the Reversibility step in the framework recap. It says outright which stage reasons hardest and which one is hardest to undo are not the same stage.
Show answer
B. Propose-times running slow is fully reversible next sprint. An unconfirmed external calendar going out as a confident proposal is a mistake someone can already act on.
Short answer, name the rejected alternative
4. What did Verlask's team try first to fix the conflict problem, and why did it lose?
Show hint
Look at the paragraph right after the five ORDER steps, where the rejected fix gets named.
Show answer
Model answer: Removing the timeout entirely and waiting for every calendar no matter how long. It lost because total proposal time on slow client calendars stretched past 15 seconds, and close to one in five people closed Slotwise and went back to email during the wait.
Short answer, apply it yourself
5. Pick an AI tool you use that pulls information from more than one source before it answers. Name one source in it that's probably the slow, unreliable one, and what you'd want it to say if that source doesn't answer in time.
Show hint
Think of a tool that shows a "checking..." spinner. What should it say if that check never actually finishes?
Show answer
Model answer: A ride-share app checks nearby driver availability before showing a wait time. If that check runs out of time on a busy night, I'd want it to say "still confirming a driver nearby" instead of quietly showing a wait time it never actually verified.
Fill in the blank, work the number
6. If Verlask had kept the shared 1,850 millisecond window instead of splitting it, and conflict rates scale the way they did before the fix, would the conflict rate likely land closer to 0.7 percent or closer to 13 percent?
Show hint
The 13 percent figure is what happened precisely because calendar-check and propose-times shared one window with no split.
Show answer
Closer to 13 percent. The shared window, not the model, was what let propose-times go ahead on unconfirmed calendars. Leaving it in place would very likely leave the conflict rate near where it already peaked.
Before you close the answer
Why this works
Tests whether you can turn a feature described on the spot into a real ranked budget, live, rather than reciting a memorized pipeline. Most candidates name the three stages. They don't split the fragile one out and rank it.
Follow-up traps
"Propose-times is doing the most work, so shouldn't it get the biggest slice?" Response: heaviest to compute isn't the same as hardest to undo. Propose-times running slow just costs a longer wait, fully fixable next sprint. External calendar-check running out of time can put a wrong meeting on two calendars before anyone can fix it.
"Couldn't you just wait for every calendar no matter how long, to guarantee no conflicts?" Response: tried it, in a two-week test total proposal time stretched past 15 seconds and close to one in five people gave up and went back to email. A longer wait cost more trust than a guarded, flagged slice ever did.
If pressed
The not-confirmed flag never touches the ranking model's own settings. It's a single check inside validation: has every attendee's calendar actually returned a status before the proposal is allowed out, and if not inside the 2,000 millisecond window, name that attendee in the output instead of assuming they're free.
From U2xAI Academy
From answering questions to owning outcomes.
A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.