A fleet of workers each reads exactly two values at start-up — what must a per-identity read baseline record for a departure to be visible?
answer
- a shape, not a threshold
- per identity, never per estate
- which names, how many, how often
- from where, at what hour, ever listed
- record the observation window too
basics
~20 sPer identity: which names it reads, how many reads a start costs, how often it starts, from which sources, at which hours, and whether it ever lists. A departure needs a recorded shape to depart from.
solid answer
~50 sThe baseline is a per-identity description of normal reads, and it has to be granular enough that one worker's behaviour is not averaged into the fleet's. For this shape I would record the set of names the identity has read, reads per start, starts per day with a spread rather than a single mean, the source ranges it has read from, the hours of day it has been seen, and whether it has ever issued a list call. Each field exists so that a specific departure has something to be measured against: an unfamiliar name, a volume beyond need, a new source, a 3am read, a first-ever listing. I would also record the window the baseline was observed over, because a shape learned from one week of a newly deployed fleet has not yet seen anything rare-but-normal.
code
json · 15 lines{
"identity": "queue-worker",
"observedFrom": "2026-08-01",
"observedTo": "2026-09-01",
"namesRead": [
"billing/queue-password",
"billing/downstream-token"
],
"readsPerStart": 2,
"startsPerDay": { "p50": 14, "p99": 61 },
"sourceRanges": ["10.40.0.0/16"],
"hoursSeen": [9, 10, 11, 12, 13, 14, 15, 16, 17],
"listCallsSeen": 0,
"jobNeedsNames": 2
}go deeper
The takeaway is that 'unusual' needs something to be unusual against. Know that the comparison is made per caller, not against a fixed number for everyone.
Be able to list the dimensions and say what each one catches: names, reads per start, starts per day, source, hour, listing. Explain why a single mean is a poor summary.
Show operating judgment: record the observation window, keep a spread, separate what the job needs from what the identity has done, and know that a baseline catches a departure only where it crosses a dimension you recorded.
The call is how much per-identity shape an estate can maintain honestly. Decide which dimensions are worth carrying across thousands of identities and where a coarser grouping is an acceptable loss of visibility.
## What a baseline actually is here A per-identity read baseline is a compact description of what this one caller's reads have looked like, built from the store's own record of reads and kept so that a new read can be compared against it. It is not a threshold and it is not a score. It is a shape, and its only job is to make the word "unusual" mean something specific for this identity rather than for the estate. The fleet in question makes this concrete: every worker reads exactly two values at start-up — a queue password and a downstream token — and never reads again. That is an unusually tight shape, which is what makes it valuable: almost any abuse of one of those credentials has to leave the shape to do anything. ## The fields, and the departure each one buys | Recorded field | Departure it makes visible | What it does not see | |---|---|---| | Set of names read | a read outside the job's need | more reads of the same two names | | Reads per start | a caller re-reading in a loop | one extra read spread over a week | | Starts per day, with spread | a fleet reading far more than it deploys | a slow, steady drift upwards | | Source ranges seen | the same credential used from elsewhere | a thief inside the fleet's own network | | Hours of day seen | a 3am read on a midday service | abuse during business hours | | List calls seen | a first-ever listing of a branch | a caller reading names it already knows | Two points about that table are worth saying out loud in an interview. First, **every row has a blind column** — no single dimension catches everything, which is why the baseline is a set of fields rather than one number. Second, the rows are not independent: a read from a new source at a new hour of a new name is one event crossing three dimensions, and that is the shape of a finding worth escalating, where any one alone is usually an explanation waiting to happen. ## Why it has to be per identity - An estate-wide average is dominated by whichever callers are busiest, and the worker you are looking for contributes a rounding error to it. - Different identities have honestly different shapes. A gateway that fetches per request and a worker that fetches twice at start cannot share a threshold without making one of them permanently noisy and the other permanently invisible. - The comparison you want to make is "unlike **itself**", not "unlike its peers" — a fleet of identical workers happens to give you both, but most estates are not that tidy. ## Record the window, not just the shape A baseline observed over one week of a newly deployed fleet has seen the deploy pattern of one week. It has not seen the quarterly batch, the disaster-recovery rehearsal, the annual key ceremony or the night the on-call engineer restarted everything. All of those are normal, and all of them will look like departures the first time they happen. So store the observation window alongside the shape, and treat the first departure in a dimension as a question rather than an alert. The discipline that makes this work in practice is: 1. Write down what the identity is **for** — what its job actually needs — before you look at what it did. If the recorded shape is wider than the job, that gap is itself the finding. 2. Keep the spread, not the mean. A 50th and a 99th percentile of starts per day tells you whether 40,000 reads is impossible or merely unusual; an average tells you neither. 3. Re-derive the shape when the fleet changes deliberately, and record that you did, so a later reader knows which change explains the step. ## What this leaves out on purpose The baseline says nothing about whether the read was good or bad. It says only that the read is or is not like this identity's other reads. It also depends entirely on the store's record carrying, per event, the caller identity, the source, the time, the name and the outcome — if any of those is missing, the corresponding dimension of the baseline cannot exist, and the honest answer to "could we have detected this?" is no. Getting that record produced and kept trustworthy is a different problem from reading shapes out of it, and it is worth separating the two in an interview answer rather than blurring them together. Finally: a baseline is not a control. Nothing about it stops a read. It converts a permitted read into a question, and the value of the whole exercise is how quickly and how specifically that question can be asked.
- Why keep a spread of starts per day rather than an average?Because the question you will actually ask is whether today's count is possible. A 50th and a 99th percentile answer that; a mean hides both the quiet days and the busy ones, so every deploy-heavy afternoon either looks like an incident or raises the bar until nothing does.
- The fleet moves to new address space. What happens to the baseline?Every worker reads from a source the baseline has never seen, so the source dimension fires fleet-wide at once. That pattern — all identities departing together, at a known change — is itself the tell. Re-derive the shape and record why it changed, so a later reader can explain the step.
- What does 'jobNeedsNames: 2' add that 'namesRead' does not?It records the intended need independently of observed behaviour. If the identity has read five names and the job needs two, the gap is a finding even though nothing departed — the observed shape has simply been wide all along, which a purely observational baseline would have learned as normal.
saying these in an interview costs you the question
- Builds one threshold for the whole estate instead of per identity
- Stores only a mean, so every busy afternoon looks like an incident
- Assumes a week-old baseline has seen everything normal
- Records the shape but not the window it was observed over
- Treats a baseline as a control that blocks reads
- Learns the observed shape as correct without checking the job's need