3. THE 3-DAY PLAN
Budget: Friday 6 focused hours; Saturday 6; Sunday 6 hours 40 minutes; Monday 2 hours. Gaps in the tables are meals/breaks, not hidden study time. Stop at the block boundary. Carry at most two unresolved errors forward; do not let one problem consume the day. Every timed attempt ends with a brief correctness invariant, complexity statement, and at least three edge cases. On non-mock drills, spend the last 5–10 minutes reviewing rather than looking up a solution mid-attempt.
Friday, October 23 — reliable Python + translate Zeval into testing engineering
| Time / duration |
Focus |
Exact work and completion target |
| 09:00–10:30 / 90 min |
Coding: maps, counts, arrays |
H5 Two Strings 20 min; L1 Two Sum 25 min; H9 Ransom Note 25 min; H6 Left Rotation 20 min. Use platform stubs, not a preferred local template. Check duplicate counts, repeated values, and rotation boundaries. Capture only mistakes in a short error log. |
| 10:45–12:00 / 75 min |
Coding: Python fluency |
H2: Counter/DefaultDict/Exceptions, 30 min total; H10 Merge the Tools!, 25 min; 20 min writing tiny input/output functions from memory (split, map, enumerate, dictionary updates, sorted tie-breaks, JSON exceptions). Contrast a HackerRank stdin driver with a supplied function stub. No new algorithm topics. |
| 13:00–14:15 / 75 min |
Interview/QA bridge: pytest |
Complete P2 using D1. Produce a passing suite and one observed failure from the deliberate wrong implementation. Explain fixture isolation, parametrization, runner versus scorer, and test levels in terms of Zeval. |
| 14:30–15:30 / 60 min |
Coding: practical automation |
P1 Log Summary 30 min; P5 Paged Results API 30 min. Use local synthetic data and a stub only. If unfinished, preserve a correct smaller implementation and name the missing contract; do not pretend it is complete. |
| 15:45–16:45 / 60 min |
Interview: resume deep-dive |
Use the story guide below: 10 min opening pitch; 25 min Zeval architecture and one real case; 15 min meta-judge calibration and limitations; 10 min record/replay an answer to “Why SDET rather than an algorithm role?” Say what was implemented, what is proposed, and what evidence exists. |
Friday output: Python error log; small pytest/API lab; a truthful 90-second opening; one 5-minute Zeval walkthrough. No need to polish slides or build a new product.
Saturday, October 24 — algorithm coverage + reliability/cloud vocabulary
| Time / duration |
Focus |
Exact work and completion target |
| 09:00–10:30 / 90 min |
Coding: window/search/SQL |
L2 Longest Substring 35 min; L4 Binary Search 25 min; L6 Combine Two Tables 15 min; L7 Duplicate Emails 15 min. Explain the abba window trap, search interval invariant, and unmatched join rows. Do not open H7/H8/L3. |
| 10:45–12:00 / 75 min |
Interview/QA bridge: flaky tests |
Complete P3 using D2. Distinguish order dependence from model nondeterminism. Produce one bug report: title, environment/version, minimal reproduction, expected/actual result, evidence, severity versus priority, suspected cause, fix, verification, regression coverage. |
| 13:00–14:00 / 60 min |
Interview/QA bridge: CI + containers |
D3 15 min; D4 10 min; 35 min mini-exercise below. Explain what would block a pull request, what runs nightly, and what artifacts make a failure actionable. This is a new lab, not historical Ztalk CI experience. |
| 14:15–15:30 / 75 min |
Interview/QA bridge: Kubernetes + faults |
D5 and vocabulary 20 min; local manifest exercise 25 min; fault-injection test matrix 30 min. Learn to describe a deployment and diagnose symptoms—not administer a cluster. Use the concrete instructions below. |
| 15:45–16:45 / 60 min |
Interview: services, performance, failure analysis |
ztalk-mcp 20 min; Azure voice harness 15 min; Axera/Bosch 15 min; gap answers and two interviewer questions 10 min. Select real episodes and verify which outcomes/metrics you can honestly defend. |
CI/container mini-exercise (35 minutes, inside the 13:00 block). Draft a workflow with a pull-request trigger and a job containing checkout → setup Python → install test dependencies → python -m pytest -q --junitxml=results.xml → upload the report even on failure. The pytest failure must keep the job red; do not add continue-on-error. Separate a fast deterministic merge gate from slower live-model/nightly evaluations. Record commit, case-data version, configuration/model version, logs, and per-case results for reproducibility. Never commit secrets; distinguish cache from diagnostic artifacts.
Then create a minimal Dockerfile for the synthetic lab: Python base image, work directory, copy test dependencies, install them, copy lab files, and default command python -m pytest -q. Build and run it locally if Docker is already installed; confirm its exit status reflects test success/failure. For reproducibility, understand pinned dependencies and immutable image digests rather than assuming a moving tag is fixed. No registry push or deployment is needed. Cap Docker setup troubleshooting at 10 minutes: if unavailable, run the exact test command in a clean virtual environment and explain the Dockerfile line by line. Report this honestly as a container design walkthrough, not a successful container run. Know that containers share the host kernel (Docker Desktop on macOS supplies a Linux VM), published ports differ from exposed metadata, and persistent data needs explicit storage.
Kubernetes mini-exercise (25 minutes, inside the 14:15 block). Write a local YAML manifest containing a Deployment for a hypothetical eval-api image with two replicas, matching selector/Pod labels, an HTTP readiness probe on /ready, and CPU/memory requests and limits; add a Service whose selector matches those Pods. Use an installed YAML parser to load the document and assert the selectors match and replicas equals two; this is structural validation only, not Kubernetes schema validation or a live deployment. If no parser is available, use a small JSON manifest (valid Kubernetes input) and Python's json module for the same checks. Do not spend the afternoon installing a cluster. If kubectl and a local disposable cluster already exist, inspect a harmless local example; never target a shared cluster.
Learn exactly these terms: Pod; Deployment/ReplicaSet; Service; namespace; ConfigMap versus Secret (base64 is not encryption); Job for batch eval runs; requests versus limits; readiness versus liveness versus startup probes; rolling update/rollback; Pending, CrashLoopBackOff, and OOMKilled. Be able to say what kubectl get pods, describe pod, logs, and rollout status would help inspect. Readiness failure removes traffic eligibility; liveness is not a substitute for dependency health and can cause restart storms. Admission policies, operators, Helm, cluster networking internals, and production operations are out of scope.
Fault-injection mini-exercise (30 minutes, same block). Extend the P5 stub for a bounded timeout and intermittent 503. Write a five-row matrix: tool timeout; 429/rate limit; malformed payload; one replica restart; memory pressure. For each, state fault injection method (stub or hypothetical local container action), expected bounded degradation, observed signal (latency/error/retry count), and recovery criterion. Execute the two stub cases; treat replica restart and memory pressure as proposed tests unless actually exercised locally. Explain no duplicate side effects, bounded queues/retries, and how readiness affects routing. Distinguish functional correctness, load capacity, stress limits, soak stability, and recovery testing.
Sunday, October 25 — dress rehearsal, immediate debrief, targeted repair
| Time / duration |
Focus |
Exact work and completion target |
| 09:00–10:00 / 60 min |
Coding: repair, not expansion |
Re-solve Friday/Saturday's two weakest already attempted problems, 25 min each; 10 min compare error patterns. If none remain, re-solve L2 and P1 from blank. L5 may replace the last 20 min only if the core patterns are secure. Keep H7/H8/L3 unseen. |
| 10:15–11:15 / 60 min |
Interview: full story coverage |
Zeval/meta-judge 20 min; MCP reliability 15 min; Axera/Azure 15 min; honest Kubernetes/QA gap answers 10 min. Use the question bank below. Practice follow-up questions, not memorized speeches. |
| 11:30–12:15 / 45 min |
Fundamentals + setup |
P4 closed-book recall 20 min; 10 min review misses using D3–D5/H2; 15 min confirm logins, Python selection, Chrome/VPN-off access, and Teams microphone/camera/screen share. Load only the mock problem statements at 14:00. Lunch and rest until then. |
| 14:00–15:35 / 95 min |
The one full timed coding mock |
Exact set: H8 Sparse Arrays + H7 Balanced Brackets + L3 Merge Intervals, in that order. Follow the minute-by-minute rules below. |
| 15:35–16:25 / 50 min |
Interview rehearsal with no transition gap |
5 min introduction; 20 min explain mock solutions; 15 min Zeval/meta-judge/MCP questions; 5 min gaps; 5 min questions for interviewer. Speak aloud to a person or record yourself. Do not inspect editorials first. |
| 16:40–18:10 / 90 min |
Same-day mock review |
10 min classify failures; up to 50 min re-solve failed/weak questions without a per-question timer; 20 min test counterexamples and explain corrected invariants; 10 min produce Monday's repair list. If all passed, repair the weakest explanation and test adversarial inputs instead of adding a second mock. |
Exact 95-minute mock protocol
This is a three-task preparation stress test, not a prediction of the actual question count. Use HackerRank for H8/H7 and LeetCode China for L3, with one uninterrupted external timer. This is a deliberate cross-platform approximation, not an official NVIDIA/HackerRank test. Use the published function signatures and constraints. Do not read solutions, discussions, tags, or hints beforehand. If you already know a solution, still implement from blank and label the resulting score as familiarity-assisted rather than claiming a blind baseline.
| Elapsed time |
Action |
| 0–5 min |
Read all three statements and constraints; note return formats and rough approaches. |
| 5–25 min |
H8 Sparse Arrays: implement, run samples/custom cases, submit. |
| 25–50 min |
H7 Balanced Brackets: implement, test prefixes/mismatches, submit. |
| 50–85 min |
L3 Merge Intervals: implement, test nested/touching/disjoint intervals, submit. |
| 85–95 min |
Revisit highest-value failure; check signatures/output; submit current best versions. Hard stop at 95. |
During the debrief, explain intended complexity: Sparse Arrays linear counting plus query lookups (with string hashing costs acknowledged); Balanced Brackets linear time and up to linear stack space; Merge Intervals sorting-dominated time and result/storage costs. Do not claim constant memory for a Python solution that creates slices, a sorted copy, or an output list.
Review method: save each failure as symptom → smallest counterexample → wrong assumption → correct invariant → regression case. Classify reading/contract, algorithm, Python API, boundary, complexity, or time-management errors. Try the untimed re-solve first. If still blocked after a genuine attempt, read a minimal explanation, close it, then rebuild from blank; mark that attempt as assisted. For every corrected solution, run an input that would reject the original wrong approach—not merely another sample. Record actual minutes and accepted/failed submissions; do not infer a company pass threshold from this mock.
Monday, October 26 — light taper, 2 hours only
| Time / duration |
Focus |
Exact work and completion target |
| 09:30–10:00 / 30 min |
Coding confidence |
Re-solve one Sunday repair item from blank, 20 min; verbally explain its invariant and edge cases, 10 min. If no repair item exists, use H1 Plus Minus and Mini-Max Sum, 10 min each, then 10 min review. No new hard problem. |
| 10:15–10:45 / 30 min |
Interview confidence |
Opening pitch 5 min; Zeval/meta-judge 10 min; one MCP/Axera story 10 min; honest gap statement 5 min. Use the final resume as the source of truth. |
| 14:00–14:30 / 30 min |
Environment / schedule |
Chrome and platform access with VPN off; Teams camera/microphone/speaker check; rehearse share/unshare of one harmless window; check power/network and invitation timezone. Resolve the 15:35 handoff with recruiter if not yet clarified. Do not start the real assessment or consume its attempt. |
| 16:00–16:30 / 30 min |
Final recall / pack |
Review error log and P4 for 15 min; review test-day checklist and prepare a clear desk for 15 min. Stop preparation afterward; normal dinner and a full night's sleep. |
Interview story guide: real experience, testing vocabulary
90-second positioning: “I am an AI algorithm engineer who has moved toward evaluating and improving the reliability of agent systems. At Ztalk I created Zeval around curated case snapshots, explicit deterministic metrics, and a calibrated analysis meta-agent. That work exposed the need for repeatable evidence access, which led to a shared stateless MCP service. Earlier computer-vision work at Axera and Bosch trained me to investigate failure modes and dataset coverage. My strongest fit is AI-agent evaluation, failure analysis, and test tooling; I am building the conventional pytest/CI/container vocabulary around that experience, and I would not claim production Kubernetes ownership.” Adapt wording to your own voice.
Zeval in SDET terms: curated case snapshots → regression fixtures; explicit verdict/evidence/remediation metrics → test oracles; judge calibration → oracle validation; case-level analysis → defect triage; versioned artifacts and reproducible execution → framework design. These are mappings, not proof that Zeval already has every classic QA feature. Explain which are implemented, which have analogues, and which are improvements you would make.
Preserve the exact calibration story: the collecting Codex agent helped curate the dataset and supplied per-case judgments. The Evaluator Analysis Meta-Agent was calibrated against those judgments so evaluation could continue after that collecting agent's session ended. Do not call those judgments independent human ground truth, claim formal inter-rater reliability measurements you did not run, or imply calibration makes the judge infallible. Explain the risk of shared blind spots, rubric overfitting, leakage, and model drift. Propose human adjudication and a held-out case set as improvements if they are not already implemented.
ztalk-mcp in SDET terms: a reusable evidence/tool interface can enable contract testing, isolated clients, repeatable fixtures, and centralized observability. Be ready to distinguish stateless protocol handling from persistence in databases, registries, or downstream services. Your resume states MCP 2026-07-28 stateless specification plus a Git-based agent-plugin registry; describe the design you actually built rather than inventing specification details. Explain tool schemas, request context/auth boundaries, version compatibility, timeouts, errors, and registry revision pinning where those really exist. If a mechanism is missing, say how you would test/add it.
For each story, prepare context → failure/risk → your decision and implementation → observed result → limitation/next test. Use real numbers only if you can explain their source, denominator, baseline, and measurement window. A qualitative result is better than a fabricated percentage.
| Likely interview question |
Background story to trigger; what a strong answer must contain |
| “Design a test framework for an AI agent.” |
Zeval. Case snapshots, adapters, deterministic assertions, semantic judge, result schema, artifacts, test levels, versioning, and separation of test-data failures from agent failures. Sketch a representative case flowing through the system. |
| “How did you validate your evaluator?” |
Meta-judge calibration. Collecting agent's per-case judgments, rubric, mismatch analysis, persistence beyond the session, and limitations. Propose held-out/human review if not done. Agreement with another agent is not the same as correctness. |
| “What do the three metrics actually measure?” |
Zeval metrics. Verdict correctness, evidence-consultation completeness, remediation-route agreement. Give one concrete, anonymized example of each, its expected reference, denominator, and a case where the metrics disagree. Do not silently substitute a single overall accuracy score. |
| “A nightly eval drops by 8 points. Is it a regression?” |
MyQA/Zeval. First verify comparable cases/configurations/model/tool/data versions; pair results by case; inspect subgroup deltas, repeat controlled runs, separate harness/infrastructure issues from product behavior. The 8 points are hypothetical, not a claimed project event. |
| “How do you handle flaky LLM tests?” |
Eval/regression thinking plus P3. Identify source of variation, control fixtures/configuration, retain raw traces, repeated measurement where justified, stable deterministic gates plus separate semantic monitoring. Temperature zero alone does not guarantee reproducibility. |
| “How would you use AI to generate tests or optimize coverage?” |
Collecting agent / AutoResearch loops. Generate candidates from uncovered behaviors and historical failures, validate expected results, deduplicate, preserve a fixed holdout, and measure useful defect discovery versus review cost. Do not let the generator become its own unchecked oracle. |
| “Why make MCP stateless? What can still leak?” |
ztalk-mcp. Actual request context, isolation, multiple clients, external state, schema errors, auth, retries, timeouts, and registry compatibility. A proposed cross-client isolation test is more persuasive than “stateless means no bugs.” |
| “A tool call times out after causing a side effect. Retry?” |
ztalk-mcp / P5. Unknown outcome, idempotency/deduplication or outcome lookup, bounded retries, deadline propagation, auditability. Do not assume every tool is a read or safe to repeat. |
| “Design a performance and reliability test.” |
Azure voice-agent harness. Actual workload, concurrency, warm-up, latency distribution/tail, time to first useful response where relevant, throughput, errors, instrumentation, and bottleneck isolation. Distinguish measured facts from a proposed load/soak/fault plan. |
| “Tell me about a difficult defect and its lifecycle.” |
Axera failure analysis. A real detection/annotation/ISP failure, minimal reproducible evidence, stratification by conditions, root-cause investigation, fix owner, verification, and regression cases. Explain severity versus scheduling priority. |
| “How would you improve test-data coverage?” |
Axera plus Bosch. Failure taxonomy, rare conditions, representative slices, annotation quality, Blender/CAD synthetic data, and domain-gap checks against real samples. Coverage is not just more cases or higher line coverage. |
| “How would you put this into CI and Kubernetes?” |
Zeval plus Saturday lab. Fast deterministic PR gate, heavier integration/nightly runs, artifacts and failure status, containerized runner, Job versus service Deployment, probes/resources. Explicitly separate proposed architecture from hands-on production experience. |
| “You are an algorithm engineer; where is your QA experience?” |
Whole resume. Evaluation oracles, regression cases, failure analysis, automation, and performance harnesses are genuine. Acknowledge the classic-framework/operations gap directly; explain the concrete bridge without claiming the JD's five years of conventional QA ownership. |
| “Explain your research or a technical trade-off deeply.” |
TU Berlin / ICARM or Bosch. Choose one method you can derive and one limitation you observed. Keep this a backup story; do not displace the role's evaluation/tooling focus with an unrelated model lecture. |
Questions to ask NVIDIA (choose two): “What agent failures are most costly today, and how are ground truth and release gates defined?” “How much of this role is framework development versus live-system reliability testing?” “What test infrastructure exists already, and what would success in the first 90 days look like?”