Prev: 18. New IEs · Next: 20. Stack defense

Intern and project prep

This is a rehearsal chapter for Adarsh Vishwakarma. Read it as yourself. R1 was 13 Aug 2026. R2 was 18 Aug 2026. R3 is done. The leftover hour lives in the Round 4 prep book. This file is the intern and project Q&A companion: what they might ask, what you say, what a follow-up looks like, which number belongs on which product. Live Code is Java. Job 10454435 still has no public write-up that names a live-round question. Other people’s prompts show shape. They are not a list for this Job ID. Unnamed stays unnamed.

0. How to use this chapter

Each card has the same spine. What they might ask is the prompt. What you say is the spoken answer — one project. They might ask next unpacks that same story. Keep straight is which fact lives where. Tighten is how to stop. Spoken Leadership Principle stories live in the Round 4 stories chapter. Mechanisms in more detail live in Round 4 projects and chapter 09.

What they might ask

IE-asked current-role and project walk shapes from other loops. Resume-derived answers. Other loop, not a forecast for Job 10454435.

What you say

I am Adarsh Vishwakarma. I finish a B.Tech in CSE at CUSAT in May 2026 (CGPA 8.42). I am a Software Developer Intern at IQVIA in Kochi, April 2026 to present: two FastAPI systems — LangGraph Deep Research across 200+ websites, and Hybrid RAG on 200+ page BRDs with Azure AI Search, GraphDB, and LangSmith. Before that, Ylogx from November 2024 to October 2025: production BI, SQL RAG, three-tier RLS, Redis, AWS. February to June 2024 I was core software on Team Horizon’s ROS2 rover, 17th of 80+ at ERC 2024. I can go deep on IQVIA retrieval, Ylogx isolation, or Horizon’s live costmap. Which do you want?

They might ask next

If they askYou answer
What do you do right now?IQVIA intern, Kochi, two systems, then stop. Current role is not a six-product dump.
Which intern ran longest in production?Ylogx, November 2024 to October 2025. That is a date, not a ranking speech.
They paste code after an LP-only inviteWrite Java. Other loops were told LP-only and still got DSA (LC 7406809, 6806195). Shape evidence, not a forecast.
Where is the leftover-hour script?r4/index.html — hour spine, stories, keep-straight. Use this chapter when they stay on one intern or project.

Keep straight

Tighten

Give a 60-second pitch: problem, architecture, one hard part, one resume metric. Stop. Let them pick the slice. Companions: Round 4 book, genuine STAR, Ylogx live path, stack defense, research bible, Answer-BIBLE.md.

1. Three internships — a timeline, not a contest

You had three internships at three times. Each job is a different product. If they ask which intern ran longest in production, answer with the dates: Ylogx, November 2024 to October 2025.

What they might ask

IE-asked current role (GFG leftover-hour shape, other loop). Resume-derived dates and bullets.

What you say

Horizon was February to June 2024: rover software under an ERC date that does not move. Ylogx was November 2024 to October 2025: a year of production BI — reports, SQL RAG, three-tier isolation in Postgres, Redis, AWS. IQVIA is April 2026 to present, Kochi: my current role, retrieval and evals on Deep Research and Hybrid RAG.

They might ask next

InternshipWhenWhat it wasWhat you ownedWhat you did not own
Team Horizon Feb 2024 – Jun 2024 · Kochi ROS2 rover software for ERC 2024 GStreamer 60 FPS, ZED 2 mapping, costmap fusion Team-lead title; rover hardware design; 17th place as a solo result
Ylogx Private Limited Nov 2024 – Oct 2025 · remote Full-stack AI business intelligence Report builder, LangChain SQL RAG, RLS/RBAC, Redis, dashboards, ECS/ALB/CloudFront A named SRE on-call title; EKS as the intern bullet; JVM/Spring
IQVIA Apr 2026 – present · Kochi Current role: research + Hybrid RAG LangGraph orchestration, ranking, GraphDB hops, LangSmith fail-if-no-span Building Azure AI Search itself; an IQVIA latency or uptime percent (none on the resume)

Keep straight

Tighten

Stop after the three jobs unless they pick one door. If they ask which project you are proud of, name one — Horizon 17th/80+ or GiftedBooks hours → 3–10 min are the usual two — then stop. Do not list six logos.

2. IQVIA — Software Developer Intern, Apr 2026–present, Kochi

Two FastAPI-backed LangGraph systems. Same discipline: typed state, tool isolation, cite-or-abstain, LangSmith. Different retrieval. Resume: Deep Research across 200+ websites; Hybrid RAG on 200+ page BRDs with Azure AI Search (Hybrid + Semantic) + GraphDB; LangSmith. No IQVIA % or latency.

Two systems, two 200+ numbers

This is the current-role pitch. Two products. Two different 200+ families. Then stop.

What they might ask

IE-asked current-role shape. Resume-derived systems and metrics.

What you say

Situation. I am a Software Developer Intern at IQVIA in Kochi. Analysts cannot treat the first web result as truth, and they cannot live inside 200+ page BRDs by stuffing a PDF into a context window.

Task. I architected two FastAPI-backed LangGraph systems, not a chat wrapper. Architected unpacks into modules I implemented: orchestration, ranking, hops, and evals.

Action. Deep Research: a planner writes a search plan into LangGraph typed state. Tool nodes fan out in parallel to Firecrawl, Bing, DuckDuckGo, and Google Playwright. Reducers append surviving documents, so a dead Playwright branch does not erase Bing. A ranker scores source quality, recency, and agreement. The writer synthesizes only from ranked evidence. Hybrid RAG: ingest a BRD once, chunk by headings and requirement IDs, index lexical fields plus vectors in Azure AI Search. One hybrid query. Azure semantic ranker reorders for meaning. If the question is ID, impact, or depends-on, a bounded GraphDB hop, then neighbor text from the search index. Cite-or-abstain on both writers. LangSmith traces node order and gold citation IDs.

Result. Research ranked across 200+ websites. Hybrid RAG processes 200+ page BRDs. Those two 200+ numbers are different families. The resume has no IQVIA latency or accuracy percent, so I stop.

In plain words

Open-web research fails by contradiction, empty scrapes, and first-hit confidence. BRD Q&A fails by missing clause IDs, stuffing the PDF, and citing the wrong annex. Same orchestration habits. Different retrieval.

Data flow

