8090 interview field guide · mock 16 of 20

A Lead Is Not a Verdict

Design a reproducible Medicaid fraud, waste, and abuse analytics platform over hundreds of millions of rows—without drowning investigators or turning anomalies into accusations.

Invented rehearsal scenario · not a leaked question
30 minrealistic spoken transcript
12 Qsinterviewer prompts
250M rows/batchmock workload
2 drillsdomain deep dives

↗ Read the evidence-grounded 8090 company research

Opening prompt

The interviewer gives a deliberately broad application problem. The candidate creates structure before drawing boxes.

InterviewerStarting question

Design a platform that ingests a monthly Medicaid claims snapshot with more than 200 million rows, enriches it, runs deterministic rules, supervised models, temporal statistics, and provider-beneficiary network analysis, then gives investigators a prioritized case queue. Every score must be reproducible and false positives are expensive.

Candidate

I’ll begin with one ethical and architectural boundary: a score creates an investigative lead, not a payment denial or fraud determination. Humans decide next steps using source evidence and policy. I need the batch deadline, source update semantics, state-program isolation, investigator capacity, labels, appeal/correction path, and cost ratio of missed abuse versus needless investigation.

The core artifact is a signed batch manifest that freezes input partitions, code, rules, features, graphs, models, calibration, and quality policy. Derived scores can be recomputed from it; the source snapshot and investigator decisions remain authoritative.

Scope the contract

Actors, boundaries, correctness, latency, and what deliberately waits for a later phase.

Interviewer

Scope a first release. State actors, functional requirements, SLOs, and exclusions.

Candidate

Actors: state data stewards, program-integrity analysts, investigators, supervisors, model/rule owners, appeals/compliance reviewers, platform operators, and auditors. Version one ingests claims, eligibility, provider, taxonomy, sanctions, and geography; profiles quality; creates point-in-time features; executes four detector families; combines calibrated evidence; groups related hits into leads; enforces queue budgets and conflicts; supports notes, assignment, disposition, and evidence export; then learns only from adjudicated outcomes.

Mock SLOs: publish a 250M-row batch within 36 hours after inputs are complete; 99.5% batch success with deterministic resume; lead-list UI p95 under one second and evidence drill-down p95 under three; exact score replay for seven years. Out of scope: real-time claim blocking, criminal adjudication, provider outreach, and a universal cross-state identity graph. Those get explicit interfaces and legal review.

Actors

Data stewards, analysts, investigators, supervisors, rule/model owners, compliance, auditors, and platform SREs.

Functional

Snapshot ingest, quality/enrichment, rule/statistical/ML/graph detectors, composite receipts, lead grouping, queue, disposition.

Correctness

Lead ≠ verdict; point-in-time features; exact score replay; corrections supersede; source evidence preserved.

NFR

250M rows in 36 h, 99.5% batch success, UI p95 <1 s, evidence p95 <3 s, seven-year reproducibility.

Security

Program isolation, FTI/PHI controls, least privilege, purpose binding, break-glass, signed exports.

Out of scope

Real-time claim denial, fraud adjudication, criminal referral automation, universal cross-state identity graph.

Back-of-the-envelope math

These numbers are supplied mock constraints. Change them to see where the design bends.

Interviewer

Assume 250 million claim lines, 5,000 rows/second per worker, a 36-hour window, 1% raw flag rate, 500 investigators, and 20 cases per investigator per day. Quantify it.

Candidate

At perfect utilization one worker needs 50,000 seconds, or 13.9 hours, to scan all rows—so throughput math alone says one worker fits 36 hours. With 50% effective duty cycle and 50% failure/headroom, the one-pass equivalent rounds up to two workers. That deceptively small result ignores joins, multiple detector passes, shuffle, skew, retries, and roughly four feature facts per row; in practice shuffle partitions number in the hundreds for parallel stages and skew isolation, not because raw scan bandwidth alone requires them.