Deep Research:
query → planner state
     → Firecrawl / Bing / DuckDuckGo / Playwright (parallel)
     → append survivors + checkpoint
     → rank quality, recency, agreement
     → cite or abstain
     → LangSmith node trace

Hybrid RAG:
BRD ingest once → Azure lexical + vector
question → hybrid query → semantic rerank
        → optional GraphDB hop (1–2, visited-set)
        → small evidence set → cited answer or abstain
        → LangSmith gold citation IDs

They might ask next

If they askYou answer
Why four tools, not one scraper?Each fails differently. Firecrawl for crawlable HTML. Bing and DuckDuckGo as independent indexes. Playwright for DOM pages only. Parallel so one timeout does not erase the others.
Why not a linear LangChain chain?A sequential chain is a linked list of side effects. A Playwright timeout either aborts everything or leaves half-mutated state. There is no explicit edge for citation failure to return to retrieval.
What is graph state?Typed workflow data: query, documents, ranks, answer, errors. Nodes return partial updates. A checkpoint persists progress. A dead branch does not wipe survivors.
Can it loop forever?No. Retrieve → grade → retrieve has an explicit iteration cap, then escalate or abstain.
What is 200+ websites not?Coverage ranked. Not accuracy, not latency, not valAgent.
What is 200+ pages not?Document size on Hybrid RAG. Not website count. Not a latency SLA.
Why FastAPI, not a notebook?A service boundary: request in, traced run out. A notebook is a demo.

Keep straight

Tighten

Stop after the two systems and the two 200+ families. Let them pick Deep Research, Hybrid RAG, GraphDB, or LangSmith. If they already heard IQVIA, backup Learn/Invent stories are not a fourth trophy on the same intern — switch project when the LP already used this one.

GraphDB versus LangGraph

They share the word graph. They are not the same component. Mixing them is how the Hybrid RAG story falls apart.

What they might ask

Resume-derived intern bullet says GraphDB and LangGraph. Skills line says Graph DB (Neo4j).

What you say

LangGraph is workflow state: nodes, reducers, checkpoints, bounded cycles. It decides which retrieval mode to run and keeps a dead Playwright branch from erasing Bing. GraphDB is requirement-dependency storage beside Azure AI Search. “What breaks if this requirement changes” is an edge, not a cosine neighbor. I take a bounded hop — one or two, with a visited set — then fetch neighbor text from the search index. Graph answers structure. Azure answers citeable prose. The skills line says Graph DB (Neo4j). The internship bullet says GraphDB. I speak GraphDB. I do not fake a named cluster I operated.

They might ask next

If they askYou answer
Give a concrete hopREQ-1044 depends on REQ-880. Cosine may return a similar annex. The hop follows the edge, then Azure supplies the prose to cite.
Why bound the walk?Loading an entire connected component recreates stuffing 200+ pages into the prompt.
Who chooses lexical vs semantic vs hop?LangGraph adaptive retrieval. The writer sees a small evidence set, not 200 pages.
Hybrid versus Semantic?Hybrid is lexical plus vector in one query. Semantic is Azure’s reranker over that candidate set. Two stages, two failures.

Keep straight

Tighten

One sentence each: LangGraph = control flow. GraphDB = dependency edges. Then stop unless they want the hop example.

LangSmith evals — fluent is not cited

A professional paragraph and a professional generated test can both cite the wrong section. Traces exist so you can tell whether the ranker, an empty scrape, or the writer failed.

What they might ask

IE-asked verify-GenAI shape in other loops. Resume-derived LangSmith, evals, test-case generation. The resume has no LangSmith pass-rate.

What you say

Situation. On Hybrid RAG, a fluent answer can still hang off the wrong annex. On Deep Research, an empty scrape can still feed a confident writer.

Task. Make failure visible. Sounding good is not the gate.

Action. LangSmith traces node order. Gold items carry expected citation IDs. Cite-or-abstain: no supporting span in retained chunks, no sentence. Test-case generation is itself a traced job. Humans spot-check a sample. Secrets and full confidential BRD bodies stay out of traces. Azure credentials live in env or a secret store.

Result. 200+ page BRDs processed with traces and generated tests. 200+ websites ranked with empty-scrape visibility. I have no pass-rate on the resume, so I do not invent one.

They might ask next

If they askYou answer
What is a supporting span?Overlap between the sentence I would ship and a retained chunk that actually contains that claim. Fluency without overlap fails the gate.
Empty scrape reached the writerThe trace should show an empty or boilerplate body. The writer must not convert that into a fact. Ranker rejects empty/boilerplate; citation grader may hop back with a cap.
Two high-ranked pages contradictAgreement is a ranking signal. Mirrors are not extra votes. The writer cites the disagreement or abstains. It does not average two policies into vague prose.
Give me a pass-rateThe resume has none. Ownership here is speaking the gate I actually have — fail if no span — not a number I do not have.
What never goes in traces?Full confidential BRD text, credentials, secrets. Query, chunk IDs, answer, expected citation IDs.

Keep straight

Tighten

Name the gate: fail if no supporting span. Name what stays out of traces. Stop. No invented gold-set size.

Conflict — hybrid versus vector-only

This is the IQVIA Backbone story. Disagree on retrieval. Commit on evals. You were an intern. You do not win by volume.

What they might ask

IE-asked Backbone / why-that-approach shapes. Resume-derived Hybrid + Semantic + GraphDB.

What you say

Situation. Hybrid RAG on confidential 200+ page BRDs. Vector-only is the fast demo. Similar embeddings are not coverage. Vector-only misses exact clause IDs such as REQ-1044. Keyword-only misses paraphrased policy. Stuffing invents citations to the wrong annex. “What breaks if this requirement changes” is a dependency edge.

Task. Get hybrid retrieval plus GraphDB hops accepted, then make the disagreement testable so it does not stay a taste argument.

Action. I named the miss: clause IDs and hops. I proposed Azure AI Search Hybrid + Semantic, a bounded GraphDB hop, and LangGraph choosing lexical versus semantic versus hop. I instrumented fail-if-no-span on LangSmith gold citation IDs. I committed on that eval. I did not keep relitigating after the gate existed.

Result. 200+ page BRDs on that path with traces and generated tests. No extra retrieval percentage. No fabricated win %.

They might ask next

If they askYou answer
Were you the decision maker?Intern. I named coverage failures, proposed the retrieval split, and put a span gate in the room. Commit was on evals, not on winning a title.
Why not a bigger vector top-k?Bigger k returns more similar prose. It does not follow an explicit dependency edge. A generated test can hang from the semantically closest annex.
Why not stuff 200+ pages?Tokens, wrong annex, invented citations. The writer must see a small evidence set.
Someone wanted QdrantQdrant is not on the resume. IQVIA intern retrieval is Azure AI Search + GraphDB. FAISS is a skills line, not this intern bullet.

Keep straight

Tighten

Disagree on the retrieval miss. Commit on the span gate. Result is 200+ page BRDs plus traces. Stop. If they already heard IQVIA for Invent or Learn, Backbone can still use this same intern only if they have not already spent three LPs here — otherwise switch to Ylogx RLS-in-DB.

Honest 10× on IQVIA

Scale talk is more of a mechanism you already shipped. The resume has no IQVIA QPS, bill, or latency percent.

What they might ask

Resume-derived mechanisms. Standard CS scale judgment without invented numbers.

What you say

I did not shard a research index, Azure, or a graph cluster. I have no IQVIA QPS, bill, or latency percent, so I will not add one. 10× is more of what already worked: cap fan-out, cache completed scrapes, snippets before full Playwright, resume from checkpoints, retrieve a small set, bound graph hops, grow a frozen gold and eval slice before adding a fifth tool. I do not re-embed a BRD on every question. I do not load an entire connected component into the prompt.

They might ask next

If they askYou answer
Playwright is expensiveBrowser/DOM pages only. Cache completed scrapes. Snippets before a full render. A dead Playwright branch must not erase Bing.
What must GenAI not do here?Invent page contents; unbounded loops; hallucinate a GraphDB edge; skip the span gate; log full confidential BRDs; average contradictory requirements into vague prose; count syndicated mirrors as independent confirmation.
What did you not own?Azure AI Search as a product. A named graph cluster. An IQVIA uptime percent.

Keep straight

Tighten

Say you did not shard. Name the same gates at larger size. Stop.

3. Ylogx — Software Developer Intern, Nov 2024–Oct 2025, remote

Year of production BI. Resume: 40% faster reports; 99.9% uptime; SQL RAG +65%; RLS + RBAC for 3 organizational tiers; Redis −35% bot DB latency; 30 dashboards +60% ops; sub-210 ms; CloudFront, ECS, Docker, ALB, Route 53. Chatbot is LangChain SQL RAG, not LangGraph.

RLS versus RBAC

Two different walls. RBAC answers “may this caller hit this route.” RLS answers “which rows exist for this database role.” App-only WHERE org_id = ? dies on the first missed JOIN or generated SQL that skips the helper.

What they might ask

Resume-derived RLS + RBAC, 3 tiers. Backbone backup if IQVIA hybrid-vs-vector already used.

What you say

Situation. Operators needed custom reports, a natural-language chatbot over warehouse facts, and live KPI tiles without one organizational tier reading another.

Task. Isolation that still holds when a JOIN is too broad or when the model emits SQL.

Action. NestJS enforces authentication and route-level RBAC. Postgres RLS enforces rows for three organizational tiers. Generated SQL runs read-only as the caller’s non-owner database role, allow-listed, parameterized, with time and row caps. The model never holds a table-owner connection. Redis keys carry tier and role so a cache hit is not a leak. Redis down falls back to Postgres as that role — never owner, never fail-open RLS. Literal tier names are not on the resume; I speak org/team/user-shaped levels without inventing labels.

Result. Three-tier RLS + RBAC as shipped. 99.9% is the serving/deploy family on this intern. I will not invent a sample size for the isolation fixtures.

They might ask next

If they askYou answer
Wrong-org JOINSyntactically valid SQL returns another organization’s rows through a mapping table. Defense: caller role + RLS on joined tables + deny fixtures. The model does not “remember org_id.”
Why RLS in the database?App-only WHERE dies on a missed JOIN, a copied handler, or generated SQL that skips the helper. HTTP 200 with a legal JOIN is still a leak.
What does RBAC still do?Row filters do not decide whether a caller may hit an admin export. That is route-level RBAC.
What did you not own?A named SRE title. Kafka. EKS as the intern bullet.

Keep straight

Tighten

RBAC at the API. RLS at the row. SQL runs as the caller role. Stop. Ownership LP primary can live here with 99.9%; do not also dump Redis, reports, and dashboards in the same spoken block unless they ask.

Redis −35% versus sub-210 ms

Two latency families on one intern. Mixing them is how the Dive Deep story falls apart.

What they might ask

Resume-derived Redis −35% bot DB; sub-210 ms dashboards. Dive Deep primary is Redis and RLS together if they want both walls.

What you say

Situation. Every natural-language turn was repeating schema and hot analytics against Postgres. Operators experienced that as “the model is thinking.”

Task. Cut bot-database work without turning Redis into a source of record or a cross-tier leak.

Action. Cache-aside on the bot path. Key = tier | role | query fingerprint | schema version. Hit returns only inside that isolation context. Miss: allow-listed schema, constrained SQL, execute as caller role, RLS still filters, then SET the safe payload. Redis down → Postgres as role. Private tenant JSON is not a CloudFront object.

Result. −35% bot DB latency via Redis. That number is not dashboard latency. sub-210 ms is dashboard serving with no LLM on that GET. I will not invent p95 or a TTL.

They might ask next

If they askYou answer
Cache without tierIdentical English (“top SKU”) shared across tiers is a leak, not a latency win. Isolation belongs on the key.
Why not a bigger RDS first?Repeated schema and hot queries were the bot-path cost. Redis cache-aside is the −35% family. Frugality primary can live here versus scaling the database first.
Is Redis the source of truth?No. Postgres is. Redis holds a safe payload. Fail closed on isolation, not fail open for speed.
Dive Deep — Redis only?If they want Dive Deep, speak Redis and RLS together: latency without a leak. Isolation without a cache that bypasses it.

Keep straight

Tighten

Name which number you are defending. If they already heard Redis for Frugality, Dive Deep still wants RLS in the same breath — or switch to IQVIA ranking contradiction as Dive Deep backup.

SQL RAG +65% — the model is the interface

Postgres is the calculation engine. Pasting warehouse rows into a prompt truncates data and invents totals. The model emits constrained SQL. It does not inherit row security the way an executed query can — RLS still has to sit on the role that runs that SQL.

What they might ask

Resume-derived LangChain SQL RAG, +65% analysis productivity. Customer Obsession backup if GiftedBooks already used.

What you say