The bigger constraint is decisions: 1% produces 2.5 million raw hits, while investigators can close only 10,000 cases/day. We need grouping, suppression, calibrated risk, diversity/coverage constraints, and a fixed intake budget. Optimizing detector recall without modeling human service capacity makes the queue unstable.

Batch throughput versus investigator service capacity

scan-equivalent workers
raw hits/batch
investigator cases/day
raw-hit ÷ daily capacity
Move a control to recalculate.
workers = rows ÷ (window-sec × rows/sec/worker × 50% duty) × 1.5 headroom; overload = raw leads ÷ daily investigator capacity

Data, keys, and APIs

Names turn ambiguous boxes into durable contracts. The primary keys below are part of the answer.

Interviewer

Show the data model and APIs. How do I rerun the exact score from six months ago?

Candidate

A BatchManifest contains source object digests and row counts, schema mapping, partition list, quality-policy version, code image digest, enrichment reference snapshots, rule bundle, feature definitions, model/calibrator hashes, graph projection version, and random seed. Each ScoreReceipt records detector outputs, feature snapshot digest, composite formula, confidence/quality, and lineage to claim IDs. We never overwrite a score; correction creates a superseding batch.

Claims use source-stable claim-line IDs plus program namespace. Feature keys include as_of to prevent future leakage. Rule hits store clause/version and operands; model scores store feature-vector digest; graph scores store projection and component/community ID. APIs expose batch publication, lead search, evidence, assignment/lease, disposition, and reproducibility export. Interactive reads come from materialized case/lead stores, not the batch lake.

Records and access paths

RecordPrimary / idempotency keyImportant immutable fieldsMain access path
BatchManifest(program_id, batch_id)source/partition digests, schemas, code/rule/model/graph manifests, seedpublication, replay, batch comparison
CanonicalClaim(program_id, claim_line_id, source_version)service time, provider/member IDs, amounts, quality flagspartition by period; evidence by lead
FeatureVector(entity_id, as_of, feature_set_version)values, windows, reference digests, quality scoremodel inference; audit by entity/time
DetectorReceipt(batch_id, entity_id, detector_id)rule operands or model/graph score, version, calibration, evidence IDsgroup by entity; reproduce score
Lead(program_id, lead_id, version)entity set, score components, queue policy, rank reasons, supersessionqueue by skill/status/priority
CaseDisposition(case_id, disposition_version)investigator, evidence viewed, outcome, reason, maturity, supervisorfeedback/evaluation; appeals
QueueLease(queue_id, lead_id)assignee, expires_at, versionatomic claim/renew/release

External contract

POST /v1/programs/{p}/batches                 manifest + source digests
POST /v1/batches/{id}/seal                      expected source control totals
POST /v1/batches/{id}/publish                   If-Match: COMPLETED
GET  /v1/leads?queue=&status=&cursor=            stable rank cursor + policy version
POST /v1/leads/{id}:claim                       Idempotency-Key + lease TTL
GET  /v1/leads/{id}/evidence                    source rows + detector receipts
POST /v1/cases/{id}/dispositions                If-Match: case_version
GET  /v1/scores/{receipt_id}/reproduction       manifest + operands + tolerances
POST /v1/batches/{id}:supersede                 corrected_source_manifest

End-to-end architecture

Control truth stays authoritative; expensive or probabilistic work is asynchronous, bounded, and replayable.

Interviewer

Walk through the end-to-end architecture. Which parts are batch, streaming, and transactional?

Candidate

Source files land immutably in a program-specific object namespace. An intake service verifies checksums, schemas, counts, periods, and completeness before it seals the manifest. A batch orchestrator builds columnar canonical tables, quarantine tables, point-in-time enrichments, and quality reports. Detector jobs read the same frozen snapshot: deterministic SQL/rules, statistical windows, supervised model inference, and a bounded graph projection.

A score combiner calibrates by program/slice, applies data-quality penalties, and groups claim-level hits into provider/beneficiary/time-window lead entities. A queue policy enforces top-K capacity, minimum evidence, diversity, exclusions, and conflict-of-interest routing. Publishing the batch and an outbox event is transactional; a serving index feeds the full-stack investigator UI. Dispositions flow to a governed label store only after supervisory adjudication. Streaming is limited to job events, audit, and optional source arrival—not score truth.