A natural-language analytics question arrives with caller identity and organizational tier. Redis GET on a tier/role-scoped fingerprint. Miss: retrieve allow-listed schema and metric definitions; prompt constrained to SQL only. Parse and reject catalog probes, writes, unknown tables; time and row caps; parameterized. Execute read-only as the caller database role. RLS still filters rows if the JOIN is too broad. Return inspectable SQL plus the result. Cache the safe payload. Result on the resume is +65% data-analysis productivity. That is not model accuracy. I will not invent a sample size. The chatbot is LangChain SQL RAG. It is not LangGraph.

They might ask next

If they askYou answer
What must GenAI not do?Author RLS, assign roles, own credentials, run as table owner, execute writes from NL, replace SQL aggregation, decide whether a cache entry is authorized, calculate the 30 KPI tiles.
40% versus +65% versus +60%40% is faster report generation (builder path). +65% is SQL RAG analysis productivity. +60% is dashboard ops. Three families.
Inspectable SQLThe operator can see the query. Fluency is not the audit trail.

Keep straight

Tighten

NL → constrained SQL → caller role → RLS. +65%. Stop. If they want reports, that is the 40% builder path — a different card.

Thirty dashboards — no LLM on the GET

sub-210 ms dies the moment each tile waits on generation. The 30 KPI dashboards are deterministic REST plus Recharts.

What they might ask

Resume-derived 30 dashboards, +60% ops, sub-210 ms.

What you say

The browser loads JS from CloudFront. A view requests deterministic KPI JSON. ALB to NestJS: identity plus RBAC. Pooled Postgres with RLS. The API returns numbers and labels — not generated prose. Recharts renders. Ad-hoc natural language stays on the separate Redis → SQL RAG path. Resume: 30 real-time KPI dashboards, +60% operational efficiency, sub-210 ms serving. I will not invent a sample size. I will not put the model on that GET.

They might ask next

If they askYou answer
LLM on the hot pathThe tile waits on generation, invents a KPI, and couples availability to a model vendor. That is how sub-210 ms disappears.
Where does 99.9% live?Serving and deploy path — CloudFront, ALB, ECS, CI/CD — not a model-vendor SLA. I do not invent a miss.
Reports?NestJS CRUD plus Postgres under the same identity → role → RLS mapping. 40% faster report generation. Mechanism; no invented n.

Keep straight

Tighten

CloudFront → ALB → NestJS → Postgres RLS → Recharts. No LLM. sub-210 ms. Stop.

ECS, not EKS — the request path

Kubernetes is on the skills line. The intern bullet is CloudFront, ECS, Docker, ALB, Route 53. Listed is not the same as this production path.

What they might ask

Resume-derived CloudFront / ECS / Docker / ALB / Route 53. Skills-line Kubernetes is a different sentence — see chapter 20.

What you say

React and Recharts in the browser. CloudFront for static assets only. Route 53 after GoDaddy registrar, then ALB for L7 routing and health checks. Healthy ECS tasks running Docker images — NestJS and FastAPI. CI/CD rolling replacement, not SSH-patch a box. NestJS: auth, RBAC, report CRUD, dashboard REST. FastAPI: LangChain SQL RAG only. Redis on the bot path. Postgres with RLS. I did not shard. I did not operate multi-region. 10× is more RLS and deny fixtures as tables grow, role-correct pools, tier-safe cache coverage, query shape and N+1 removal, then more ECS desired tasks. A read replica for deterministic dashboards is a would-do, not a shipped claim.

Data flow

Browser
  → CloudFront (static only)
  → Route 53 → ALB
  → ECS Docker (NestJS | FastAPI)
  → Redis (bot path, tier/role keys)
  → Postgres (facts + RLS, caller role)

They might ask next

If they askYou answer
Why not one EC2?One mutable VM is deploy, health, routing, and static delivery in one failure domain. ECS tasks plus ALB health checks plus CloudFront for static split those jobs.
warpflow?GitHub UI experiment. Not this intern’s shipped orchestrator. The intern story stays reports, SQL RAG, RLS, Redis, dashboards, ECS.
Dev / QA / prodSame gates, larger blast radius. No invented ticket IDs. QA: cross-tier allow and deny fixtures, wrong-role cache keys, Redis-down fallback, all 30 dashboards without generation.

Keep straight

Tighten

Name CloudFront, ALB, ECS, Docker. Name what is static versus private JSON. Stop. Skills-line Kubernetes stays a listed-not-shipped sentence in chapter 20.

4. Horizon — Software Developer Intern, Feb–Jun 2024, Kochi

Semi-autonomous Mars rover, ROS2. Core software team. ERC 2024 17th / 80+. GStreamer 60 FPS; +40% obstacle detection; ZED 2 2M+ pts/s; costmap −55% collision risk. 17th is we. You were not team lead.

60 FPS versus a stale costmap

A live operator feed is not occupancy. The hard class is clocks: GStreamer can look current while the costmap still marks a newly occupied cell free.

What they might ask

Resume-derived 60 FPS, ZED, costmap. IE-asked pressure / deadline shapes map here (ERC date).

What you say

Situation. A rover that only “sees” pixels still collides. Operators need the newest frame, not a stalled historical stream. ERC 2024 does not slip.

Task. Core software around camera, mapping, and costmap so planning uses current occupancy, not a pretty video.

Action. Camera → GStreamer convert/encode → UDP-family transport that prefers current video over retransmitting stale packets → operator display. Autonomy stays on a separate ZED/costmap path. ZED 2 produces dense points at 2M+ pts/s incoming — that is not a promise to stream every point to a laptop. Planning keeps local density. A thinner branch goes to RViz. Transforms and timestamps into a shared frame. Fusion writes occupied / free / uncertain costmap cells. Predictive planning reasons over that grid. Gazebo exercises the node graph; field runs remain necessary because sim is not dust and lighting.

Result. 60 FPS camera pipeline. 2M+ pts/s mapping rate. +40% obstacle detection. −55% collision risk via sensor fusion. I will not invent sample sizes or a debug clock. YOLO is not a rover resume claim. No LLM on the costmap.

Data flow

camera → GStreamer 60 FPS → operator (UDP-family, drop stale)
ZED 2 → dense local cloud (2M+ pts/s in) → costmap
other sensors → timestamps/transforms → fusion → planner → actuation
RViz/Gazebo = thinner viz / sim, not the field metric

They might ask next

If they askYou answer
Why UDP-family for video?Standard CS TCP retransmit stalls later bytes. Live video prefers drop-over-stall. Resume prints GStreamer 60 FPS. Public Gstreamer-UDP is a supporting analogue, not a second project or a radio spec.
Why not stream all 2M+ pts/s offboard?Downsample for viz. Keep density for the local costmap. Thinning before the planner erases the obstacle.
Why not buy another sensor?Near a fixed ERC date that adds drivers, calibration, and delay while time alignment stays unsolved. Fusion on sensors we had. Frugality backup if Ylogx Redis already used.
60 FPS versus Argus 24 FPS60 is the rover camera pipeline. 24 is the PPE detector budget. Different products.
What must GenAI not do?Packet recovery, occupancy, motor commands, or treating a fluent caption as current occupancy. No LLM on the costmap.

Keep straight

Tighten

Name the stale-occupancy class. Name 60 FPS and the costmap as separate paths. Stop. If they want the placement number, that is the next card — we, not I.

17th of 80+ is we — not team lead

You were a core software member. Placement is a team result. I for modules you implemented. We for the rank.

What they might ask

IE-asked proud-of / Deliver Results shapes. Resume-derived 17th / 80+, core software member.

What you say

I am proud of Horizon because it was a complete software system under a date we could not move. I owned core software around GStreamer, ZED mapping, and the costmap. We placed 17th of 80+ at ERC 2024. I was not team lead. I do not take the rank as a solo metric. Bias for Action is shipping 60 FPS plus a fused costmap on sensors we had, not waiting for extra hardware the week of the contest. Deliver Results is the team placement plus the obstacle and collision families I can defend as software outcomes.

They might ask next

If they askYou answer
I versus weI: camera pipeline, mapping node, costmap fusion software. We: 17th / 80+. Site-style ops numbers on Argus after alerts are also we.
Did you miss ERC?No. The resume is 17th / 80+. There is no missed-ERC story.
Knowledge sharingEarth’s Best Employer primary: launch order and ZED→costmap constraints so perception/planning is not one-head. Pair until someone else can launch. Not a mentee count.
10× on a roverA rover is not a camera-count SaaS problem. I did not shard a map. Higher speed: tighter time sync first — stale occupancy gets more dangerous. More sensors still feed one bounded costmap.

Keep straight

Tighten

I for modules. We for 17th. Stop. If Deliver Results already used the rank, backup is Ylogx 40% reports + 99.9% — a different project.

5. Argus — industrial safety CV (technical project)

YOLOv9 PPE + attendance. 73% → 89% mAP on 15,000+ images; 24 FPS; then 20+ cameras; Postgres events; −50% violations and 2× compliance after alerts. GitHub argus-stream-api-server README is 404 — no invented routes.

73% mAP is a fail for alerts

73% misses too many violations and also proposes junk boxes. That is not a shippable floor page. Are Right, A Lot lives here.

What they might ask

Resume-derived 73→89% mAP. IE-asked Are Right / Highest Standards shapes.

What you say

Situation. Industrial PPE needs boxes and classes while the event is still actionable. A laptop GIF is not a live safety product. 73% mAP on a held-out set is not ready to page the floor.

Task. Treat 73% as a fail for alerting. Raise detector quality and prove a live frame budget before multiplying cameras.

Action. Honest starting measure: 73% mAP, IoU-thresholded boxes. Inspect error classes — lighting, PPE variation, rare no-helmet. Train and eval on 15,000+ images. I will not invent split ratios. I do not tune NMS or confidence on the quoted test set. Iterate data and config until 89% mAP. First move was data plus an eval gate, not a bigger backbone.

Result. 89% mAP. That is held-out detector quality. It is not the −50% violations number. 73% stays the fail I will name.

They might ask next

If they askYou answer
Haar / HOG / YOLOv8 / ByteTrackStandard CS Haar/HOG are alternatives, not a shipped Argus attempt. Resume detector is YOLOv9. ByteTrack and YOLOv8-as-Argus are not resume claims.
Why one-stage YOLO?Boxes and classes in one pass under a 24 FPS budget. A heavier backbone per stream breaks that budget at 20+ feeds.
Could an LLM caption replace boxes?No. Bounding boxes plus mAP plus FPS are the source of truth. A caption is not an IoU-gated box.

Keep straight

Tighten

Name 73% as not ready. Name data + eval, not a bigger backbone. Stop at 89% unless they ask about FPS or cameras.

89% mAP and 24 FPS, then 20+ cameras

Highest Standards and Success and Scale share an order: quality and live budget first, then replicate. Multiplying a 73% system multiplies misses and alarm fatigue.

What they might ask

Resume-derived 89% mAP, 24 FPS, 20+ cameras, containers, Postgres.

What you say

After 89% mAP I verified end-to-end 24 FPS: decode + infer + NMS + I/O, not notebook forward-milliseconds only. Then I replicated across 20+ containerized feeds. Runtime: ingest a frame, drop stale frames rather than queue delayed alerts, OpenCV decode/resize, YOLOv9 boxes and PPE classes, confidence filter, NMS, structured event — camera, class, confidence, timestamp, box — Postgres persists the event. Bulk video stays out of the relational table. Operators query by camera and time. I did not shard Postgres. I will not invent a GPU name, Kubernetes-as-Argus, or an image count beyond 15,000+. I will not claim 10× FPS. Workers and batching only if latency holds. Refuse to multiply a 73% system.

They might ask next

If they askYou answer
Why drop stale frames?A delayed alert on an old frame is not actionable. Queueing delay makes the safety product late.
Why events, not JPEGs, in Postgres?Events answer “camera 7, Tuesday 18:04, no-helmet.” Video blobs make every backup carry media.
README 404Speak resume metrics. I do not invent API routes.
24 FPS versus Horizon 60Detector budget versus rover camera pipeline. Different products.

Keep straight

Tighten

Gate, then scale. 89% + 24 FPS, then 20+. Stop. If Highest Standards already used Argus, backup is Ylogx 99.9% / sub-210 ms.

mAP is not −50% or 2×

mAP is held-out detector quality. −50% violations and 2× compliance are operational, after alerts existed. Humans act on alerts. I will not invent a causal study tying mAP to 2×.

What they might ask

Resume-derived −50% through automated alerts; 2× compliance. Speak as we for site outcomes after the system existed.

What you say