Batch intelligence to bounded investigation Source landinghash + controlsprogram boundaryCanonical lakequality + point-in-timecolumnar factsDetector fleetrules · ML · graphsame frozen batchLead buildercalibrate + groupcapacity policyCase servicelease + evidencehuman disposition Reproducibility substratebatch manifests · feature registry · score receiptslineage · label governance · audit · serving rebuild

Make every score reproducible

A result is the immutable function of a frozen source set, code, features, models, graph projection, and policy.

Interviewer

Deep dive on reproducibility. Reference tables are corrected, code dependencies move, and graph algorithms can be nondeterministic.

Candidate

Every reference lookup is bitemporal and pinned to a source digest; “latest provider file” is forbidden in a published run. The container image and dependency lockfile are content-addressed. Rule DSL compiles to a stored plan; feature definitions include null/imputation and window semantics. Stable ordering, fixed seeds, deterministic reducers, and explicit tie-breaking control graph/model nondeterminism. Hardware/library differences are either constrained by the release manifest or accepted within a documented numeric tolerance.

A replay mode reads the original manifest in an isolated namespace and writes a comparison report, never replacing history. We reconcile input row counts, partition hashes, feature aggregates, detector hit counts, lead counts, and a sample of per-entity receipts. An auditor can reconstruct one lead without recomputing all 250M rows because its evidence package contains source row IDs, feature operands, rule traces, and model/graph manifests.

Score receipt chain Source rowsstable line IDsinput digestsFeaturespoint-in-timenull semanticsDetectorsrule/model/graphversioned outputsCombinercalibratedquality penaltyLeadgroup + rankqueue policy Every transition records actor, input version, output version, reason, and timestamp.
score_receipt = {
  batch_id, entity_id, source_row_ids[], feature_vector_digest,
  rule_hits[{rule_version, operands}], model_scores[{model, calibrator}],
  graph_scores[{projection, component, seed}], quality_penalty,
  composite_policy_version, final_score, created_at
}

Optimize investigative yield, not raw flags

Selection bias, duplicate hits, skill constraints, and finite case service rate belong in the algorithm.

Interviewer

Deep dive on false-positive controls and investigator queues. Labels are biased because investigators mostly reviewed the old model’s top scores.

Candidate

I keep detector scores separate instead of collapsing them into an unexplained “fraud probability.” The combiner calibrates on adjudicated outcomes, but selection bias means observed labels are missing-not-at-random. We reserve a small random or stratified exploration sample, use inverse-propensity analysis where appropriate, and track label source and maturity. Unreviewed does not mean negative.

Queueing is a service-design problem: group duplicate claim hits into one coherent lead; suppress known explained patterns; respect open-case locks and investigator skills; cap provider exposure; reserve slots for high-severity policy rules and exploration; then rank by expected recoverable value, harm, evidence strength, novelty, and age. Supervisors see why a case ranked, what was suppressed, and slice-level yield. Queue changes are policy versions, not hidden model tweaks.

Capacity-aware lead funnel 2.5M raw hitsdetector outputsnot casesGroup / suppresssame episodeknown explanationsRisk + evidencecalibratedexpected valueQueue budgetskill + diversityexploration slots10K/dayhuman decisionsadjudicated labels Every transition records actor, input version, output version, reason, and timestamp.
ControlFailure it prevents
Episode/entity groupingOne pattern flooding hundreds of duplicate claim-line leads.
Open-case and known-explanation suppressionRe-investigating already resolved behavior.
Reserved exploration sampleTraining only on yesterday’s model-selected positives.
Capacity and skill budgetAn unstable queue whose arrival rate exceeds service rate.
Evidence/rank explanationOpaque accusation and reviewer anchoring.

Failure injection I

The design changes under pressure. The candidate preserves correctness before convenience.

InterviewerFailure injection

Eligibility corrections arrive after publication and affect 8% of members. Half the investigators have already acted on leads. What do you do?

Candidate

The input manifest had a completeness watermark; if it was violated, the published batch is marked impaired but remains reproducible. I ingest the correction as a new source version, compute lineage-based impact for affected member/time partitions, and build superseding batch B42. We do not mutate scores under open cases.

For untouched leads, queue policy withdraws or replaces them with an explicit reason. For acted-on cases, we attach a material-change alert, recomputed evidence, and required supervisor acknowledgment; downstream financial action needs its own reconciliation. The data steward receives a completeness incident. Future publication can require two-source control totals and an explicit waiver when the source misses its watermark.

Failure injection II

Partial failure, stale inputs, duplication, and unknown external outcomes are normal distributed states.

InterviewerFailure injection

A dominant clearinghouse creates a graph supernode; one partition runs for 18 hours while the rest finish. Network risk suddenly flags 40% of providers.

Candidate

That is likely topology and compute skew, not a fraud epidemic. The graph projection excludes or downweights known infrastructural hubs by typed edge semantics; it does not create a naive graph where any shared intermediary implies collusion. We monitor degree distributions and component growth before scoring. Heavy keys get salted partitions, two-stage aggregation, degree caps, and a dedicated skew lane.

I trip a detector-level circuit breaker when hit-rate or distribution shift exceeds bounds. Rules and other models can publish, but graph-derived leads stay shadowed until reviewed. A backfill runs on a corrected projection version; score receipts make the change explicit. We never silently lower a threshold just to fit the deadline.

Security and operations

Tenant isolation, backpressure, observability, evaluation, SLOs, recovery, and cost belong in the core design.

Interviewer

Cover idempotency, backpressure, state isolation, security, observability, and DR.

Candidate

Each stage key is (program,batch,input_partition_digest,stage_version); immutable outputs and a commit manifest make retries safe. Scheduler queues have per-program quotas, stage concurrency, retry budgets, straggler detection, and separate urgent/live versus historical backfill pools. Publication uses compare-and-set on batch state plus an outbox. Investigator assignment uses leases and optimistic versioning so two users cannot dispose one case concurrently.

State programs have separate object prefixes/accounts, keys, catalogs, serving indexes, and worker identities where contracts require. ABAC combines program, role, purpose, case assignment, and break-glass; analytical jobs use tokenized identities where possible, and FTI/PHI never enters metrics. Retention and legal-hold policy separately covers raw claims, features, graph projections, case notes, label sets, exports, backups, and derived indexes; deletion or correction traverses lineage rather than editing a published score receipt. Monitor input completeness, row quarantine, stage critical path, skew, cost, score drift, calibration, flags and confirmed yield by slice, queue age/capacity, overrides, audit export, and privileged access. Replicate manifests/objects only into authorized regions, rebuild serving stores from published batches, and rehearse regional restore with RPO/RTO and tombstone-reconciliation evidence.

Data SLOs

Completeness watermark, row/control totals, quarantine rate, reference freshness, lineage gaps.

Pipeline SLOs

Critical-path age, partition skew, retry/DLQ, cost per million rows, publish deadline, reproducibility mismatch.

Risk quality

Calibration, precision/yield, confirmed value, false-positive/appeal, drift, hit rate, fairness by policy-relevant slice.

Queue health

Arrival/service rate, age, skill fragmentation, lease conflicts, duplicate/suppressed leads, exploration coverage.

Isolation

Program-specific accounts/namespaces/keys/catalogs/indexes, ABAC by role/purpose/case, FTI/PHI-redacted telemetry.

Recovery

Immutable inputs and manifests replicated; serving indexes rebuilt; published batch pointer rolled back; restore exercised.

Rollout and trade-offs

A credible production answer defines how it earns trust and how it retreats safely.

Interviewer

Rollout plan and the most important trade-off?

Candidate