The loop is detect → persist → notify humans → behavior. mAP tells me the detector is good enough to alert. −50% violations and 2× compliance are what the site recorded after those alerts existed. I will not invent a sample size, a manager quote, or a study that says 89% caused 2×. I speak we for those ops outcomes. I speak I for the detector gate, the 24 FPS path, and the event schema.

They might ask next

If they askYou answer
What must GenAI not do?Generate PPE boxes, relabel 73% as acceptable because a caption looks compliant, be the official event record, authorize alerts, or auto-label all 15k images as a resume claim (not stated).
Attendance?Same event stream: camera, class, time. Postgres is the audit log. Not video blobs.

Keep straight

Tighten

Separate detector quality from site ops in one sentence each. Stop.

6. GiftedBooks — VR learning suite (giftedbooks.study)

Technical project. RAG PDF Q&A sub-300 ms; 99.5% uptime; PYQ topic suggestions; +35% reading; +50% engagement; 2.5× comprehension; doubts hours → 3–10 min. GitHub currently describes AegisAI — resume wins.

Hours to 3–10 minutes

Customer Obsession primary. Students waited hours on doubts from their material. A generic tutor hallucinates a syllabus.

What they might ask

IE-asked customers / proud-of shapes. Resume-derived 3–10 min and learning metrics.

What you say

Situation. GiftedBooks is a VR learning suite with 3D labs and AI avatars, but the customer problem was students waiting hours to resolve doubts from their own PDFs.

Task. Answers from that student’s file, on a latency path I can defend, without mixing users’ notes.

Action. Authenticate at the API. Accept that student’s PDF. Chunk with enough context for a table or derivation. Embed once at ingest. Store vectors with user and document metadata. Question time: user-scoped small top-k. Generate from retained spans or abstain. PYQ topic ranking is a separate deterministic pass over past papers — not the generator guessing the exam.

Result. Sub-300 ms API. 99.5% uptime. +35% reading, +50% engagement, 2.5× comprehension. Doubts hours → 3–10 min. I will not invent a student headcount. I do not claim every avatar asset. I do not claim LangSmith here.

Data flow

auth → that student's PDF → chunk → embed once → vector + user/doc metadata
question → user-scoped top-k → grounded answer or abstain (sub-300 ms)
PYQ ranker = separate deterministic analytics, not the LLM

They might ask next

If they askYou answer
Why not stuff the textbook every question?Latency and grounding both die. Embed once. Small top-k.
FAISS versus AzureGiftedBooks is the student-PDF vector + metadata lane (skills list includes FAISS). IQVIA intern is Azure AI Search + GraphDB. Qdrant is not on the resume.
10×I did not shard. Ingest each PDF once, cache safe retrieval, keep top-k and generation bounded, preserve user/document metadata. No student n on the resume.
What must GenAI not do?Guess PYQ trends, bypass per-user isolation, treat latency as proof of faithfulness, answer from a generic tutor corpus when the PDF is the source of truth.
Completed on your own?This is a technical project. Internships were team. Walk problem → architecture → hard part → metric.

Keep straight

Tighten

Customer = students. Mechanism = user-scoped PDF RAG. Number = 3–10 min. Stop. If they open GitHub, the next card — mismatch in the first sentence.

GitHub says AegisAI — resume wins

If they open the repo, label the mismatch first. Then speak GiftedBooks from the Aug 2026 PDF. AegisAI is a different artifact.

What they might ask

Resume-derived GiftedBooks. GitHub giftedbooks / giftedbooks-ai currently describes AegisAI.

What you say

That README currently describes AegisAI. That is a mismatch. The resume product is GiftedBooks: VR learning plus grounded PDF question-answering. Doubts that used to take hours became three to ten minutes. Uptime on that product is ninety-nine point five percent. I would fix the README. I am not mixing AegisAI features or metrics into this walkthrough.

They might ask next

If they askYou answer
They keep quoting the READMECorrect once. Continue from the PDF: VR labs, avatars, PDF RAG, PYQ, sub-300 ms, 99.5%, 3–10 min.
Earn TrustDisclose the mismatch if they opened GitHub. Customer Obsession still stays hours → 3–10 min on the PDF product. Do not lead Customer Obsession with AegisAI.
LangSmith on GiftedBooks?Would-add citation eval. IQVIA keeps traces. Mixing them is how you get caught. Speed is not groundedness.

Keep straight

Tighten

Mismatch. Resume. 3–10 min. Would fix the README. Stop talking about AegisAI internals.

7. StratifyLabs — CV lab (stratifylabs.design)

Browser-based inference −30% ML iteration; marketplace 50+ models/datasets; URDF editor with WebGL; Gemini RAG voice bots on the simulated scene. GitHub README is the default Next.js scaffold — resume features win.

−30% is iteration time, not FPS

Think Big primary. A notebook or native simulator per person turns every small experiment into environment setup. −30% is the shorter edit → infer → inspect loop in the browser.

What they might ask

IE-asked Think Big / completed-on-your-own shapes. Resume-derived −30%, 50+ catalog.

What you say

Situation. CV people should not spin a full GPU training loop to tweak a scene, a URDF, or a small inference. Native Gazebo is the wrong entry cost for this product — Horizon’s field ROS2 stack is a different intern.

Task. A shared 3D lab in the browser so iteration is the product.

Action. Web client opens the lab. URDF editor changes robot/scene structure. WebGL renders the current scene. Small supported models run browser inference where the user is iterating. Large training stays off the interactive request path. Marketplace exposes 50+ pretrained models and datasets as catalog items; community profiles make experiments shareable. Gemini RAG voice characters receive current scene/URDF context.

Result. −30% ML iteration time. 50+ catalog items. I will not invent a sample size, user count, or GPU name. Current-scene eval for the bots is a would-add, not LangSmith.

They might ask next

If they askYou answer
50+ GPUs?50+ is a marketplace catalog of models and datasets, not 50 GPUs and not Argus 20+ cameras.
Hard class of bugA model that fits a desktop GPU OOMs in the tab, or a scene bot answers from last week’s scene. Keep small models in-browser; heavy train jobs off the click path; bots read current state.
IsolationA bot must not retrieve another user’s dataset. Deep three-tier RLS evidence stays on Ylogx. Here, user/dataset isolation is required without stealing that intern story.
Three.js?Three.js is a skill. Resume defends WebGL + URDF.
What must GenAI not do?Mutate the scene graph or URDF, execute another user’s dataset, hallucinate objects not in the current scene, sit on the heavy training path as if it were a click.

Keep straight

Tighten

Browser loop. −30% time. 50+ catalog. Stop. If they open GitHub, the next card.