Start with data-quality reports; then replay historical periods; run rules/model/graph in shadow beside the old process; show evidence to a small investigator cohort without changing queue rank; canary queue policy with matched control investigators; expand only when yield, reviewer time, subgroup fairness, recoverable value, reproducibility, and appeals stay within gates. Automatic adverse action remains out of scope.

The trade-off is detector recall versus constrained human attention and false accusation. A giant uncalibrated queue looks “sensitive” but wastes investigators and damages providers. I prefer an explicit capacity budget, diverse evidence, honest uncertainty, and exploration designed to learn about blind spots.

  1. Publish data-quality-only reports.
  2. Replay multiple historical periods with frozen labels and leakage tests.
  3. Shadow all detectors beside the existing workflow.
  4. Show evidence without changing investigator rank.
  5. Canary queue policy with matched control groups and supervisor review.
  6. Reserve random/stratified exploration to measure blind spots.
  7. Expand by detector/program only when yield, fairness, appeals, queue, and reproducibility pass.
  8. Keep adverse automatic action outside the system boundary.

One-minute spoken recap

Practice this synthesis until it sounds conversational rather than memorized.

Interviewer

One-minute summary.

Candidate

I’ll connect frozen batch truth, explainable detector receipts, bounded queues, and safe correction.

The source of truth is a sealed batch manifest, not a mutable score table. Program-isolated input snapshots produce point-in-time features and separate rule, statistical, model, and graph receipts. A calibrated combiner groups repeated hits into coherent leads, applies data-quality penalties, and admits only a capacity-aware, diverse, explainable budget to investigator queues. Assignments use leases; dispositions become labels only after adjudication. Late corrections create superseding batches and explicit impact work. Typed graph projections and skew controls prevent infrastructure hubs from masquerading as suspicious networks. The system optimizes confirmed investigative value under finite human capacity—not raw flags—and never turns a lead into an automatic fraud verdict.

Reference shelf

Definitions, traps, and the final checklist stay outside the timed mock.

Adjudicated label
An outcome reviewed under a defined policy, not merely an investigator click or unreviewed negative.
Bitemporal reference
A table tracking both real-world effective time and system-recorded time.
Calibration
Agreement between predicted probability and observed outcome frequency.
Composite score
A policy-governed combination of distinct detector evidence, not necessarily a fraud probability.
Data-quality penalty
Explicit reduction or abstention when source completeness makes a score less trustworthy.
Feature leakage
Using information unavailable at the historical decision time, producing unrealistically good evaluation.
Graph projection
A typed selection of nodes/edges built for a specific analysis; not every shared identifier belongs.
Lead
A reviewable evidence package suggesting investigation, not an adjudication.
MNAR
Missing not at random: labels are absent in a way related to the old selection process.
Point-in-time feature
A value computed using only information available as of a specified timestamp.
Score receipt
The versions, operands, evidence, and transformations needed to explain/reproduce one score.
Straggler
A slow partition or task that delays a whole distributed stage.
  1. Calling every outlier fraud.
  2. Counting unreviewed entities as negative training labels.
  3. Using current reference tables in a historical replay.
  4. Ranking 2.5M hits without modeling investigator service capacity.
  5. Building an untyped graph where shared clearinghouses imply collusion.
  6. Publishing aggregate precision while one provider or region collapses.
  7. Overwriting scores after a late source correction.
  8. Claiming exactly-once batch work instead of idempotent stage commits.
  9. Mixing state-program PHI in shared caches, logs, or indexes.
  10. Letting a queue threshold drift outside version control.
  11. Measuring MAE/AUC without case yield, calibration, or business cost.
  12. Allowing investigators to see model score before a blinded quality study.
  • Clarified actors, authority, business harm, and out-of-scope.
  • Did correct BOTEC and named the variable that changes the architecture.
  • Defined stable IDs, versions, access paths, and idempotency keys.
  • Separated authoritative state from derived indexes and model output.
  • Explained consistency, retries, backpressure, and unknown outcomes.
  • Revised the design after both failure injections.
  • Covered tenant isolation, secrets, least privilege, deletion, and audit.
  • Named golden signals, domain quality metrics, rollout gates, and rollback.