GitHub is a Next.js scaffold — resume wins

The public README is create-next-app. That emptiness does not erase the resume product. It also does not license invented README features.

What they might ask

Resume-derived product. GitHub default Next.js README.

What you say

The README is the Next.js default. The product I will defend is the PDF and stratifylabs.design: a browser CV lab, WebGL URDF, a catalog of 50+ models and datasets, Gemini bots tied to the scene, and −30% iteration from in-browser inference. I will not improvise features because a scaffold README is empty. Frontend on GitHub is the client. If they want an intern story I switch to IQVIA Hybrid RAG or Ylogx SQL RAG plus RLS — a different project, asked next, not stacked into this spoken block.

They might ask next

If they askYou answer
karyanode portsOptional GitHub subprocesses can attach Stratify training on known ports. That is composition. It does not move −30% or 50+ onto karyanode.
Horizon GazeboField rover intern. Different product. Do not merge stacks in the spoken answer.

Keep straight

Tighten

Scaffold README. Resume product. −30% and 50+. Stop.

8. IEDC Tech Team and hackathons

Tech Team member, not manager, recruiter, or owner of a mentee headcount. Eight hackathons: CodeRecet 1st, MLH Best Project, Magnathon 2.0 runner-up. CUSAT CSE 8.42 is education, not a coaching metric.

What they might ask

Resume-derived IEDC Tech Team, 8 hackathons, named prizes. Hire and Develop primary. Earth’s Best backup is Horizon pairing.

What you say

I am a Software Team Member of Team Horizon and Tech Team of IEDC CUSAT. Club and hackathon stacks were not useful if only one laptop could run the build. I shared environment setup, review, and failures already hit. I pair on the risky module until another person can run it. Across eight events the resume’s claim is rapid software and production-ready deployment. Named placements: CodeRecet first, MLH Best Project, Magnathon 2.0 runner-up. I have no mentee count on the resume, so I do not add one. I am not a people manager.

They might ask next

If they askYou answer
A number of menteesNone on the resume. Speak pairing until someone else can launch. Horizon launch order and ZED→costmap constraints if they want the rover version of the same habit.
Hackathon outage percentNone on the resume. Honest class is demo-day deploy. Prefer Argus mAP, GiftedBooks latency, or Horizon costmap if they want a real bug.
Design IEDC as a SaaSIEDC is a tech team, not a named product. Whiteboard GiftedBooks, Argus, or StratifyLabs instead.
GPACUSAT CSE 8.42. One sentence. Not a leadership metric.
Django CUSAT portalOff-resume. I do not present it as a resume bullet.

Keep straight

Tighten

Member. Pair until they can run it. Named prizes. No mentee n. Stop. If they want architecture, leave IEDC and pick a resume product.

9. If they open GitHub

Resume wins when a README disagrees. Label GitHub in the first sentence. Forks are not internships. InstaRecon is an ethics one-liner, then redirect. No phishing, credential, or exploit steps.

Laptop open — mismatch table

If they found a repo, say what it is today, then what you will actually speak. Do not volunteer InstaRecon.

What they might ask

GitHub artifacts. Resume-derived when a README disagrees with the PDF.

What you say

If they point at a repo, I label it GitHub in the first sentence. Resume metrics stay on the Aug 2026 PDF. Forks such as firecrawl, care-fe, or litestar are not internships. GiftedBooks README currently describes AegisAI — I speak GiftedBooks from the resume. StratifyLabs README is default Next.js — I speak stratifylabs.design. Argus API README is 404 — resume detector metrics, no invented routes. Conv-BI and warpflow are Ylogx-adjacent, not extra intern rows. valAgent and karyanode are GitHub-only. Gstreamer-UDP supports the Horizon 60 FPS camera story, not a second product.

They might ask next

RepoWhat it is todayWhat you speak
giftedbooks / giftedbooks-aiREADME currently describes AegisAIGiftedBooks VR + PDF RAG from the resume. Would fix the README.
StratifyLabsDefault Next.js READMEstratifylabs.design: −30% iteration, 50+ catalog, URDF/WebGL.
argus-stream-api-serverREADME 404YOLOv9 73→89% mAP, 24 FPS, then 20+ cameras. No invented routes.
valAgentGitHub ETL validatorAdjacent habits. Not an IQVIA resume bullet. No 200+ merge.
warpflowUI workflow canvasYlogx-adjacent experiment. Not the intern BI story.
karyanodeLocal-first agentGitHub only. No invented user counts.
Conv-BIYlogx-adjacent GitHubNot a second intern bullet.
Gstreamer-UDPWebcam-stream analogueSupports Horizon 60 FPS. Not Argus YOLO. Not a second resume project.
Forks (firecrawl, care-fe, litestar, …)Upstream projectsNot internships. Not resume metrics.
InstaRecon / PhiSiFiOff-resume security demoConsent, no production attacks, then redirect. Not an LP.

Keep straight

Tighten

Label. Resume wins. Offer the matching intern or project door. Stop.

valAgent — GitHub ETL validator

github.com/adarshx01/valAgent. IQVIA-adjacent habits. Not an IQVIA resume bullet. Does not inherit 200+ websites or 200+ pages.

What they might ask

GitHub

What you say

This is a GitHub ETL validator, not my IQVIA intern bullet. QA writes a natural-language business rule. A Schema Service reads source and target Postgres catalogs. An LLM Service emits SQL tests. An Executor Service runs them — worker pool, batches, timeout. The Orchestrator sequences the run. The artifact is a pass/fail report with the SQL that actually ran. Fluency is not proof. The model must not DROP tables — that is policy, fail-closed. IQVIA on the resume remains LangGraph Deep Research across 200+ sites and Hybrid RAG on 200+ page BRDs with LangSmith. I keep those numbers off this repo.

They might ask next

If they askYou answer
Hard class of bugSQL that runs and reports pass at the wrong grain, or a hallucinated column. Execution proof and a known-bad fixture. Not asking the model to explain itself.
Why NL→SQL?Hand tests rot when columns move. Generated tests still must run. Same verify habit as inspectable SQL at Ylogx — different codebase, no metric merge.

Keep straight

Tighten

GitHub first. Execute, do not trust. If they want the intern, switch to IQVIA — a new spoken answer.

warpflow — canvas, not the intern orchestrator

github.com/adarshx01/warpflow. Ylogx-adjacent UI experiment. Run is a UI demo timeout. Not n8n-scale. Not the shipped BI path.

What they might ask

GitHub

What you say

warpflow is a Ylogx-adjacent UI experiment: React, Vite, TypeScript, a Google auth callback and ProtectedRoute, drag-drop nodes with SVG edges. What it is not: a shipped intern orchestrator, an n8n competitor, or a substitute for Ylogx SQL RAG. If they want what I productionized, I switch to the BI stack — reports, SQL RAG, RLS, Redis, dashboards, ECS — and the +65% analysis number. If they want a data-structure analog, it is a DAG. If they hand me Live Code, I still write Java.

They might ask next

If they askYou answer
Validate the graphAdjacency list. Bound loops. A cycle with no max iteration is the bug. Kahn or DFS in Java if they want code.
Production graph they should hearIQVIA LangGraph or the Ylogx request path — asked as a new door, not stacked into this canvas.

Keep straight

Tighten

UI experiment. Not the intern. Offer Ylogx SQL RAG. Stop.

karyanode — local-first agent, GitHub only

github.com/adarshx01/karyanode. Sense → decide → act → check → recover. Not a chatbot. Not an IQVIA bullet. No citizen-user counts.

What they might ask

GitHub

What you say

KARYA Node is a GitHub local-first operations agent, not my IQVIA intern. FastAPI plus a React UI. On-device Gemma via Ollama, Gemini API as fallback. Actuators have blast radius: desktop, Playwright browser, coding agent, a work queue. Policy Guard and an audit log sit in front of side effects. LangGraph checkpoints in SQLite so a crash does not invent a second half-done action. A Verifier checks the result. Ambiguous cases go to a human exception queue. Optional subprocesses can attach StratifyLabs CV training and ValETL as modules on known ports. That composition does not move Stratify −30% or IQVIA 200+ onto this node. I will not invent a deployment count.

They might ask next

If they askYou answer
Why local-first?Desktop and file actuators should not round-trip every screenshot to a vendor by default. Checkpoints make recover not double-submit.
Module downFail-closed on that task. Do not silently skip validation.

Keep straight

Tighten

GitHub. Acts, so allowlists. No invented n. If they want intern evals, IQVIA LangSmith is a new answer.

InstaRecon / PhiSiFi — ethics one-liner

Off-resume security-awareness demo. Not an LP. Not Dive Deep. Do not volunteer it. If they click it: one sentence, then StratifyLabs, Argus, Ylogx, or IQVIA.

What they might ask

Resume-derived redirect. Off-resume demo.

What you say

That repo is a security-awareness demo. I only work with consent. I do not run production attacks. The work I can defend on this resume is StratifyLabs, Argus, Ylogx, and IQVIA.

They might ask next

If they askYou answer
How would you get in? Payloads? Phishing?I will not walk exploit steps, credential capture, or production recon. Redirect to a resume product.
Make this an LPIt is not an LP. Earn Trust on this topic is consent and stopping. Then GiftedBooks grounding or Ylogx RLS if they still want a story.

Keep straight

Tighten

Consent. No production attacks. Redirect. Stop.

10. Amazon SDE I fit — services, isolation, evals, Java

Map the job to themes on this resume. If they name a theme, walk the matching product. Dates answer “which intern ran longest.” This is not a contest between internships.

What they might ask

Resume-derived mapping. Other candidates reported leftover-hour “why Amazon” and current-role prompts; those loops are not Job 10454435.

What you say

I am moving from internships into SDE I, where production judgment is tested under a clock. The work I will defend is services with a request path, isolation at the data layer, evals that can fail, and Java in the editor. Isolation I will walk is Ylogx three-tier RLS and RBAC. Evals I will walk are IQVIA LangSmith span checks, or Argus held-out mAP if they pick the CV project. A service path I will walk is Ylogx CloudFront to ALB to ECS, or IQVIA FastAPI. Horizon is rover software under a date that does not move — stale occupancy versus a live feed. Internships shipped Python FastAPI, TypeScript NestJS, and ROS2. Live Code is Java. Same data structures — maps, heaps, graphs of tool nodes — different syntax. I do not claim a specific Amazon team I have not locked. I do not claim childhood Amazon worship. Which door do you want?

They might ask next

If they askYou answer
IsolationYlogx: RLS in Postgres plus RBAC at NestJS, three tiers, caller DB role. GiftedBooks: user-scoped PDF retrieve. One project per spoken answer.
Evals / verify GenAIIQVIA: fail if no supporting span, gold citation IDs, traces. Argus: held-out mAP and 24 FPS before cameras. Ylogx: inspectable SQL and deny fixtures, not LangSmith.
Services / request pathYlogx ECS tasks behind ALB, CloudFront for static. IQVIA FastAPI for traced runs. Dashboards stay deterministic REST.
LatencyYlogx Redis −35% on the bot DB path. Ylogx sub-210 ms on dashboards with no LLM. GiftedBooks sub-300 ms on the PDF API. IQVIA has no latency percent.
Which intern ran longest?Ylogx, November 2024 to October 2025.
Which intern is current?IQVIA, April 2026 to present, Kochi.
They name a theme and “pick an intern”Walk the product that owns that theme. Isolation → Ylogx. Evals → IQVIA. Deadline → Horizon. Do not rank the three jobs against each other.
Architected — you were an internUnpack into modules: LangGraph routing and traces at IQVIA; RLS and Redis at Ylogx; GStreamer / ZED / costmap software at Horizon.
I versus weI for modules shipped. We for Horizon 17th / 80+, Argus site −50% and 2× after alerts, team hackathon prizes.
Something you do not knowSay the boundary. A missing TTL, gold-set size, or AWS bill stays missing. Inventing one is worse than a clean stop.
They paste a tree after a Fluency inviteWrite the Java tree first. Fluency sentence only if they still ask. Distance K is in chapter 05 (LC 7623949 shape, other loop).
Rate limiter / Login TrackerRate limiter independent SDE I live-round count is 1, not UTA-default. Login Tracker is unverified. Do not volunteer either as this Job ID.
HLD / Kafka / load balancers as the roundNot the SDE I UTA default. Prefer LLD/DS-design in chapter 22 if they want design.

Keep straight

Tighten

Name the theme. Walk one product. Offer a door. If they want the leftover hour, open the hour script. Do not dump six products. Do not announce that this is the Bar Raiser. Do the hour in front of you.

Prev: 18. New IEs · Next: 20. Stack defense · Leftover hour: Round 4 book