3. Technology defense cards — Tier 1
Maximum defense, intern-honest. Java internships-were-not-JVM is a special honesty card. Kubernetes is Tier 3, not here. Snippets for listed-not-shipped ideas are labeled Standard CS.
T1.1 Python + FastAPI — FACT: IQVIA both systems; Ylogx SQL RAG Resume-derived Standard CS
TECHNOLOGY. FACT where used: IQVIA Deep Research and Hybrid RAG on FastAPI; Ylogx LangChain SQL RAG on FastAPI. NestJS is the TypeScript API sibling at Ylogx, not a replacement for this card.
1. 30-second what-is-it
FastAPI is a Python HTTP framework: you declare routes, Pydantic models, and dependency-injected resources. For an intern it is the process that receives a research query or a natural-language BI question and returns JSON. It is not a cluster and not Java Spring.
2. Two-minute how it works + where it fits
A request hits a path operation. FastAPI validates the body, runs the coroutine or function, and serializes the response. At IQVIA that function starts a LangGraph run (thread id, state). At Ylogx that function is the SQL-RAG loop: schema context, model emits SQL, execute as the caller’s DB role. ASGI (uvicorn) is the usual server. I do not invent a worker count. Live Code is still Java — same request/handler idea, different syntax. Production intern path was Python.
3. Why we used it on this intern/project
IQVIA needed Python because LangGraph, LangChain, Firecrawl clients, and Azure SDKs live there. Ylogx needed Python for LangChain SQL RAG while NestJS kept typed auth modules. One Flask god-object that mixed auth, CRUD, RAG, and dashboards would have been harder to test. Constraint: intern ownership of the AI path, not a JVM rewrite.
4. Where in architecture
Client → CloudFront/ALB (Ylogx) or intern API (IQVIA)
→ [FastAPI]
→ LangGraph nodes | LangChain SQL RAG
→ Azure Search / GraphDB | Postgres+RLS (+ Redis)
→ JSON response
5. Before / after / why simpler failed
Before: a notebook or a linear script that could not expose a stable HTTP contract or retry a dead scrape. After: a service with typed request bodies. Simpler Flask-everything failed modular RBAC testing at Ylogx and mixed IQVIA graphs into CRUD.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| ASGI / uvicorn | Python async HTTP server | Run the app as a long-lived process | Ylogx always-on BI; IQVIA research jobs | Sync vs async? | I used FastAPI; I will not invent worker topology. MISSING: exact uvicorn workers. |
| Path operation | Function bound to method+path | HTTP contract | POST research / POST NL question | REST vs GraphQL? | REST shipped. GraphQL listed-not-this-intern. |
| Pydantic model | Request/response schema | Reject garbage early | Query body, not a free string dump | Validation? | Typed body; fail closed on missing query. |
| Depends() | Inject DB/session/graph | Test seams | INFERENCE: role-bound connection injected on Ylogx RAG | God object? | That is why not one Flask. |
| Status codes | 200 vs 403 vs 422 vs 5xx | Client vs auth vs validation vs origin | RLS deny ≠ ALB 502 | How debug? | Classify hop first. |
| Timeout | Bound a RAG/SQL loop | Unbounded LLM/SQL is a bug | MISSING: exact timeout seconds | Hung request? | Timeout + row cap on SQL RAG. |
| CORS | Browser origin allow-list | Not tenant isolation | Dashboards call API; RLS is isolation | CORS = security? | CORS ≠ RLS. |
| OpenAPI | Auto schema from routes | Contract for Postman | Skills: OpenAPI Spec. Honest as REST contract | Did OpenAPI generate LangGraph? | No. |
| Background task | Work after response | Long research vs HTTP | INFERENCE: long Deep Research may be a job; MISSING: exact job store | Sync 200+ scrape in one HTTP? | Checkpoint exists so a run can resume. I do not invent Celery/Kafka. |
| Health route | liveness for LB | ALB target health at Ylogx | FACT: ALB health checks on serving path | k8s probe? | ECS+ALB, not EKS. |
| Secrets | env / task role | Not in Git or traces | FACT-adjacent: env for DB/Azure | Logged BRD? | No. LangSmith: ids not full annex. |
| Java analog | Controller + service | Live Code language | Same graph of handlers | Spring at IQVIA? | Must-not-claim. |
7. Internal flow
HTTP request
→ route match + body validate
→ inject resources (graph / role-bound DB)
→ run node or SQL-RAG loop
→ serialize JSON
→ (Ylogx) never put LLM on dashboard GET
8. How integrated
IQVIA: FastAPI wraps LangGraph compile/invoke. Ylogx: FastAPI is the Python service beside NestJS; dashboards stay NestJS REST. Snippets below are interview-small, not dumped prod.
Shipped-pattern sketch (Python intern), not a production dump.
# Interview sketch — Ylogx SQL RAG shape (Python intern)
# Not a dumped production route table.
from fastapi import FastAPI, Depends, HTTPException
app = FastAPI()
@app.post("/bot/ask")
def ask(q: Question, caller=Depends(current_caller)):
# execute as caller DB role so RLS applies — FACT pattern
return sql_rag(q.text, role=caller.db_role)Standard CS illustration — not a manifest/config I shipped on an intern bullet.
# Standard CS illustration — not a manifest I shipped
# uvicorn main:app --host 0.0.0.0 --port 8000
9. Config that matters
MISSING: uvicorn workers, replica count, exact health path string, request timeout seconds. FACT: Ylogx Docker/ECS desired count exists as the serving idea; IQVIA has no latency %.
10. Runtime: one request/data path
Ylogx: NL POST → FastAPI → Redis key with tier → miss → SQL as role → Postgres RLS → return. IQVIA: research POST → FastAPI → LangGraph planner → parallel tools → ranker → writer. Dashboard GET does not enter this FastAPI LLM loop (FACT: sub-210 ms path has no LLM).
11. Scale 10× honest / 100×
10×. More pooling, timeouts, and cache on repeat NL. Cap LangGraph fan-out. Do not put SQL RAG on every KPI tile. I did not shard.
100×. MISSING what I would need to learn: job queue, backpressure, multi-region failover — I did not ship those. Not “I already ran 100×.”
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Validation 422 storm | Clients retry badly | 4xx vs 5xx split | Fix schema; do not hide 422 as 200 | Pydantic models + client contract |
| SQL RAG hung | Bot feels ‘thinking’ | MISSING APM; classify DB vs model | Timeout, row cap, Redis hit | Allow-list + cache-aside |
| Empty scrape still 200 | Fluent wrong research | LangSmith trace: empty docs | Fail closed / retry tool | Checkpoint + ranker ignores junk |
| Superuser DSN in FastAPI | Cross-tier dump | Deny-fixture fails | Stop; restore role DSN | Never owner connection |
| Health false green | ALB sends traffic to sick RAG | ALB target + app dependency | Fail health if DB down if product requires it | Health checks FACT for 99.9% talk |
13. Five troubleshooting scenarios
- Symptoms: 5xx on /bot/ask only; dashboards still sub-210-ish. Metrics you had: none named beyond resume −35%/sub-210. MISSING: APM. Check: NestJS healthy vs FastAPI task. Recent change: prompt/schema. Mitigate: fail closed, do not skip RLS.
- Symptoms: research answers with no citations. Metrics: LangSmith traces FACT. Check: docs reducer empty. Mitigate: do not write.
- Symptoms: 403 on bot, 200 on dashboard. Check: RLS role vs endpoint RBAC.
- Symptoms: slow after Redis blip. Check: fail-open to Postgres as same role, never owner.
- Symptoms: deploy after CI. Check: new image, ALB health, not Kubernetes.
14. Monitoring
FACT: LangSmith on IQVIA; ALB health checks on Ylogx 99.9% mechanism. MISSING: FastAPI QPS dashboard, p95, Datadog.
15. Security slice
Ylogx: parameterized SQL, RLS role, no pg_catalog. IQVIA: secrets not in traces; no full confidential BRD dump. CORS is not isolation.
16. Performance / Frugality
Frugality: FastAPI for the Python AI path instead of rewriting NestJS in Python or Spring. Do not run Playwright on every URL to ‘use async.’ LP: Ylogx Frugality stays Redis-primary; this card is Invent/Simplify for IQVIA graphs.
17. Alternatives
| Alternative | Why not on this intern/project |
| Flask monolith | Skills; intern apps were FastAPI+NestJS. |
| Django | Not on resume as intern warehouse. |
| NestJS-only including LLM | Python ecosystem for LangChain/LangGraph. |
| Spring Boot | Not shipped. Java is Live Code. |
| Lambda per request | Always-on BI + long research; not the Ylogx bullet. |
18. When NOT to use
Do not use FastAPI as a dumping ground for React SSR. Do not use it to run dashboard KPIs through an LLM. Do not claim it was Kubernetes.
19. Limitations
MISSING: exact concurrency model in prod. I will not invent gunicorn vs uvicorn bake-off.
20. What I vs we vs must-not-claim
I: FastAPI route + SQL RAG / graph invoke wiring I owned. We: IQVIA/Ylogx product. Must-not-claim: JVM intern, Flask-as-Ylogx, Kafka consumers.
21. What would the interviewer ask next?
They will ask why two services at Ylogx. Answer: NestJS auth/CRUD; FastAPI SQL RAG. Then: would you merge? Not if RBAC tests and RAG tests need different languages.
22. Mini follow-up chain
Why FastAPI? Python AI path. Why not Flask? Skills; this intern was FastAPI+NestJS. What feature? Typed routes + RAG/graph. If FastAPI down? Bot/research fail; dashboards may still live on NestJS — classify. How monitor? ALB health FACT; LangSmith IQVIA; no Datadog. What did YOU do? Owned the Python intern path. Redesign today? Same split; add SQL-shape CI; still no EKS theatre.
T1.2 TypeScript + NestJS + REST — FACT: Ylogx auth, RBAC, report CRUD, dashboard APIs Resume-derived
TECHNOLOGY. FACT: Ylogx full-stack AI BI with NestJS, RESTful APIs, React dashboards. IQVIA was FastAPI, not Nest. GraphQL is listed, not this intern protocol.
1. 30-second what-is-it
NestJS is a structured TypeScript HTTP framework: modules, controllers, guards. REST here means resource URLs and JSON, not a graph query language. It is the Ylogx identity and CRUD door. It is not Auth0 and not Kubernetes.
2. Two-minute how it works + where it fits
Browser calls REST. NestJS authenticates the caller (JWT-shaped identity at the API — Auth0 is NOT this card). Guards enforce RBAC (what you may do). Handlers talk to Postgres with a mapped DB role so RLS still applies. Report builder and dashboard GETs live here. SQL RAG lives on FastAPI. FastAPI/NestJS are siblings behind ALB, not a mesh I invented.
3. Why we used it on this intern/project
Problem: full-stack BI with three org tiers, custom reports, 30 KPIs, chatbot. Constraint: typed role modules. Why not simpler: one Flask mixing auth and LLM. Why REST not GraphQL: 30 KPIs were not dying from over-fetch; origin and cache were. LP: Ownership of the API/isolation path.
4. Where in architecture
Browser React
→ CloudFront (static) / ALB
→ [NestJS REST]
→ RBAC guard → map DB role
→ Postgres RLS
→ JSON for reports/tiles
FastAPI sits beside this for SQL RAG only
5. Before / after / why simpler failed
Before: ad-hoc reports waiting on an engineer (40% faster reports is the resume after). App-only WHERE would fail on generated SQL — that is why RLS is a sibling card. GraphQL-first would have been protocol fashion, not the pain.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Module / DI | Nest providers | Test RBAC separate from RAG | FACT split vs FastAPI | Why two langs? | Typed API vs Python RAG. |
| Guard | CanActivate on routes | RBAC at HTTP | 3 tiers as role FACT | RLS in Nest only? | No — rows in Postgres. |
| REST resource | GET tile, POST report | Simple client | 30 Recharts KPIs | GraphQL? | Listed, not shipped. |
| DTO / ValidationPipe | Input shape | Reject junk | Report builder params | OpenAPI? | Skills; contract honest. |
| JWT verify | Identity at API | Map to DB role | Auth0 NOT this card | Secrets in JWT? | Must-not. |
| Exception filter | Stable error JSON | 403 vs 500 | RLS deny vs crash | Leak stack? | No. |
| Connection pool | pg pool | 10× users | MISSING: pool size | Shard? | Did not shard. |
| CORS | Browser | Not RLS | Same as FastAPI card | Isolation? | RLS. |
| Versioning | URL or header | MISSING if we had it | Do not invent /v2 | Breaking change? | MISSING. |
| Idempotency | Report build retries | MISSING | Do not invent keys | Double click? | MISSING; I will not fake. |
| WebSocket gateway | Skills temptation | Real-time wording | Describe poll/REST | Socket bus? | Must-not invent. |
| Java analog | Spring MVC | Live Code only | Did not ship Spring | Intern JVM? | No. |
7. Internal flow
Request → middleware → JWT identity
→ RBAC guard (action)
→ controller
→ DB as mapped role (row)
→ JSON
Dashboard GET: no LLM
8. How integrated
NestJS on ECS Docker with FastAPI. REST JSON. Prisma is listed-not-the-warehouse-ORM claim.
Shipped-pattern sketch (TypeScript intern).
// Interview sketch — NestJS RBAC then DB role (TypeScript intern)
// Not dumped production guards.
@Injectable()
class TierGuard implements CanActivate {
canActivate(ctx: ExecutionContext) {
const user = ctx.switchToHttp().getRequest().user;
return user.can('reports:read'); // RBAC action
}
}
// Then open Postgres as mapped role — RLS card.
9. Config that matters
MISSING: exact Nest version, cluster mode, Prisma usage. FACT: REST, 3-tier RBAC, sub-210 ms dashboards without LLM.
10. Runtime: one request/data path
Tile GET: CloudFront JS → ALB → NestJS guard → pooled Postgres RLS → Recharts JSON. Report POST similar. Bot POST goes FastAPI.
11. Scale 10× honest / 100×
10×. Desired count, pooling, N+1 fix on tiles. Still no LLM on tiles. Still REST unless over-fetch becomes the pain — it was not first.
100×. MISSING: GraphQL federation, Kafka events, multi-region Nest. Learn those; do not claim them.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Guard skip on new route | Action leak | RBAC tests | Add guard; deny-by-default | Module checklist |
| N+1 tile queries | sub-210 dies | Slow GET /tiles | Join/aggregate | No LLM ‘fix’ |
| JWT org_id trusted, RLS skipped | Cross-tier JSON | Deny fixtures | Restore RLS | Token ≠ row filter |
| GraphQL rewrite mid-incident | Scope explosion | Protocol debate | Stay REST | Invent and Simplify |
| Auth0 assumed broken | Wrong hop | Skills mix | Debug Nest JWT + DB role | Auth0 is T3 |
13. Five troubleshooting scenarios
- 403 on one endpoint: RBAC first, then RLS. MISSING APM.
- Slow 30-tile page: N+1 vs origin vs CloudFront. No Datadog invention.
- After deploy: ALB health on Nest task vs FastAPI.
- User sees empty KPI: RLS deny vs empty warehouse. Fixtures.
- CORS error: browser origin, not Postgres.
14. Monitoring
FACT: ALB health; sub-210 ms claim on this path. MISSING: APM, Nest metrics vendor.
15. Security slice
RBAC guards; no secrets in JWT payload; HTTPS at CloudFront/ALB. XSS/CSRF as CS if asked — Web Securities skills. Isolation remains RLS.
16. Performance / Frugality
Frugality: REST first. Ownership: intern API modules. Do not buy GraphQL to look senior.
17. Alternatives
| Alternative | Why not on this intern/project |
| One Flask | Cannot split RBAC tests from RAG. |
| GraphQL | Listed; over-fetch not the pain. |
| Next.js API routes as the warehouse | Ylogx bullet is NestJS+FastAPI+Postgres. |
| Spring | Not intern. |
| WebSocket for all 30 tiles | Not on resume as shipped bus. |
18. When NOT to use
Do not use Nest to execute superuser SQL for the bot. Do not put LangGraph in Nest to ‘unify languages.’
19. Limitations
MISSING: exact module list. Do not dump a fake org chart of 40 microservices.
20. What I vs we vs must-not-claim
I: auth/RBAC/report/dashboard REST I owned. We: product. Must-not-claim: Auth0 tenant admin, GraphQL prod, k8s sidecars.
21. What would the interviewer ask next?
Why TypeScript? Guards and DTOs. Why not rewrite FastAPI into Nest? LangChain lives in Python.
22. Mini follow-up chain
Why NestJS? Typed RBAC modules. Why not GraphQL? REST shipped. Feature needed? Action checks + JSON tiles. If Nest down? Dashboards/reports fail; classify vs FastAPI. Monitor? ALB health FACT. YOU? Intern API path. Redesign? Same split; still no Auth0 fiction.
T1.3 PostgreSQL + RLS — FACT: Ylogx 3-tier isolation; Argus event log is Postgres without claiming Ylogx RLS Resume-derived
TECHNOLOGY. FACT: Ylogx RLS + RBAC for 3 organizational tiers; PostgreSQL warehouse; Argus PostgreSQL logging. Deep RLS story is Ylogx. Argus is events, not three-tier BI.
1. 30-second what-is-it
Postgres is a relational database: joins, aggregations, transactions. RLS means policies that filter rows for the current DB role even if the SQL text forgot a WHERE. It is the intern isolation product. It is not Mongo and not encryption.
2. Two-minute how it works + where it fits
Caller authenticates at NestJS. Map to a non-owner DB role (SET ROLE / role-bound connection — exact session API MISSING, pattern FACT). Policies apply on SELECT. JOINs cannot outrun the policy. LLM-generated SQL runs as the same role. Table owner bypasses RLS — RAG DSN must not be owner. Argus: insert detection events (camera, class, conf, ts, box), not video blobs.
3. Why we used it on this intern/project
Problem: app-only WHERE org_id dies on missed JOIN and on generated SQL. Constraint: BI chatbot emits SELECT. Why not simpler: trust the intern helper. Why not Mongo: facts need joins/aggregations/RLS. LP: Dive Deep (with Redis) and Earn Trust of isolation; Ylogx Ownership.
4. Where in architecture
NestJS/FastAPI
→ SET ROLE / role-bound conn [Ylogx]
→ [PostgreSQL RLS]
→ rows the tier may see
Argus: YOLO event → INSERT → Postgres (no Ylogx 3-tier claim)
5. Before / after / why simpler failed
Before: helper WHERE that generated SQL will skip. After: policy at read. Simpler app-only failed the chatbot threat model.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Role | DB principal | Who am I to Postgres | 3 tiers as role FACT | JWT in DB? | No. Token at API. |
| POLICY | USING expr | Row filter | Intern warehouse | Encrypt? | Different. |
| FORCE ROW LEVEL SECURITY | Even owner optional | Owner bypass class | Bot must not be owner | Admin analytics? | Higher tier role, still in DB. |
| SET ROLE | Switch principal | Session leftover risk | INFERENCE: pool must reset role | Pool leak? | Reset on release — INFERENCE. |
| Views allow-list | Not pg_catalog | Injection surface | SQL RAG | Dump tables to LLM? | No. |
| Transaction | Atomic report | BI facts | MISSING isolation level | Read replica? | Would-do, not shipped. |
| Index | Policy + query | 10× | MISSING named indexes | Shard by org? | Did not shard. |
| JOIN | Multi-table | Leak class | Policy still filters | App WHERE enough? | No. |
| EXPLAIN | Plan | MISSING as intern habit | Do not invent p95 | Slow JOIN? | Mechanism, no fake ms. |
| Argus schema | Event row | Audit not video | FACT logging | RLS on Argus? | Deep RLS is Ylogx; still auth streams. |
| Backup | Restore | MISSING vendor | Do not invent PITR hours | Disaster? | MISSING. |
| Mongo RLS | Skills temptation | Wrong store | Warehouse is Postgres | Firebase? | Listed-not-warehouse. |
7. Internal flow
authenticate → map tier → DB role
→ SELECT ... (generated or handwritten)
→ policy USING (...)
→ return allowed rows only
8. How integrated
Ylogx: Postgres source of truth + RLS. Redis cache cannot skip this. FastAPI/Nest both use role-bound access.
Standard CS illustration — not a dumped Ylogx schema I will pretend is production DDL.
-- Interview sketch — RLS idea, not a dumped prod schema
-- Standard CS illustration of the intern pattern.
ALTER TABLE facts ENABLE ROW LEVEL SECURITY;
CREATE POLICY tier_read ON facts
USING (tier_id = current_setting('app.tier_id')::int);
-- Bot DSN is NOT table owner.Shipped-pattern sketch (Python intern). Pool leftover-role is a known class.
# Python intern pattern: execute as caller role
with connection() as conn:
conn.execute("SET ROLE %s", (caller.db_role,)) # parameterized
rows = conn.execute(sql, params) # RLS applies
9. Config that matters
MISSING: exact policy SQL, pool size, SET ROLE vs SET LOCAL vs separate users, replica. FACT: 3 tiers as role.
10. Runtime: one request/data path
NL or dashboard query → role-bound Postgres → policy → rows. Cache key includes tier so Redis cannot undo this.
11. Scale 10× honest / 100×
10×. More RLS tests as orgs grow. Connection pooling. Still one primary. I did not shard.
100×. MISSING: Citus, Postgres-XL, multi-region write. Learn; do not claim.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| JOIN leak without policy | Cross-org facts | Deny fixtures | Enable RLS on new table | Table checklist |
| Owner DSN | Full dump | Fixture sees other tier | Rotate DSN | Never owner for bot |
| Pool leftover SET ROLE | Wrong tier on next checkout | INFERENCE class | RESET ROLE on release | Test the pool |
| Policy off on new table | Silent leak | CI deny tests | Default enable | Migration review |
| Argus video in bytea | DB dies | Size | Events not blobs | See Argus card |
13. Five troubleshooting scenarios
- Wrong-org row in report: JOIN + policy. Deny fixture. No Datadog needed to name the class.
- Bot returns other org: DSN owner vs role. Stop.
- Intermittent wrong tier: pool leftover-role class.
- Dashboard empty: RLS vs truly empty. Fixture both.
- Slow warehouse: MISSING EXPLAIN capture; still no invented p95.
14. Monitoring
MISSING: RDS Performance Insights. FACT: deny-tier tests as the intern eval analog (not LangSmith).
15. Security slice
RLS is which rows. Secrets in env. Parameterized SQL. Prompt injection still hits allow-list + role.
16. Performance / Frugality
Frugality: one primary with policies vs shard-as-first-sentence. Dive Deep: JOIN leak class.
17. Alternatives
| Alternative | Why not on this intern/project |
| App-only WHERE | Generated SQL skips helper. |
| Mongo | Skills; not BI+RLS. |
| Encrypt columns only | Does not replace row policy. |
| LLM ‘please filter org’ | Not a control. |
| Separate DB per tenant first | Not what shipped; 3 roles on one warehouse. |
18. When NOT to use
Do not use RLS as a substitute for RBAC (actions). Do not claim IQVIA BRD multi-tenant RLS fiction.
19. Limitations
MISSING: policy performance numbers. I will not invent them.
20. What I vs we vs must-not-claim
I: isolation path I owned at Ylogx. We: warehouse. Must-not-claim: DBA of a sharded fleet, Postgres on Argus as 3-tier BI.
21. What would the interviewer ask next?
Is WHERE enough with code review? No — chatbot SQL and JOINs.
22. Mini follow-up chain
Why RLS? Generated SQL. Why not app WHERE? JOIN/helper miss. Feature? Row filter by role. If Postgres down? Product down; cache is not SoR. Monitor? Deny fixtures; no Datadog. YOU? Policies + bot DSN. Redesign? Same; more fixtures; still no shard theatre.
T1.4 RBAC (3 tiers) + JWT identity pattern — Auth0 is NOT this card Resume-derived Standard CS
TECHNOLOGY. FACT: RBAC for 3 organizational tiers as role. JWT is the skills-line identity pattern at the API. Auth0 is listed-only (Tier 3). OAuth 2.0 is skills; deep product is Ylogx RLS+RBAC.
1. 30-second what-is-it
RBAC: what a role may do (build report, call bot, which dashboard APIs). JWT: a signed token the API verifies to know who is calling — not a database row filter by itself. Three tiers because the product had three organizational levels, not because a blog said so. Exact printed names like org_admin are MISSING — speak org/team/user-shaped isolation.
2. Two-minute how it works + where it fits
Login at NestJS issues or accepts a JWT-shaped identity. Guards check actions. Map identity to one of three DB roles. RLS filters rows. Bot, reports, dashboards share that isolation. Sessions vs JWT is Standard CS: two ECS tasks need shared session store or a token; revocation is harder with JWT (short exp / denylist — denylist TTL MISSING). CSRF: cookies auto-sent vs Bearer not auto-sent by a random site.
3. Why we used it on this intern/project
Problem: role without row = viewer SELECTs another org; row without role = any login hits admin POST. Why not one admin flag. Why not Auth0-as-prod: listed, not the named intern hop. LP: Ownership + Earn Trust of isolation.
4. Where in architecture
Client
→ [JWT at NestJS]
→ RBAC (actions)
→ map → DB role
→ Postgres RLS (rows)
Auth0 logo is skills, not this box
5. Before / after / why simpler failed
Before: endpoint checks only, or RLS only. After: both. Simpler two-tier flatten was not the product.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Role vs row | Do vs see | Two bugs | FACT both | One enough? | No. |
| Three tiers | Org-shaped levels | Product had three | Names MISSING | Dump schema? | Speak shape. |
| exp / iss / aud | JWT claims CS | Bound token | Do not put secrets in payload | org_id in JWT = RLS? | No. |
| Refresh | New access token | MISSING intern detail | Do not invent Auth0 dashboard | Kill session now? | Sessions or short JWT+denylist CS. |
| Guard | HTTP action | RBAC | NestJS | Bot SQL? | DB role. |
| CSRF | Cookie auto-send | CS | Bearer vs cookie | Exploit steps? | No. Awareness only. |
| XSS | Token in JS | CS | HttpOnly cookies if sessions | localStorage recipe? | No theft recipe. |
| OAuth state | Redirect CSRF | Skills OAuth | Not Ylogx novel | Auth0? | T3 listed. |
| CORS | Browser | Not tenancy | Allow-list | CORS = RLS? | No. |
| Bhavya-style if ADMIN in façade | AuthZ clutter | Standard CS | Guards + RLS | Spring intern? | No. |
| Service role | Bot superuser | Failure class | Must-not | Productivity +65%? | Trustworthy isolation, not superuser. |
| Rover JWT | Wrong product | Horizon | Do not JWT the rover | Telemetry public? | No. |
7. Internal flow
login → token
→ each request: verify
→ guard(action)
→ SET ROLE / mapped user
→ RLS
8. How integrated
Tokens at the API; execution as DB role. Secrets: env / ECS task role, not Git.
Shipped-pattern sketch. Not an Auth0 tenant export.
// Identity at API — TypeScript intern pattern
// Auth0 is NOT claimed here.
const payload = verifyJwt(token, env.JWT_SECRET); // algorithm pinned
if (!payload.role) throw unauthorized();
// map payload.sub → dbRole among 3 tiers
9. Config that matters
MISSING: token TTL, IdP vendor, cookie vs Bearer choice in prod. FACT: 3 tiers as role.
10. Runtime: one request/data path
Dashboard GET carries identity → RBAC → RLS. Same identity on bot path. Cache key includes tier.
11. Scale 10× honest / 100×
10×. More members per tier is still one policy. Do not explode per-user custom roles first.
100×. MISSING: company-wide IdP, SSO to Amazon Cognito fiction, global denylist cluster.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| JWT org_id trusted | Skip RLS | Deny fixtures | Restore RLS | Token is identity not policy |
| Secrets in payload | Leak on XSS | Code review | Put ids only | No passwords in JWT |
| Guard missing | Action leak | Route tests | Default deny | New endpoint checklist |
| Auth0 rabbit hole | Wrong evidence | Skills vs bullet | Redirect to Nest+RLS | T3 card |
| Long-lived JWT | Revoke hard | MISSING denylist | Speak CS short exp | Do not invent TTL |
13. Five troubleshooting scenarios
- User hits admin API: guard. Then RLS still for data.
- Two tasks lose login: session store vs JWT CS.
- Bot ignores RBAC: service role class.
- CORS * plus cookie: CSRF class — CS, no exploit.
- Interviewer points Auth0: listed; intern evidence is this card.
14. Monitoring
MISSING: auth metrics. FACT: isolation tests.
15. Security slice
This whole card is the security slice: identity, actions, rows. No InstaRecon payloads.
16. Performance / Frugality
Frugality: do not buy Auth0 theatre to explain three tiers you already enforced in Postgres.
17. Alternatives
| Alternative | Why not on this intern/project |
| Auth0 as Ylogx prod | Listed-only. |
| Sessions on one box | Two ECS tasks. |
| RBAC only | Chatbot SQL. |
| RLS only | Admin POST. |
| API keys in Git | Must-not. |
18. When NOT to use
Do not use JWT as RLS. Do not put this story on IQVIA BRDs.
19. Limitations
MISSING: exact three role names. Prepare from YOUR memory if they exist internally — do not invent on the PDF.
20. What I vs we vs must-not-claim
I: mapping and guards I owned. We: IdP if any. Must-not-claim: Auth0 operator, Amazon Cognito, mentee security training.
21. What would the interviewer ask next?
Can RBAC live only in NestJS? For HTTP verbs yes; for bot SQL no.
22. Mini follow-up chain
Why RBAC+JWT? Actions + identity. Why not Auth0 card? Listed. Feature? 3 tiers. If IdP down? MISSING vendor; API verify fails closed. Monitor? Deny tests. YOU? Guards+role map. Redesign? Same two-layer; still no Auth0 fiction.
T1.5 Redis — FACT: Ylogx −35% bot database latency Resume-derived
TECHNOLOGY. FACT: reducing bot database latency by 35% via caching. Cache-aside on the SQL-RAG path. Not a CDN. Not a shipped rate limiter. TTL and p95 MISSING.
1. 30-second what-is-it
Redis is an in-memory key-value store used here as application cache next to ECS. Cache-aside means the app reads Redis first, on miss queries Postgres as the user role, then SET. It is not the system of record and not CloudFront.
2. Two-minute how it works + where it fits
NL in → key = tier/role + query fingerprint (not raw NL only) → GET → hit returns if still that tier → miss → SQL RAG as role (RLS) → SET → return. Redis down: fail-open to Postgres for analysis availability; never fail-open RLS (never skip role). Schema lookups every turn were part of the DB cost — both schema cache and answer cache are hot. Dashboards’ sub-210 ms is edge+pooling+no LLM, not this −35% claim.
3. Why we used it on this intern/project
Problem: every NL turn hit Postgres; felt like ‘the model is thinking’ when DB was the cost. Why not bigger RDS first: Frugality — repeat NL is a cache. Why not CloudFront for tenant JSON: wrong layer, leak. LP: Frugality primary is this Redis card. Dive Deep shares isolation with RLS.
4. Where in architecture
FastAPI SQL RAG
→ [Redis] key includes tier
→ miss → Postgres RLS
→ SET
CloudFront is a different box (static)
5. Before / after / why simpler failed
Before: uncached SQL RAG. After: −35% bot DB latency. Simpler ‘cache the NL string globally’ leaks across tiers.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Cache-aside | App fills on miss | Warehouse writes not bot’s job | FACT pattern | Write-through? | Not this intern bot. |
| Key design | tier|role|fingerprint | Isolation | INFERENCE of exact delimiter | Raw NL key? | Must-not. |
| TTL | Expiry | Stale answers | MISSING — will not invent | What TTL? | Resume does not name it. |
| Hit ratio | Hot questions | 10× QPS | MISSING number | p95? | Must-not invent. |
| Fail-open DB | Redis down | Availability vs isolation | Same role always | Fail-open RLS? | Never. |
| SoR | Source of truth | Postgres | Redis is cache | Redis warehouse? | No. |
| vs CloudFront | App vs edge | Two layers | FACT both exist | Same −35%? | No. −35% is Redis bot. |
| vs Memcached | Another cache | We used Redis | No bake-off invented | Why Redis? | What shipped. |
| Eviction | Memory pressure | MISSING maxmemory policy | Do not invent allkeys-lru as prod | OOM? | MISSING. |
| Pub/sub | Skills temptation | 30 tiles | Do not invent bus | Rate limiter? | Did not ship. Count=1 not UTA. |
| Serialization | JSON vs pickle | MISSING | Do not dump format | Poison cache? | Do not cache denials as global empty. |
| Java analog | Jedis/Lettuce idea | Live Code | Prod was Python/TS | JVM Redis at Ylogx? | No. |
7. Internal flow
GET key
hit → return (same tier)
miss → validate SQL → exec as role → SET → return
Redis down → same exec as role, skip SET
8. How integrated
Beside FastAPI on ECS. Keys must include tier. Never cache tenant JSON at CloudFront as a substitute.
Shipped-pattern sketch (Python intern). TTL omitted because MISSING.
# PSEUDOCODE SKETCH — no production key or TTL disclosed
key = tier | role | fingerprint(allowed_schema, normalized_question)
value = redis.get(key)
if value is present: return value
with role_bound_read_only_connection(caller) as db:
sql = generate_and_validate(question, allowed_schema)
rows = db.execute(sql, bound_parameters) # RLS applies
if redis_available: redis.set(key, rows)
return rows
# never key = raw_question
# never fallback to owner/superuser
9. Config that matters
MISSING: TTL, maxmemory, cluster vs standalone, hit rate. FACT: −35%. INFERENCE: single Redis next to ECS, not a documented Redis Cluster.
10. Runtime: one request/data path
Bot NL → Redis → optional Postgres. Dashboard path does not need this Redis to defend sub-210.
11. Scale 10× honest / 100×
10×. Higher hit ratio on hot NL; still RLS on miss; still pool. I did not shard Redis or RDS.
100×. MISSING: Redis Cluster, read replicas, 100× QPS numbers. Learn; do not claim already ran.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Wrong-tier key | Cross-org answer | Deny fixtures on cache path | Include tier in key; flush bad keys | Key review |
| Cache denied as empty for all | False empty | Fixture | Do not global-negative cache | Per-tier negative if any |
| Redis down treated as auth skip | Leak | Code path | Fail to Postgres as role | Tests |
| Treat Redis as SoR | Lost writes story | Architecture | Postgres remains SoR | Frugality not fiction |
| Invented rate limiter | Wrong product | Interviewer trap | Say cache-aside only | See traps |
13. Five troubleshooting scenarios
- Bot slow, dashboards fine: this path, not ALB. MISSING APM; use −35% as the claim you measured intern-side.
- Wrong org answer after cache add: key without tier.
- Redis process dead: latency back, isolation holds.
- After schema change: stale schema cache class — MISSING exact invalidation.
- Interviewer says rate limiter: redirect. Independent SDE I count is 1, not UTA.
14. Monitoring
MISSING: Redis INFO metrics vendor. FACT: −35% is the intern measurement claim; no Datadog.
15. Security slice
Tier in key is the security slice. RLS still on miss. No secrets in cache values if avoidable.
16. Performance / Frugality
Frugality: cache repeat NL instead of bigger RDS first. LP mapping locked: Ylogx Frugality.
17. Alternatives
| Alternative | Why not on this intern/project |
| Bigger RDS | Repeat questions are cache-shaped. |
| CloudFront tenant JSON | Leak. |
| Memcached | Not what shipped. |
| Write-through warehouse | Bot does not own writes. |
| Kafka cache invalidation | Kafka not on resume. |
18. When NOT to use
Do not cache dashboard private JSON at the edge. Do not use Redis as RLS. Do not claim IQVIA Redis −35%.
19. Limitations
MISSING: TTL. [YOU NEED TO PREPARE THIS] if you remember a TTL from your memory — do not invent one in the room if you do not.
20. What I vs we vs must-not-claim
I: cache-aside + tier keys I owned. We: Redis host. Must-not-claim: ElastiCache topology I cannot defend, rate limiter product, Datadog hit-rate board.
21. What would the interviewer ask next?
Why cache-aside not write-through? App owns the fill after RLS query.
22. Mini follow-up chain
Why Redis? Repeat NL/schema cost. Why not bigger RDS? Frugality. Feature? Tier-scoped cache-aside. If Redis down? Postgres as same role. Monitor? −35% claim; no Datadog. YOU? Key design + miss path. Redesign? Same; still no TTL fiction.
T1.6 LangChain SQL RAG — FACT: Ylogx chatbot +65% analysis productivity Resume-derived
TECHNOLOGY. FACT: AI chatbot using LangChain SQL RAG; +65% data analysis productivity; Redis −35% on this path; RLS applies. Not LangGraph. Not LangSmith. Not dump-tables-into-the-LLM.
1. 30-second what-is-it
SQL RAG means: natural language in, constrained SQL out, execute as the user’s database role, return a result set. LangChain supplies the chain/tools/schema prompt pattern. It is not a 200-site research graph and not Azure Search.
2. Two-minute how it works + where it fits
User asks NL → Redis tier-scoped → miss → prompt with allow-listed schema/views + ‘return SQL only’ → parse/allow-list → parameterized read-only exec with timeout and row cap → show SQL with results (grain bugs stay visible) → never table-owner DSN. Eval is golden NL → expected SQL shape/result, not English BLEU, not LangSmith.
3. Why we used it on this intern/project
Problem: non-technical users waited on engineers; dumping warehouse rows hallucinates counts and blows tokens. Why not LangGraph here: NL→SQL→exec is a guarded chain, not parallel scrapers. Why not service-role: prompt injection becomes a dump. LP: Ownership of the bot path; isolation is Earn Trust.
4. Where in architecture
UI chatbot
→ FastAPI
→ [LangChain SQL RAG]
→ SQL as user role
→ Postgres RLS
→ optional Redis
5. Before / after / why simpler failed
Before: engineer-written SQL per question. After: +65% productivity behind isolation. Stuff-the-warehouse failed token limits and trust.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Schema in prompt | Allow-listed views | Model cannot invent pg_catalog | FACT pattern | Dump 90 days rows? | No. GROUP BY in SQL. |
| SQL-only instruction | No essay | Executable artifact | Show SQL to user | Hide SQL? | Hides grain bugs. |
| Parameterized | Bind values | Injection class | Still parse/allow-list | Prompt injection? | Role + allow-list. |
| Read-only | No UPDATE | Intern bot is analysis | FACT-shaped | Write queries? | No. |
| Row cap / timeout | Bound cost | MISSING exact numbers | Do not invent 500 rows as FACT | Hung? | Timeout class. |
| Role-bound exec | RLS applies | Same as T1.3 | Never owner | Superuser productivity? | Not +65%. |
| LangChain vs Graph | Chain vs graph | Retries/fan-out | Ylogx = chain | Retrofit Graph? | Must-not. |
| Eval | SQL shape | Not BLEU | Denied-tier fixtures | LangSmith here? | No. |
| Semantic layer | Approved metrics | 10× tables | Would-do if tables explode | 10×? | Allow-list first. |
| Hallucinated table | Fail closed | Unknown ident | Do not guess data | Fluent SQL? | Still validate. |
| Highest KFC orders | GROUP BY/ORDER/LIMIT | IE-shaped CS IE-asked | Do not dump rows | Other candidate pattern; not 10454435. |
| Java analog | Model emits SQL; DataSource role | Live Code | Prod Python | JVM SQL RAG intern? | No. |
7. Internal flow
NL → (Redis) → prompt(schema)
→ SQL string → validate
→ exec as role → rows
→ return rows + SQL
8. How integrated
FastAPI + LangChain + Postgres + Redis. NestJS does not execute the model SQL.
Shipped-pattern sketch. Exact timeout/row_cap MISSING — placeholders not resume numbers.
# Interview sketch — SQL RAG guardrails (Python intern)
sql = llm.invoke({"schema": ALLOWED_VIEWS, "q": question, "rule": "SQL only"})
sql = allowlist_parse(sql) # fail closed on unknown tables
rows = execute_as_role(sql, params, role=caller.db_role, timeout=..., row_cap=...)
return {"sql": sql, "rows": rows}
9. Config that matters
MISSING: model name, temperature, timeout seconds, row cap. FACT: LangChain SQL RAG, +65%, −35% Redis.
10. Runtime: one request/data path
See Redis + RLS cards; this is the NL→SQL hop between them.
11. Scale 10× honest / 100×
10×. Cache hot NL; pool; fail closed on unknown tables; still RLS. Read replicas = would-do not shipped.
100×. MISSING: warehouse size, 100× tables without a semantic layer I already ran.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Hallucinated JOIN grain | Wrong totals, looks official | Show SQL | Fix prompt/allow-list | Golden SQL shapes |
| Service-role exec | Dump | Fixture | Role DSN | Never owner |
| Catalog SELECT | Schema leak | Deny pg_catalog | Allow-list | Parser |
| LLM on dashboard | sub-210 dies | Path check | Refuse | Separate routes |
| LangSmith stolen | Wrong eval story | Interviewer | SQL-shape eval only | IQVIA owns LangSmith |
13. Five troubleshooting scenarios
- Wrong total, SQL looks fine: grain. Show SQL.
- Empty vs deny: RLS fixture vs truly zero.
- Slow bot: Redis miss vs model vs DB. −35% is DB side.
- Injection attempt: allow-list before bind.
- Product wants dashboard AI: refuse for sub-210.
14. Monitoring
MISSING: bot latency dashboard. FACT: −35% Redis; +65% productivity protocol MISSING — say mechanism then resume number.
15. Security slice
Allow-list, parameterized, RLS, read-only. Prompt is not authorization.
16. Performance / Frugality
Frugality: SQL aggregates vs stuffing rows. Do not buy a bigger model to skip RLS.
17. Alternatives
| Alternative | Why not on this intern/project |
| Dump tables into LLM | Tokens + hallucinated counts. |
| LangGraph | Wrong product; IQVIA. |
| Fine-tune on CSV | Not isolation. |
| Mongo warehouse | No RLS story. |
| Generic ChatGPT over screenshots | Not BI facts. |
18. When NOT to use
Do not use SQL RAG on the 30 KPI hot path. Do not use it without a role.
19. Limitations
MISSING: model vendor. [YOU NEED TO PREPARE THIS] which LLM you actually called, if you remember — do not invent OpenAI vs local as FACT if the PDF is silent.
20. What I vs we vs must-not-claim
I: chain guardrails + role exec. We: warehouse. Must-not-claim: LangGraph-on-Ylogx, LangSmith-on-Ylogx.
21. What would the interviewer ask next?
Why not LangGraph? No 200-site fan-out here.
22. Mini follow-up chain
Why SQL RAG? NL without dump. Why not LangGraph? Chain not research graph. Feature? SQL as role. If model down? Bot down; dashboards live. Monitor? SQL-shape tests. YOU? Guardrails. Redesign? Semantic layer; still RLS.
T1.7 LangGraph + Firecrawl / Bing / DuckDuckGo / Google Playwright — FACT: IQVIA Deep Research 200+ Resume-derived
TECHNOLOGY. FACT: Architected multi-agent Deep Research using LangGraph, LangChain, FastAPI, Firecrawl, Bing, Duck Duck Go, Google Playwright; 200+ websites ranked. Stateful agent orchestration. Not Ylogx. No IQVIA latency %.
1. 30-second what-is-it
LangGraph is a stateful graph of nodes: planner, parallel tools, ranker, writer, optional retrieve-grade cycle with an iteration cap. Tools append into shared state so a dead Playwright does not wipe Bing. Checkpoint keyed by thread id lets a long run resume. Ranking uses quality, recency, and agreement — not first-hit. 200+ is coverage, not nDCG.
2. Two-minute how it works + where it fits
FastAPI receives the query → planner writes a search plan → fan-out Firecrawl (crawlable pages), Bing and DDG (alternate indexes/snippets), Playwright (JS-heavy when APIs are not the page) → reducer appends docs → checkpoint → ranker (agreement down-ranks isolates) → writer synthesizes only from ranked state, refuse sentence without retrieved span → optional cycle, cap iterations. LangSmith traces node order (sibling card).
3. Why we used it on this intern/project
Problem: linear chain dies on first timeout; one Google API misses families of sites; first-hit looks confident when two pages contradict. Why four tools: coverage + rate limits; Frugality = fewer Playwright renders when snippets suffice. Why graph: parallel + retry + cycle + checkpoint. LP: IQVIA Invent and Simplify / Learn / Backbone (hybrid sibling). Do not force Hire and Develop.
4. Where in architecture
FastAPI
→ [LangGraph]
├ Firecrawl
├ Bing
├ DuckDuckGo
└ Playwright
→ rank (agreement)
→ writer (cite-or-abstain)
5. Before / after / why simpler failed
Before: one-shot chat or sequential chain. After: 200+ ranked. Mega-prompt failed context and citations.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| State | Typed dict: query, docs, ranks, errors | Shared memory | Parallel append | Dump IQVIA schema? | Must-not. |
| Reducer | Append docs | Failed tool ≠ wipe | FACT stateful | Last stdout wins? | No. |
| Checkpoint | Persist by thread id | Resume | MISSING storage engine | Postgres checkpointer? | Do not invent. |
| Fan-out | Parallel tools | Coverage | Four named tools | Serial Google-first? | First-hit confidence. |
| Iteration cap | Stop cycles | Unbounded retrieve-grade | Fail to human rather than loop | Forever? | Bug. |
| Agreement | Independent overlapping claims | Contradictions | Not mirrors of one wire story | nDCG? | Not on resume. |
| Firecrawl vs Playwright | Service vs browser | Cost/latency | FACT both named | Playwright everywhere? | Frugality no. |
| Bing vs DDG | Different index | Gaps | Agreement feature | Vanity list? | No. |
| Cite-or-abstain | Span overlap | Fluent lie | LangSmith sibling | Confidence? | Not enough. |
| HITL | Resume from checkpoint | MISSING shipped console | Do not claim HITL UI not on PDF | Product UI? | MISSING. |
| ToS / scraping | Research tools for analysts | Ethics | No exploit lecture | InstaRecon mix? | Redirect. Consent demo only. |
| Java analog | Interface of retrieve nodes | Live Code | Shipped Python | JVM agent intern? | No. |
7. Internal flow
query → plan
→ parallel tools → append state
→ checkpoint
→ rank
→ write or hop-again (capped)
8. How integrated
LangChain tools inside LangGraph nodes; FastAPI entry; LangSmith traces.
Shipped-pattern sketch.
# Interview sketch — parallel tools append (Python intern)
# Not a proprietary IQVIA graph dump.
def scrape_node(state):
# each tool returns docs; reducer appends
return {"docs": state["docs"] + new_docs}
# dead Playwright must not clear Bing docsStandard CS illustration — not a manifest/config I shipped on an intern bullet.
# Standard CS illustration — not a manifest I shipped
# checkpointer = MemorySaver() # or a real saver; storage engine MISSING
# graph.compile(checkpointer=checkpointer)
9. Config that matters
MISSING: checkpointer backend, concurrency cap, scrape cache TTL, gold-set size. FACT: 200+ sites, four tools, ranking.
10. Runtime: one request/data path
One research query fans tools, ranks, writes. Empty scrape must not vote.
11. Scale 10× honest / 100×
10×. More ranker and scrape cache, not Playwright on every URL. Cap fan-out. Do not re-run 200-site graph for one 404 — checkpoint.
100×. MISSING: shard a research index, 100× QPS, bill. No IQVIA latency %.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Empty scrape → writer | Fluent fiction | LangSmith | Skip writer / retry | Treat empty as non-doc |
| Syndicated mirrors as agreement | False consensus | Source-type | Down-rank duplicates | Independence |
| Unbounded cycle | Cost/latency | Cap | Fail closed | Iteration limit |
| First-hit ranking | Confident wrong | Ranker | Agreement+recency+quality | 200+ is coverage |
| Linear chain rewrite | Lose retries | Architecture | Keep graph | Backbone |
13. Five troubleshooting scenarios
- Fluent answer, empty docs in trace: writer bug.
- Playwright timeouts, Bing present: reducer must keep Bing.
- Contradictory sources: surface disagreement, do not mush.
- Cost spike: fewer Playwright, more snippets.
- Legal probe: research for analysts, no exploit steps.
14. Monitoring
FACT: LangSmith traces. MISSING: scrape QPS board, latency %.
15. Security slice
Do not scrape confidential BRDs with this web stack — that is Hybrid RAG. Secrets not in traces. No InstaRecon payloads.
16. Performance / Frugality
Frugality: selective Playwright. Invent: graph vs chain.
17. Alternatives
| Alternative | Why not on this intern/project |
| Linear LangChain chain | No parallel/retry/checkpoint. |
| One Google API | Coverage/rate limits. |
| Playwright on every URL | Cost. |
| Mega-prompt 200+ pages | Citations invent. |
| Ylogx SQL RAG as this graph | Wrong intern. |
18. When NOT to use
Do not use this graph as Ylogx dashboards. Do not use it as cite-free BRD tests (Hybrid sibling).
19. Limitations
MISSING: exact ranker model. Do not invent a second model card.
20. What I vs we vs must-not-claim
I: graph wiring, ranker vs first-hit, tool fan-out. We: IQVIA platform. Must-not-claim: Firecrawl author, k8s crawler fleet.
21. What would the interviewer ask next?
Isn’t LangChain enough? Tools yes; this product needs a graph.
22. Mini follow-up chain
Why LangGraph? Parallel+checkpoint+cycles. Why not one scraper? Families of sites. Feature? Agreement ranking. If Playwright down? Other tools still append. Monitor? LangSmith. YOU? Wiring+ranker. Redesign? Cache scrapes; still cite-or-abstain.
T1.8 Azure AI Search Hybrid + Semantic — FACT: IQVIA Hybrid RAG on 200+ page BRDs Resume-derived
TECHNOLOGY. FACT: Hybrid RAG Agent with Azure AI Search (Hybrid + Semantic), GraphDB, LangGraph adaptive retrieval; 200+ page BRD/PDF. No IQVIA latency %. FAISS is skills. Qdrant is not on the resume.
1. 30-second what-is-it
Hybrid on Azure = lexical (BM25-like) plus vector in one query. Semantic here = Azure’s semantic ranker on top — I did not invent an embedder. Lexical hits clause IDs like REQ-1044; semantic hits policy language. Writer sees a small chunk set, not 200 pages. Cite-or-abstain still applies.
2. Two-minute how it works + where it fits
BRD chunked with structure (headings, clause IDs, tables) → index in Azure → query hybrid → semantic reorder → optional GraphDB hop (next card) → LangGraph chooses lexical vs semantic vs hop → generate from small set → LangSmith gold questions with expected citation ids. Secrets for Azure in env, not traces. GiftedBooks is a different store (student PDF, sub-300 ms) — do not steal Azure there.
3. Why we used it on this intern/project
Problem: stuffing PDF invents citations; vector-only FAISS misses IDs/table names. Why not Qdrant: not on resume. Why not GiftedBooks FAISS-as-IQVIA. LP: Backbone hybrid vs vector-only; Invent retrieval.
4. Where in architecture
BRD/PDF
→ structured chunks
→ [Azure AI Search Hybrid+Semantic]
→ optional GraphDB
→ writer + LangSmith
5. Before / after / why simpler failed
Before: stuff-the-PDF or cosine-only. After: process 200+ page BRDs with citations. FAISS-only misses FR-214-style IDs.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Hybrid | Lexical+vector one query | IDs and meaning | FACT wording | Two products? | One query + ranker on top. |
| Semantic ranker | Azure reorder | Policy phrasing | Not ‘we trained embedder’ | Homegrown ranker? | Do not invent. |
| Chunk structure | Headings/IDs/tables | Not random 512 only | INFERENCE of exact sizes | Token invoice? | MISSING. |
| Top-k small set | 5–20 shaped CS | Not 200 pages in prompt | INFERENCE of k | Exact k FACT? | No. |
| Adaptive router | LangGraph chooses hop | Question type | Clause vs depends-on vs meaning | Always embed? | No. |
| Cite-or-abstain | Span overlap | Fluent annex mix-up | LangSmith | Similar annex? | Failure class. |
| FAISS skills | Listed vector lib | Not this intern retrieval | Redirect Azure | FAISS at IQVIA? | Must-not. |
| Qdrant | Not on resume | Trap | Never say | Did you? | No. |
| Re-embed every Q | Cost | Index once | 10× pages | SLA? | None on IQVIA bullets. |
| Confidential traces | Full BRD in LangSmith | Leak | Ids not annex text | Earn Trust |
| Multi-tenant SaaS | Not on PDF | JWT theatre | Do not invent | Ylogx RLS steal? | No. |
| Java analog | Search client interface | Live Code | Python intern | Spring Search? | No. |
7. Internal flow
question → hybrid retrieve
→ semantic rerank
→ maybe graph hop
→ small context → generate
→ fail if no span
8. How integrated
Azure SDK from FastAPI/LangGraph. GraphDB sibling. LangSmith evals.
Shipped-pattern sketch. Exact API flags may differ — do not swear a console screenshot.
# Interview sketch — hybrid retrieve then generate (Python intern)
hits = azure_search.search(q, query_type="semantic") # hybrid+semantic as billed
ctx = hits[:SMALL_K]
if not spans_overlap(answer, ctx):
abstain()
9. Config that matters
MISSING: chunk size, embedding model name, replica SKU, bill, k. FACT: Hybrid + Semantic + 200+ pages.
10. Runtime: one request/data path
BRD question → Azure → optional hop → cited answer.
11. Scale 10× honest / 100×
10×. Do not re-embed every question. Hybrid retrieve small set. Graph hop cheaper than another generation for relational Q. No shard Azure claimed.
100×. MISSING: 100× tenants, private endpoint topology, 99.99% Search SLA I operated.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Wrong annex, similar meaning | Wrong tests | Gold citation ids | Abstain / hop | Evals |
| Fluent no span | Trust failure | LangSmith fail | Do not ship sentence | Gate |
| FAISS story under pressure | Wrong store | Skills vs bullet | Say Azure | Trap |
| Full PDF in trace | Confidential leak | Trace review | Ids only | Secrets env |
| Stolen sub-210 | Wrong product | IQVIA has no latency % | Do not borrow Ylogx | Lanes |
13. Five troubleshooting scenarios
- Misses REQ-1044: lexical not used — hybrid.
- Wrong section tests: gold ids.
- Latency probe: none on resume; do not invent.
- FAISS pointed on skills: listed; intern is Azure.
- GiftedBooks mix: student file vs BRD SaaS-shaped intern.
14. Monitoring
FACT: LangSmith. MISSING: Azure portal metrics, latency %.
15. Security slice
Confidential BRDs; env secrets; no full text in traces.
16. Performance / Frugality
Frugality: hybrid retrieve vs stuffing. Do not operate a second vector DB for fashion.
17. Alternatives
| Alternative | Why not on this intern/project |
| Stuff PDF | Hallucinated cites. |
| FAISS-only | Misses IDs; listed skill. |
| Qdrant | Not on resume. |
| Keyword only | Misses paraphrase policy. |
| GiftedBooks store | Different product. |
18. When NOT to use
Do not use Azure as GiftedBooks. Do not claim Ylogx used Azure Search.
19. Limitations
MISSING: SKU and bill. [YOU NEED TO PREPARE THIS] only if you truly remember — else say MISSING.
20. What I vs we vs must-not-claim
I: retrieval wiring + evals. We: Azure subscription. Must-not-claim: Azure billing owner, Qdrant, FAISS-prod-IQVIA.
21. What would the interviewer ask next?
Hybrid vs semantic — two products? Hybrid = lexical+vector; semantic = Azure ranker on top.
22. Mini follow-up chain
Why Azure hybrid? IDs + meaning. Why not FAISS? Listed; intern is Azure. Feature? Semantic ranker. If Search down? RAG fails closed. Monitor? LangSmith gold cites. YOU? Chunk+query path. Redesign? Freeze eval slice before a fourth tool.
T1.9 GraphDB hops — speak GraphDB; Neo4j is skills Resume-derived
TECHNOLOGY. FACT intern bullet: GraphDB with Hybrid RAG. Skills: Graph DB (Neo4j). Speak GraphDB for the intern. Do not fake Cypher-as-prod-DBA or a cluster diagram.
1. 30-second what-is-it
A graph stores nodes (requirements/sections) and edges (DEPENDS_ON-shaped). A hop starts at a matched clause and walks neighbors so ‘what else breaks’ is an edge, not a cosine neighbor. Bounded depth. Writer still cite-or-abstain on hopped text.
2. Two-minute how it works + where it fits
Structured chunks have clause IDs → graph nodes/edges → router: clause ID → Azure lexical-heavy; depends-on question → GraphDB hop; meaning-only → hybrid+semantic. Writer gets chunks plus neighbors. LangSmith fails generated tests with no span. Cosine will not follow DEPENDS_ON. Recursive SQL can express a tree; intern story is GraphDB hops plus Azure — do not invent a warehouse graph.
3. Why we used it on this intern/project
Problem: tests generated from the wrong section. Why not bigger k in vector search: more similar prose, still no edge. LP: Invent + Backbone with hybrid.
4. Where in architecture
Azure hit on clause
→ [GraphDB hop 1–2]
→ neighbor chunks
→ writer
5. Before / after / why simpler failed
Before: vector-only ‘related paragraph in wrong annex.’ After: hop. Unbounded expansion is the failure.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Node | Requirement/section | Identity | Clause IDs | Dump schema? | No. |
| Edge | DEPENDS_ON-shaped | Impact questions | FACT hop idea | Cosine edge? | No. |
| Hop depth | 1–2 | Cycles/cost | Cap like LangGraph iterations | Whole graph in prompt? | No. |
| Neo4j | Skills vendor | Cypher CS | Speak GraphDB unless they point skills | Cluster I operated? | Must-not. |
| Cypher MATCH | Query language CS | If they point Neo4j | Standard CS illustration | Prod DBA? | No. |
| vs FAISS | Structure vs similarity | Lanes | Azure+Graph intern | Qdrant? | Never. |
| Adaptive router | LangGraph chooses | Question type | FACT adaptive retrieval | Always hop? | No. |
| Cite hopped text | Still span | Wrong neighbor | LangSmith | Skip cite? | No. |
| SQL recursive CTE | Tree in SQL | CS alternative | Not the intern named hop | Warehouse graph? | Do not invent. |
| 10× BRDs | More nodes | Eval slice first | No fourth tool without eval | Shard graph? | Did not. |
| Cycles | Mutual depends | Cap depth | Same discipline | Infinite? | Bug. |
| Java analog | Adj list BFS | Live Code Distance K family | Field was Python graph store | JVM GraphDB intern? | No. |
7. Internal flow
match clause → walk DEPENDS_ON
→ fetch neighbor text
→ cap depth
→ generate with cites
8. How integrated
Beside Azure in LangGraph adaptive retrieval.
Shipped-pattern sketch. Not a Neo4j cluster config.
# Interview sketch — bounded hop (Python intern)
neighbors = graph.neighbors(clause_id, edge="DEPENDS_ON", max_depth=2)
ctx = azure_chunks + neighbor_chunks
Standard CS illustration — not a manifest/config I shipped on an intern bullet.
// Standard CS illustration — not a manifest I shipped
// MATCH (r:Req {id:$id})-[:DEPENDS_ON*1..2]->(n) RETURN n
9. Config that matters
MISSING: vendor confirmation if Neo4j was actually the intern GraphDB, hop SQL vs Cypher, cluster size. Speak GraphDB. [YOU NEED TO PREPARE THIS] only if you remember the real vendor — do not invent Neo4j-ops to match the skills line.
10. Runtime: one request/data path
Impact question → hop → cited neighbors + Azure chunks.
11. Scale 10× honest / 100×
10×. Bounded hops. More BRDs = more indexed nodes, not a fourth search tool without eval.
100×. MISSING: graph cluster sharding, 100× hop QPS.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Hop to related-looking non-edge | Wrong tests | Gold section ids | Tighten edges | Evals |
| Unbounded expansion | Token blowup | Depth cap | Cap | Like LangGraph cap |
| Neo4j ops novel | Caught | Skills vs bullet | Speak GraphDB | No cluster theatre |
| Replace Azure with only graph | Miss lexical/semantic | Architecture | Keep hybrid | Both |
| Cosine as hop | No DEPENDS_ON | Interview | Explain edge vs neighbor | Trap |
13. Five troubleshooting scenarios
- Wrong child requirement: edge quality.
- Slow answers: hop depth too high.
- Skills-line Neo4j grilling: CS MATCH then redirect intern GraphDB.
- Test pack from annex: LangSmith span fail.
- 10× BRDs: freeze eval slice.
14. Monitoring
FACT: LangSmith. MISSING: graph metrics vendor.
15. Security slice
Confidential graph of requirements; no full BRD in traces.
16. Performance / Frugality
Frugality: hop cheaper than another LLM call for relational Q.
17. Alternatives
| Alternative | Why not on this intern/project |
| Bigger vector k | No edges. |
| Only keyword | Misses paraphrase + still weak on impact. |
| Stuff more chunks | Context + invention. |
| Neo4j cluster flex | Not evidenced. |
| Ylogx RLS as graph | Wrong intern. |
18. When NOT to use
Do not hop the open web Deep Research like a BRD graph. Do not claim cosine is a FK.
19. Limitations
MISSING: exact edge types beyond DEPENDS_ON-shaped language.
20. What I vs we vs must-not-claim
I: hop in the adaptive router. We: graph hosting. Must-not-claim: Neo4j DBA, shard, Cypher performance tuning novel.
21. What would the interviewer ask next?
Why not just bigger k? Still no DEPENDS_ON.
22. Mini follow-up chain
Why GraphDB? Dependencies. Why not cosine? Neighbor ≠ edge. Feature? Bounded hop. If graph down? Impact Q degrade; hybrid may still answer meaning Q. Monitor? LangSmith tests. YOU? Router+hop. Redesign? Still cap depth; still speak GraphDB.
T1.10 LangSmith — FACT: IQVIA evals and test-case generation tracing Resume-derived
TECHNOLOGY. FACT: evals, test case generation with LangSmith tracing on IQVIA. Not Ylogx, GiftedBooks, or Stratify. No extra %.
1. 30-second what-is-it
LangSmith is tracing plus evaluation for LLM/graph runs: you see node order, retrieval set, and whether an answer overlaps retrieved spans. Fluent English is not a test. Gold questions carry expected citation ids. Generated tests are themselves a traced job; humans spot-check a sample (headcount MISSING).
2. Two-minute how it works + where it fits
Every node traced: query, retrieval set, tool order, answer. Eval fails if no overlapping span. Do not log full confidential BRDs. Secrets not in traces. Deep Research: traces catch empty scrape → writer. Ylogx eval is SQL shape + denied-tier fixtures. Argus eval is mAP. Do not steal LangSmith there.
3. Why we used it on this intern/project
Problem: analysts trust a wrong citation; wrong-section tests look professional. Why not BLEU: wrong family. Why not ‘it sounded good.’ LP: Highest Standards analog on IQVIA quality; Learn/Invent. Argus owns Are Right/Highest Standards primary on 73% — do not double-primary LangSmith as Argus.
4. Where in architecture
LangGraph run
→ [LangSmith trace]
→ gold citation ids
→ pass/fail span overlap
5. Before / after / why simpler failed
Before: fluency as QA. After: traced evals. Grammar-only eval failed the product.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Trace | Spans of nodes | Debug empty scrape | FACT tracing | Datadog? | No. LangSmith here. |
| Gold item | Expected citation id | Not n-gram | FACT evals | Pass rate %? | MISSING. |
| Span overlap | Answer ⊆ retrieved | Fluent ungrounded | Fail the eval | Model confidence? | Insufficient. |
| Test-case gen job | Traced | Wrong section | FACT wording | Who spots-checks? | Humans on a sample; N MISSING. |
| PII/BRD in trace | Leak | Ids not annex | Earn Trust | Full PDF? | No. |
| Ylogx steal | Wrong eval | SQL shape | Must-not | LangSmith Ylogx? | No. |
| BLEU/RAGAS invented | Pretty score | Trap | Do not invent | Public study? | No. |
| Unit tests vs traces | Crash vs fluency | Both useful | Traces catch ungrounded | Only pytest? | Insufficient. |
| Cost of tracing | 10× gold on frozen slice | Not more tools | Trace ids/chunk ids | Bill? | MISSING. |
| HITL console | MISSING | Checkpoint ≠ UI claim | Do not invent | Shipped HITL? | Not on PDF. |
| Java tracing | Structured spans idea | Live Code | Intern Python | JVM LangSmith? | No. |
| GiftedBooks citation eval | Would-add | Not claimed | Honest gap | Claim it? | No. |
7. Internal flow
run → export spans
→ compare answer to gold cites
→ fail if no overlap
→ human samples tests
8. How integrated
Wrap LangGraph invoke with tracing. Env keys, not in Git.
Shipped-pattern sketch. Pass-rate % MISSING.
# Interview sketch — fail if ungrounded (Python intern)
trace = run_graph(q)
if not overlap(trace.answer, trace.retrieved_spans):
fail_eval(q, expected_citation_ids)
9. Config that matters
MISSING: pass rate, gold-set size, project name in LangSmith, bill. FACT: tracing + evals + test-case gen.
10. Runtime: one request/data path
A BRD or research run is traced; writer blocked conceptually if empty retrieval.
11. Scale 10× honest / 100×
10×. More gold on a frozen slice, not more scrapers. Tracing cost: ids not raw annexes.
100×. MISSING: enterprise LangSmith org admin, 100× eval QPS I ran.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Grammar eval only | Ships uncited fluent | Wrong metric | Span overlap | Change eval |
| Full BRD logged | Confidential | Trace audit | Redact to ids | Policy |
| Stolen onto Ylogx | Caught | SQL-shape eval | Keep lanes | Trap |
| Empty scrape not visible | Bad write | Need traces | Instrument nodes | That is why LangSmith |
| Invented RAGAS | Fake | PDF silent | Refuse number | No extra % |
13. Five troubleshooting scenarios
- Fluent wrong cite: gold id miss.
- Empty docs in trace: writer still ran.
- Prod wants traces of full PDF: refuse.
- Ylogx quality: denied-tier fixtures not LangSmith.
- Argus: mAP not traces.
14. Monitoring
FACT: LangSmith is the monitoring for IQVIA LLM path. MISSING: dashboards beyond that, Datadog.
15. Security slice
No secrets in traces; no full BRD; credentials in env.
16. Performance / Frugality
Frugality: fail a sentence instead of adding a fifth scraper. Eval before scale.
17. Alternatives
| Alternative | Why not on this intern/project |
| BLEU | Wrong family. |
| Vibes / confidence | Fluency. |
| Only unit tests | Won’t catch ungrounded. |
| LangSmith on GiftedBooks claimed | Would-add only. |
| Datadog traces as substitute | Not on resume. |
18. When NOT to use
Do not use LangSmith as a substitute for RLS. Do not claim it on dashboards.
19. Limitations
MISSING: pass rate. [YOU NEED TO PREPARE THIS] only if you remember an internal rate — do not invent one.
20. What I vs we vs must-not-claim
I: eval design (span/cites) and tracing the graph. We: LangSmith account. Must-not-claim: company-wide eval platform owner.
21. What would the interviewer ask next?
Isn’t the model’s confidence enough? No.
22. Mini follow-up chain
Why LangSmith? Fluent≠cited. Why not BLEU? Citations. Feature? Span-overlap fail. If LangSmith down? Blind on fluency bugs; still must not ship uncited. Monitor? This is the monitor. YOU? Gold ids + fail rule. Redesign? More gold slice; still no full BRD in traces.
T1.11 Docker — FACT: Ylogx ECS containers; Argus containerized 20+ cameras Resume-derived
TECHNOLOGY. FACT: Ylogx deployed Docker containers on ECS; Argus containerized solution supporting 20+ camera feeds. Kubernetes is not this card. Image ≠ orchestrator.
1. 30-second what-is-it
A Docker image is a repeatable filesystem + command: dependencies travel with the app so ‘works on my laptop’ is not the production artifact. A container is a running instance. ECS runs those containers as tasks. Argus uses containers to isolate camera workers — not a claimed EKS cluster.
2. Two-minute how it works + where it fits
CI builds an image → push → ECS task definition references image, CPU/memory, ports, env → service keeps desired count → ALB health. Secrets at runtime, not baked in. Local Compose is for dev. Prod serving is ECS. Argus: one worker per stream or batched workers — I describe honestly without drawing k8s control planes. MISSING: registry name (ECR vs Docker Hub), base image, exact CPU.
3. Why we used it on this intern/project
Problem: SSH snowflake host cannot defend 99.9%. Why not k8s: listed skill; intern orchestrator is ECS. LP: Ylogx Ownership of deploy path; Frugality = not operating a control plane you do not need.
4. Where in architecture
CI → image
→ [Docker]
→ ECS task
→ ALB
Argus: camera worker containers → YOLO → Postgres events
5. Before / after / why simpler failed
Before: mutable VM. After: repeatable image + desired count. Compose-on-one-box forever failed replacement of sick copies.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Image vs container | Recipe vs running | Reproducibility | FACT Docker | Pod? | That's k8s CS; T3. |
| Dockerfile | Layers | MISSING intern file | Do not dump a fake 40-stage file | Multi-stage FACT? | MISSING. |
| Tag / digest | What rolled | Rollback = previous image | CI/CD | Latest tag always? | Risky CS. |
| Env vs bake secrets | Runtime config | Leak in layers | Task role / env | Password in image? | Must-not. |
| Port | Process listen | ALB target | MISSING exact port | Host network? | MISSING. |
| Health inside container | Process up ≠ app up | ALB checks | FACT health checks | k8s probe? | Redirect ECS. |
| Compose | Local multi-process | Dev | Not 99.9% mechanism | Prod Compose? | Must-not claim. |
| Argus vs Ylogx | Workers vs BI service | Two products | Both containerized FACT | Same ECS? | Argus ECS not claimed. |
| Sidecar mesh | Istio temptation | Not on resume | Must-not | Invent? | No. |
| Root user | CS hardening | MISSING intern user | Do not invent nonroot as FACT | [YOU NEED TO PREPARE THIS] if you remember. |
| Java analog | Same image could run JVM | Could | This intern image was Python/TS | Spring on ECS intern? | No. |
| Layer cache CI | Faster builds | MISSING workflow | GitHub Actions listed | 20-stage textbook? | Do not invent. |
7. Internal flow
build → push
→ task starts container
→ listen port
→ ALB health
→ serve
8. How integrated
Ylogx: Docker+ECS+CI/CD. Argus: containerized feeds. No EKS.
Standard CS illustration — not a manifest/config I shipped on an intern bullet.
# Standard CS illustration — not a Ylogx Dockerfile I shipped
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
9. Config that matters
MISSING: CPU/mem numbers, launch type, image registry, Argus compose vs k8s. FACT: Docker + ECS; Argus containerized 20+.
10. Runtime: one request/data path
Ylogx request hits a healthy container task. Argus frame hits a worker container then Postgres.
11. Scale 10× honest / 100×
10×. Same image, more tasks (Ylogx) or more workers (Argus). Check pools. Do not explode microservices I did not ship.
100×. MISSING: 100× node cluster, service mesh, multi-arch build farm I ran.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Secrets in image | Leak forever | Image scan CS | Rotate; rebuild without secret | Runtime env |
| Desired count 1 no health | 99.9% story dies | ALB empty TG | Health + count | ECS service |
| Claim EKS | Caught | Skills vs bullet | Say Docker+ECS | T3 k8s |
| Argus k8s novel | Caught | Containerized only | No control plane | Trap |
| Latest tag rollback mystery | Wrong bits | Pin digest CS | Previous task def | CI |
13. Five troubleshooting scenarios
- Task crash loop: logs on the task (MISSING vendor); health fails; ECS replaces. Not CrashLoopBackOff unless they ask k8s CS.
- Healthy but RLS broken: health is not policy.
- Argus camera 12 late: worker/FPS, not Ylogx ECS.
- CI failed tests: do not roll.
- Interviewer k8s: listed; this card is Docker.
14. Monitoring
FACT: ALB health checks. MISSING: container CPU dashboards, Datadog.
15. Security slice
No secrets in image; task role not long-lived keys in Git.
16. Performance / Frugality
Frugality: one app image, more tasks — not a microservice explosion. Not k8s control plane cost.
17. Alternatives
| Alternative | Why not on this intern/project |
| SSH VM | Drift. |
| Compose as prod HA | No managed replace. |
| EKS because listed | Indefensible. |
| Lambda always-on BI | Wrong shape. |
| Bake .env into image | Leak. |
18. When NOT to use
Do not use Docker as an excuse to skip RLS tests. Do not claim Kubernetes desired count.
19. Limitations
MISSING: Dockerfile contents. [YOU NEED TO PREPARE THIS] base image/runtime if you remember.
20. What I vs we vs must-not-claim
I: containerize and roll path I owned. We: registry/account. Must-not-claim: platform owner, EKS, Istio.
21. What would the interviewer ask next?
Task vs service? Task = running copy; service = keep N healthy.
22. Mini follow-up chain
Why Docker? Repeatable artifact. Why not k8s? ECS shipped. Feature? Image+task def. If image bad? Rollback previous definition. Monitor? ALB health. YOU? Image+roll. Redesign? Same; pin digest; still no EKS.
T1.12 AWS serving — CloudFront → ALB → ECS + Route 53/GoDaddy + CI/CD/GitHub Actions Resume-derived
TECHNOLOGY. FACT: CloudFront, ECS, Docker, automated CI/CD, sub-210 ms, GoDaddy DNS with Route 53 through an ALB, 99.9% uptime. Not EKS. Not Nginx-as-named-edge. Not Lambda. Fargate vs EC2 launch MISSING. GitHub Actions is on the skills line with CI/CD — workflow filename MISSING.
1. 30-second what-is-it
CloudFront is the CDN/edge: TLS at PoPs, cache static. ALB is L7 HTTP: host/path, target groups, health checks, ACM. ECS service keeps desired count of tasks. GoDaddy is registrar; Route 53 is hosted zone; NS delegate; Alias to CloudFront or ALB. CI/CD builds image and rolling-replaces. 99.9% talk = desired count + health + CI/CD + edge static — not Datadog, not k8s.
2. Two-minute how it works + where it fits
Client DNS → GoDaddy NS → Route 53 → CloudFront (static React) and/or ALB (API) → healthy ECS NestJS/FastAPI → Redis/Postgres. Do not cache tenant JSON at the edge. CloudFront 403 ≠ ALB 502 ≠ origin 5xx ≠ RLS 403. NLB is L4; we used ALB. Tasks private; users never speak task IPs (VPC layout names MISSING).
3. Why we used it on this intern/project
Problem: one VM, no edge, no L7 health replace. Why not Lambda: cold start, time cap, always-on BI, long RAG. Why not k8s: T3. LP: Ownership of serving path; 99.9% without SRE theatre.
4. Where in architecture
Browser
→ GoDaddy (registrar)
→ Route 53 (zone)
→ CloudFront (static)
→ ALB (L7 + health)
→ ECS tasks (Docker)
→ Redis / Postgres
5. Before / after / why simpler failed
Before: snowflake host. After: 99.9% + sub-210 on dashboards. Hitting ECS for every JS bundle would waste origin. Caching private JSON at CloudFront would leak.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Registrar vs zone | GoDaddy vs Route 53 | Who answers DNS | FACT both | Same thing? | No. |
| Alias | Route 53 to CF/ALB | Apex/host | MISSING exact records | CNAME vs Alias CS | Alias to AWS resources. |
| CloudFront cache | Static/public GET | sub-210 assets | Not tenant JSON | Redis vs CF? | Different layers. |
| ALB health | Target in/out | 99.9% mechanism FACT | Sick task dropped | Datadog? | Must-not invent. |
| Desired count | N tasks | Scale intern-honest | MISSING N | Shard? | Did not. |
| Task definition | Image, CPU, mem, env, ports | Recipe | Launch type MISSING | Fargate FACT? | No. |
| Rolling replace | New healthy then drain old | CI/CD | Rollback = prior image | k8s Deployment? | Analogy T3, not shipped. |
| ACM TLS | Cert on CF/ALB | INFERENCE typical | Do not invent HTTP/3 prod | HTTP/3? | CS only. |
| GitHub Actions | CI skill + CI/CD bullet | Build/push/roll | MISSING yaml name | Jenkins? | Not on resume. |
| IAM task role | AWS API perms | Not DB password in Git | FACT-adjacent | Long-lived keys in repo? | Must-not. |
| Nginx | Skills | Named hop is CF→ALB→ECS | T3 | Nginx terminated TLS? | Must-not claim. |
| Multi-region | Not shipped | 99.99 trap | MISSING — did not ship | Active-active? | No. |
7. Internal flow
DNS → edge static
API → ALB → healthy task
deploy: build image → new task → health → drain
8. How integrated
See Docker card. GitHub Actions listed as the CI flavor; do not invent 20 stages.
Standard CS illustration — not a manifest/config I shipped on an intern bullet.
# Conceptual ECS task def fields — not a dumped JSON I shipped
# family, cpu, memory, image, portMappings, environment, healthCheck
# Standard CS illustration — not a manifest/config I shipped on an intern bullet.
Standard CS illustration — not a manifest/config I shipped on an intern bullet.
# CI shape (GitHub Actions listed) — not a real workflow file
# on: push
# jobs: test → docker build → push → ecs service update
9. Config that matters
MISSING: desired count, health path/interval, launch type, ACM ARN, CloudFront cache TTLs, Actions yaml. FACT: hops + 99.9% + sub-210 + CI/CD.
10. Runtime: one request/data path
Dashboard: JS from CloudFront, JSON via ALB to NestJS. Bot: ALB to FastAPI. DNS misconfig never reaches app.
11. Scale 10× honest / 100×
10×. CloudFront offload static; raise desired count after pool check; still one primary Postgres+RLS. Do not cache tenant JSON at edge.
100×. MISSING: 100× multi-region, Global Accelerator, 99.99, AWS bill I quoted.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| CF 403 vs ALB 502 | Wrong hop debug | Status class | Classify then change one hop | Checklist |
| NS not delegated | New Alias unused | dig NS | Fix GoDaddy NS | Registrar≠zone |
| Unhealthy TG empty | Downtime | ALB targets | ECS replace | Health FACT |
| Tenant JSON at edge | Cross-org leak | Cache key/headers | Do not cache private | Security |
| k8s as 99.9% | Lie | PDF | ECS+ALB health | Trap |
13. Five troubleshooting scenarios
- Site down, curl IP of ALB works: DNS/delegation.
- HTML loads, API 502: ALB/targets.
- API 403: RLS/RBAC not CloudFront.
- After deploy 5xx: new image; rollback task def.
- Slow tiles: origin N+1 vs CF miss vs LLM wrongly added.
14. Monitoring
FACT: ALB health checks are how you talk 99.9% without a vendor. MISSING: SLO window, incident CSV, CloudWatch-as-claimed (do not invent CloudWatch either unless you confirm — treat as MISSING).
15. Security slice
TLS at edge/ALB; private tasks; no tenant cache at CF; IAM task role; secrets runtime.
16. Performance / Frugality
Frugality: CDN + more tasks vs bigger EC2 vs EKS. Lambda not for this always-on BI.
17. Alternatives
| Alternative | Why not on this intern/project |
| Single EC2+Nginx | Nginx listed; named path is CF→ALB→ECS. |
| Lambda | Always-on + long RAG. |
| EKS | Listed k8s; not intern. |
| NLB | Needed L7 health/path. |
| Multi-region 99.99 | Did not ship. |
18. When NOT to use
Do not use CloudFront as RLS. Do not claim you ran EC2 by hand as the architecture.
19. Limitations
MISSING: launch type, desired count. [YOU NEED TO PREPARE THIS] if you remember Fargate vs EC2 — else say MISSING.
20. What I vs we vs must-not-claim
I: path configuration and health-aware roll I owned. We: AWS account. Must-not-claim: org-wide landing zone, Terraform (not on resume), SRE on-call novel.
21. What would the interviewer ask next?
CloudFront vs Redis? Edge static vs app cache −35%.
22. Mini follow-up chain
Why this path? Edge+health+tasks. Why not k8s? ECS shipped. Feature? ALB health. If ALB down? API down; classify vs origin. Monitor? Health checks FACT. YOU? DNS+roll+health. Redesign? Same hops; still no multi-region fiction.
T1.13 React.js + Recharts — FACT: 30 real-time KPI dashboards, +60% ops, sub-210 ms Resume-derived
TECHNOLOGY. FACT: Designed 30 real-time KPI dashboards with React.js, Recharts; +60% operational efficiency; sub-210 ms; no LLM on this path. Redux/Next/Tailwind/ShadCN are not the named bullet libraries.
1. 30-second what-is-it
React renders UI from JSON state. Recharts draws the KPI from API JSON. Real-time on the resume means operators see live-ish KPIs — I describe poll/REST, not an invented WebSocket bus. Thirty tiles must not N+1 and must not call SQL RAG.
2. Two-minute how it works + where it fits
Browser loads JS from CloudFront → GET tile JSON via ALB NestJS → RBAC → Postgres RLS → Recharts. Optional app cache for hot aggregates (not the −35% bot Redis claim as the dashboard number). +60% protocol MISSING — speak mechanism (live KPIs vs ad-hoc reports) then resume number then ‘I do not have the study protocol on the resume.’
3. Why we used it on this intern/project
Problem: operators waited on ad-hoc SQL. Why not LLM-fill-the-chart: sub-210 becomes a lie. Why not GraphQL first: over-fetch was not why tiles were slow. LP: Deliver Results adjacent via ops efficiency number — primary Deliver is Horizon 17th; do not steal. Customer impact is operators.
4. Where in architecture
CloudFront React bundle
→ ALB NestJS GET /tiles
→ Postgres RLS
→ [Recharts]
no FastAPI LLM
5. Before / after / why simpler failed
Before: ad-hoc reports. After: 30 tiles, sub-210, +60%. ‘Ask the bot to fill the chart’ failed latency and isolation.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Component state | UI vs server facts | Facts stay Postgres | JSON in, chart out | Redux FACT? | Listed-not-this-bullet. |
| Recharts | Named chart lib | KPI render | FACT | D3 from scratch? | Not the claim. |
| N+1 | Loop GET per tile | sub-210 death | Join/include | LLM fix? | No. |
| Poll vs WS | Refresh JSON | Skills WS temptation | Describe REST/poll | Socket bypass RLS? | Must-not invent. |
| SSR | Next.js skill | Ylogx bullet is React.js | Do not invent SSR metric | Next intern? | T2. |
| +60% protocol | MISSING N/window | Imprecise claim | Mechanism + number + boundary | Six-month study? | Must-not. |
| sub-210 vs sub-300 | Ylogx vs GiftedBooks | Mix trap | Keep lanes | Chatbot 210? | No. Bot is −35% DB. |
| Auth on JSON | Same identity | No public KPI URL | RBAC+RLS | CF cache private? | No. |
| 30 vs 31 | Resume number | Do not invent 31st | FACT 30 | Why 30? | Resume. |
| Tailwind/ShadCN | Listed UI | Not named on bullet | Recharts is named | Claim them as 30-KPI FACT? | No. |
| Java analog | Could be Thymeleaf CS | Live Code unrelated | Prod TS | JVM dashboards intern? | No. |
| Accessibility | MISSING | Do not invent WCAG audit | [YOU NEED TO PREPARE THIS] if asked beyond resume | Audit FACT? | No. |
7. Internal flow
load JS (CF)
→ GET JSON (ALB/Nest)
→ setState
→ Recharts render
→ poll later (described, not invented bus)
8. How integrated
React SPA + NestJS REST. FastAPI not on this GET.
Shipped-pattern sketch.
// Interview sketch — tile fetch, no LLM (TypeScript intern)
const json = await fetch("/api/kpis", { headers: { Authorization: `Bearer ${t}` } });
9. Config that matters
MISSING: poll interval, bundle size, Redux usage. FACT: 30, Recharts, sub-210, +60% with protocol MISSING.
10. Runtime: one request/data path
Operator opens dashboard: static from edge, data from RLS JSON, charts locally.
11. Scale 10× honest / 100×
10×. Aggregate in SQL; cache hot aggregates; still no LLM. 10× tiles is N+1, not SQL RAG.
100×. MISSING: 100× concurrent operators, websocket fan-out I built, micro-frontend platform.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| LLM on tile | Miss 210 | Latency | Refuse | Product pressure |
| N+1 30 fetches | Slow | Network waterfall | One query | Join |
| CF cached tenant JSON | Leak | Headers | Private no-store | Security |
| WebSocket invented | Overclaim | PDF silent bus | Poll/REST | Skills WS |
| +60% fake study | Caught | Protocol MISSING | Say so | Honesty |
13. Five troubleshooting scenarios
- Slow dashboard, bot fine: this path N+1/origin.
- Empty charts, 200: RLS empty vs bug.
- After ‘AI tooltip’: check 210 still true — if not, revert.
- GitHub Actions front-end only fail: still do not skip RLS tests.
- Redux question: listed; bullet is React+Recharts.
14. Monitoring
FACT: sub-210 is the performance claim. MISSING: RUM vendor, +60% protocol.
15. Security slice
Auth on APIs; no public unauthenticated KPI; no edge cache of private JSON.
16. Performance / Frugality
Frugality: charts from JSON vs LLM tokens per tile. Invent and Simplify: REST tiles.
17. Alternatives
| Alternative | Why not on this intern/project |
| Bot fills chart | Breaks 210. |
| GraphQL nested dashboard+bot+users | Not the pain. |
| Redux as FACT for 30 KPIs | Listed only. |
| Next.js SSR as the intern bullet | Bullet says React.js. |
| WebSocket mesh | Not on resume. |
18. When NOT to use
Do not use React as the isolation layer (RLS is). Do not steal Argus 24 FPS into tiles.
19. Limitations
MISSING: poll interval. [YOU NEED TO PREPARE THIS] how tiles refreshed, from memory.
20. What I vs we vs must-not-claim
I: dashboard UI+API JSON path. We: ops outcome +60%. Must-not-claim: randomized ops trial, Datadog RUM.
21. What would the interviewer ask next?
Real-time means WebSockets? I describe poll/REST unless they ask WS as CS.
22. Mini follow-up chain
Why React+Recharts? 30 KPIs. Why not LLM? sub-210. Feature? JSON tiles. If Nest down? Charts empty. Monitor? sub-210 claim; no RUM vendor. YOU? UI+GET path. Redesign? Aggregate SQL; still no sockets fiction.
T1.14 ROS2 + GStreamer + ZED 2 + costmap — FACT: Horizon ERC 17th/80+ TEAM Resume-derived
TECHNOLOGY. FACT: ROS2 semi-autonomous Mars rover; 17th globally / 80+ ERC 2024 TEAM; 60 FPS GStreamer; +40% obstacle; ZED 2 2M+ pts/s; RViz; Gazebo; costmap −55% collision; sensor fusion; predictive algorithms. Core software, not team lead. mAP is Argus. No missed ERC.
1. 30-second what-is-it
ROS2 is the node/topic/service bus on the rover. GStreamer is the media pipeline holding operator video at 60 FPS (UDP-family drop-over-stall vs TCP freeze — resume prints GStreamer 60 FPS; UDP-family is honest transport, public Gstreamer-UDP analogue is supporting not a second metric). ZED 2 produces 2M+ pts/s; dense cloud for local costmap, downsample for RViz. Costmap is occupied/free/uncertain cells the planner trusts. Fusion beats a last-week LiDAR PO against an immovable date.
2. Two-minute how it works + where it fits
Camera → GStreamer → operator. ZED → mapping node → dense occupancy → costmap → predictive planning → actuators. Other sensors fuse into the same map. Gazebo ≠ dirt. Time-sync: live video can mask stale occupancy — that is the live bug class. 17th is we. I owned camera, mapping, costmap as core software. Mechanical/electrical not mine.
3. Why we used it on this intern/project
Problem: TCP MJPEG stalls; pretty cloud is not a planner; bump-and-turn is not −55%. Why not extra hardware first: Bias for Action + date. Why not YOLO on rover: Argus owns YOLO. LP: Horizon Bias/Deliver/Earth’s Best. Frugality optional here; Redis remains Ylogx Frugality primary.
4. Where in architecture
camera → GStreamer 60 FPS → operator
ZED 2M+ pts/s → dense occupancy → [costmap] → planner → actuators
↘ downsampled → RViz
Gazebo = sim, not field
5. Before / after / why simpler failed
Before: freeze-cam / viz-as-map / extra PO. After: 60 FPS, +40%, −55%, 17th/80+. Pixel-red stop failed planning.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| ROS2 node | Process + topics | Isolation of camera vs map | FACT ROS2 | One megaprocess? | Nodes. |
| tf / time | Frames + stamps | Stale occupancy class | FACT-adjacent fusion | RViz live = map live? | No. |
| GStreamer pipeline | Capture-convert-encode | Hold 60 FPS | FACT 60 FPS | Flask MJPEG? | Won't hold field 60. |
| UDP-family | Drop-over-stall | TCP freeze | Honest CN; UDP not printed | WebRTC? | Must-not invent. |
| 60 vs 24 FPS | Horizon vs Argus | Mix trap | Keep lanes | YOLO rover? | No. |
| ZED density | 2M+ pts/s | Viz vs plan consumers | FACT | All points to laptop? | No. |
| Costmap | Grid costs | Planner contract | FACT path planning | Pretty mesh? | No. |
| Fusion | Multi-sensor cells | Vs extra LiDAR PO | FACT sensor fusion | Named fight? | Must-not invent. |
| Predictive algorithms | Resume wording | Over occupancy through time | Not pixel-red | Secret ML name? | Do not invent. |
| Gazebo vs field | Sim vs dust | ERC | Both existed | Sim enough? | No. |
| 17th we | Team score | I vs we | FACT 17th/80+ | I placed 17th? | Must-not. |
| Java planner analog | Grid in Live Code | DSA | Field ROS2 C++/Python | JVM rover? | No. |
7. Internal flow
frame now → operator (GStreamer)
points now → occupancy → costmap (must be time-aligned)
stale map + live video = collision class
8. How integrated
ROS2 graph; GStreamer elements; ZED driver; RViz/Gazebo for viz/sim.
Shipped-pattern sketch. Launch XML not dumped.
# Interview sketch — two consumers of ZED (Python intern / ROS2)
# dense → local costmap; thin → RViz
# Standard CS illustration of the split, not a dumped launch file.
Standard CS illustration — not a manifest/config I shipped on an intern bullet.
# GStreamer idea — not a radio spec
# src → convert → payloader → UDP sink
# Standard CS illustration — not a manifest/config I shipped on an intern bullet.
9. Config that matters
MISSING: exact pipeline string, voxel size, costmap resolution, radio BER, ROS2 distro. FACT: 60 FPS, 2M+, +40%, −55%, 17th/80+.
10. Runtime: one request/data path
One camera frame to operator in 60 FPS path; simultaneously occupancy must not be last second’s rocks.
11. Scale 10× honest / 100×
10×. Rover is not SaaS MAU. 10× points: thin viz more, keep local density. 10× sensors: still one costmap. 10× speed: time-sync first.
100×. MISSING: 100× rover fleet, offboard GPU cluster, 120 FPS.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Stale occupancy, live video | Collision | Timestamp skew | Gate planner on freshness | Field test |
| TCP freeze | Operator blind | Pipeline | UDP-family drop | GStreamer |
| Thin costmap for pretty RViz | Miss ridge | Two consumers | Keep density local | Frugality of viz |
| Start new middleware in May | Miss date | ERC immovable | Fuse what we had | Bias |
| Claim I placed 17th | Credit steal | PDF team | Say we | Earth’s Best team |
13. Five troubleshooting scenarios
- Operator sees rock, rover drives: stale map class.
- Video freeze: transport, not YOLO.
- Gazebo OK, field fail: lighting/dust.
- Hardware wanted new LiDAR week-of: fuse existing.
- mAP question: Argus, not here.
14. Monitoring
FACT: 60 FPS is the video monitor; collision −55% is outcome. MISSING: bag-file study protocol, Datadog-on-rover.
15. Security slice
Do not expose unauthenticated field telemetry. Safety stays deterministic — no LLM occupancy.
16. Performance / Frugality
Frugality: software fusion vs PO. Bias for Action: ship 60 FPS+costmap under date.
17. Alternatives
| Alternative | Why not on this intern/project |
| TCP MJPEG/Flask | Won't hold 60 in field. |
| All 2M+ to RViz | Link melts. |
| Extra sensor as first spend | Date. |
| YOLO as the rover stack | Wrong product. |
| Giant VLM as planner | Not a costmap. |
18. When NOT to use
Do not use ROS2 as Ylogx orchestrator metaphor in the AWS card. Do not skip safety for speed.
19. Limitations
MISSING: radio spec. [YOU NEED TO PREPARE THIS] ROS2 distro / which nodes you wrote, from memory.
20. What I vs we vs must-not-claim
I: camera, mapping, costmap software. We: 17th and hardware. Must-not-claim: chassis design, team lead, missed ERC, mentee count.
21. What would the interviewer ask next?
Gazebo = field? No.
22. Mini follow-up chain
Why ROS2? Node graph. Why GStreamer? 60 FPS. Feature? Costmap fusion. If ZED down? Occupancy degrades; do not pretend video is the map. Monitor? 60 FPS + field. YOU? Core software slice. Redesign? More dust lighting tests; still no YOLO-on-rover.
T1.15 YOLOv9 — FACT: Argus 73→89% mAP, 15k images, 24 FPS, 20+ cameras Resume-derived
TECHNOLOGY. FACT: YOLOv9 89% mAP from 73%, training 15,000+ images, 24 FPS, −50% violations, 20+ cameras, Postgres logs, 2× compliance, containerized. OpenCV decodes. TensorFlow listed-not-the-quoted-jump. No Haar as confirmed first attempt. No EKS. Site protocol for −50%/2× MISSING.
1. 30-second what-is-it
YOLOv9 is a one-stage detector: box + class in one forward pass with multi-scale maps and NMS. 24 FPS is the end-to-end budget (decode+infer+NMS+I/O) across 20+ feeds, not a notebook FPS. 73% mAP was not shippable for paging a floor. Gate 89% then scale. mAP ≠ −50% violations ≠ 2× compliance.
2. Two-minute how it works + where it fits
Frame → OpenCV decode/resize → YOLOv9 → conf filter → NMS → event {camera, class, conf, ts, box} → Postgres → alert. Prefer drop stale frame over delayed alert. Video stays off the DB. Containers for workers. Auth the dashboard; 404 README — no invented routes. I did not print a Faster R-CNN bake-off on 20 cameras.
3. Why we used it on this intern/project
Problem: two-stage wins laptop accuracy, loses 24×20+. LLM caption is not mAP. Why data not architecture for 73→89: lighting/PPE color. LP: Are Right / Highest Standards / Success and Scale (gate then multiply).
4. Where in architecture
camera feeds (20+)
→ OpenCV
→ [YOLOv9]
→ NMS
→ Postgres event
→ alert
5. Before / after / why simpler failed
Before: 73% demo GIF. After: 89% then 20+ at 24 FPS. Scaling 73% scales alarm fatigue.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| One-stage | Box+class one pass | FPS budget | FACT YOLOv9 | Detectron? | Throughput defense, no fake bake-off. |
| mAP | Detector eval | Gate | 73→89 FACT | 89% of people? | No. |
| NMS | Suppress duplicate boxes | One worker many boxes | Too aggressive merges two people | Skip NMS? | No. |
| 24 FPS | End-to-end | Live alert | ≠ Horizon 60 | 10× FPS? | Drop stale; 24 is budget. |
| 15k images | Data gate | Lighting/PPE | FACT 15,000+ | LLM labeled mill? | Must-not claim. |
| OpenCV | Decode/resize | Not the 89% detector | FACT-adjacent | HOG as 89%? | No. |
| TensorFlow | Skills | Not quoted jump | YOLOv9 on resume | TF serving novel? | Must-not. |
| Haar | Off-resume | Trap | Do not confirm as first attempt | We tried Haar? | Omit/off-resume. |
| Postgres events | Audit | Not bytea video | FACT logging | Kafka notify? | Kafka not on resume. |
| −50% / 2× | Site outcomes | After trusted alerts | ≠ mAP | Protocol? | MISSING. |
| Containerized 20+ | Workers | Not EKS claim | FACT | k8s HPA? | Must-not. |
| Java analog | Could wrap JNI CS | Live Code | Detector Python | JVM YOLO intern? | No. |
7. Internal flow
decode → infer → NMS
→ persist event
→ alert if still timely
drop stale frames
8. How integrated
Python CV stack; container workers; Postgres. OpenCV preprocess.
Shipped-pattern sketch.
# Interview sketch — infer then event (Python intern)
frame = cv2.resize(decode(cam), size)
dets = yolo(frame)
dets = nms(dets)
for d in dets:
db.insert(camera, d.cls, d.conf, ts, d.box) # not the JPEG
9. Config that matters
MISSING: train/val split, input size, GPU model, confidence threshold, retention days. FACT: 73→89, 15k, 24 FPS, 20+, Postgres.
10. Runtime: one request/data path
One frame from camera 7 → boxes → event row → alert if PPE missing after NMS.
11. Scale 10× honest / 100×
10×. Do not scale 73%. Hold 24 FPS; more workers; events not video; wrong alerts at 20 cams = fatigue.
100×. MISSING: 200 cameras, multi-region plants, 99% mAP I already hit.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Scale 73% to 20 cams | Alarm fatigue | mAP gate | Stop; more data | Highest Standards |
| Heavier backbone at cam 12 | Drop FPS | Latency | One-stage budget | Drop stale |
| Alerts before NMS | Duplicates | NMS | Filter | Two workers merged if too high NMS |
| LLM on frames | Nondeterministic | mAP gone | Refuse | Not detector |
| Video in Postgres | DB dies | Storage class | Events only | S3 as CS if asked, not invented intern bucket name |
13. Five troubleshooting scenarios
- Late alerts camera 12: FPS/budget, drop stale.
- Wrong PPE class: data/lighting, not ‘add TF.’
- No audit row: persist path.
- Public /stream: auth; no invented routes.
- k8s question: containerized; Ylogx ECS is the intern orchestrator story.
14. Monitoring
FACT: mAP is the detector monitor; 24 FPS budget. MISSING: plant dashboard vendor, site study protocol.
15. Security slice
Auth streams; events not public; no exploit on cameras. Safety alerts after NMS.
16. Performance / Frugality
Frugality: one-stage vs two-stage GPU tax. Success and Scale: 89% then 20+.
17. Alternatives
| Alternative | Why not on this intern/project |
| Two-stage Detectron | Laptop accuracy, live miss. |
| OpenCV-only detector | Won't 89% industrial. |
| LLM captions | Not boxes/mAP. |
| Haar confirmed chapter | Not on resume. |
| TF Extended serving novel | Listed TF only. |
18. When NOT to use
Do not use YOLO on Horizon costmap. Do not page a floor at 73%.
19. Limitations
MISSING: split/threshold. [YOU NEED TO PREPARE THIS] conf threshold and how you computed mAP, from memory — do not invent COCO-oral extras.
20. What I vs we vs must-not-claim
I: detector pipeline, gate, events. We: site −50%/2×. Must-not-claim: Haar, EKS, F1 invented, Purplle YOLOv8 as this bullet.
21. What would the interviewer ask next?
mAP vs −50%? Detector gate vs site outcome.
22. Mini follow-up chain
Why YOLOv9? 24 FPS × 20+. Why not two-stage? Budget. Feature? One-pass boxes. If GPU down? Alerts stop; do not silently page on 73% CPU fallback unless you had it — MISSING. Monitor? mAP+FPS. YOU? Train/eval/infer path. Redesign? Held-out camera would-do; still gate 89%.
T1.16 Java — Live Code FACT; internships were not JVM — honesty card Resume-derived Standard CS
TECHNOLOGY. FACT: Languages line includes Java. This loop’s Live Code is Java. FACT internships: Python FastAPI, TypeScript NestJS/React, ROS2 Python/C++, Argus Python YOLO. Must-not-claim: Spring Boot IQVIA, JVM warehouse, Java LangGraph in prod.
1. 30-second what-is-it
Java is the language I write in Amazon Live Code: definite assignment, HashMap, heap, graphs, OOP. It is not evidence that Ylogx or IQVIA ran on the JVM. Same ideas transfer: cache-aside, RLS as a role-bound DataSource, graph of retrieve nodes as interfaces. Syntax is not the architecture.
2. Two-minute how it works + where it fits
If they paste DSA: write Java. If they ask why Java on the resume: language I code in this loop + skills line. If they ask to rewrite Ylogx in Spring: ideas yes, intern ship no. If Fluency slot pastes a tree: write the tree first (Distance K was reported under Fluency in another loop — not a 10454435 prediction).
3. Why we used it on this intern/project
Listed, not this intern’s production runtime. Why list it: Live Code + coursework/skill. Why not pretend: senior interviewers open GitHub and bullets. Constraint: honesty is the bar. LP: none forced; Earn Trust is the meta (do not fake the stack).
4. Where in architecture
Live Code editor: [Java]
IQVIA/Ylogx/Argus: Python/TS
Horizon: ROS2 Python/C++
Do not draw Spring in the AWS ASCII
5. Before / after / why simpler failed
Before (trap): ‘I am a Java intern.’ After (honest): Live Code Java, prod Python/TS. Simpler lie fails GitHub.
6. Core concepts
| Concept | What | Why it exists | Here | Likely Q | Strong answer |
| Definite assignment | Locals vs fields | Java CS | Ch. 10 | C++ habit? | Initialize locals. |
| HashMap / heap | DSA tools | Live Code | Not Redis | JVM Redis intern? | No. |
| Interface retrieve | Agent analog | LangGraph ideas | Python intern | Spring Graph? | Must-not. |
| DataSource role | SQL RAG analog | RLS idea | Python exec as role | Hikari intern? | Must-not claim. |
| Checked exceptions | CS | Not intern bullet | Don’t lecture instead of code | Spring Boot? | Not shipped. |
| GC | CS | Not Ylogx 99.9% mechanism | ECS health is | G1 as SLA? | Must-not. |
| Streams API | CS | Optional in Live Code | Clarity > clever | Prod Streams on BI? | No. |
| JDBC vs JPA | CS | Prisma listed-not-Java | Do not mix | Hibernate intern? | No. |
| Concurrency | synchronized CS | ECS multi-task ≠ Java threads lecture unless asked | Stay intern-honest | I tuned JVM flags? | MISSING/must-not invent. |
| Records / sealed | Modern Java CS | If they use a recent JDK | Follow the editor | Version FACT? | MISSING. |
| Python sidecar | YOLO/LangGraph sketches | Allowed short | Canonical answers Java | Only Python in Live Code? | No — Java canonical. |
| Kotlin/Go | Not on resume | Do not pivot | Java Live Code | Rewrite resume? | No. |
7. Internal flow
Interviewer pastes prompt
→ Java in editor
→ if they still want stack: Python/TS intern honestly
8. How integrated
Not integrated into intern ECS images. Transfer is conceptual.
Same idea in Live Code. Internships were not JVM.
// Live Code analog — role-bound query idea, NOT a Ylogx intern file
// Same idea in Live Code; intern path was Python.
try (Connection c = ds.asRole(userRole)) {
try (PreparedStatement ps = c.prepareStatement(sql)) { /* bind */ }
}Standard CS illustration — not a manifest/config I shipped on an intern bullet.
// Standard CS illustration — not a Spring Boot app I shipped
// @RestController class BotController { }
9. Config that matters
MISSING: Java version in the Live Code environment until they show it. FACT: Java on skills; intern languages as above.
10. Runtime: one request/data path
There is no intern Java request path. The runtime path is the editor.
11. Scale 10× honest / 100×
10×. 10× Live Code skill is faster correct Java, not ‘I already ran Spring at 100×.’
100×. MISSING: production JVM tuning, GC pause budgets, Kubernetes Java sidecars.
12. Failure modes (classes, not fake tickets)
| Failure | Impact | Detection | Mitigation | Prevention |
| Claim Spring IQVIA | Caught | PDF Python | Correct immediately | Honesty |
| Refuse to code Java | Loop mismatch | Invite | Write Java | Canonical |
| Rewrite 60 min as Spring migration | Wrong round | Time | Code the prompt | Fluency-as-DSA: tree first |
| Java GC as 99.9% | Wrong mechanism | ECS/ALB | Redirect | Trap |
| Prisma as JPA intern | Mix skills | Postgres bullet | No |
13. Five troubleshooting scenarios
- They ask ‘show Ylogx in Java’: analog then stop.
- Compile error on local: definite assignment.
- They open GitHub Python: expected.
- They ask Spring security: RBAC+RLS analog, not intern Spring.
- Fluency+tree: write tree, Fluency sentence only if still asked.
14. Monitoring
N/A intern APM. Live Code correctness is the monitor.
15. Security slice
Do not dump secrets in Java snippets. No exploit code.
16. Performance / Frugality
Frugality: do not rewrite intern systems onto JVM for the interview story.
17. Alternatives
| Alternative | Why not on this intern/project |
| Pretend JVM intern | GitHub + bullets contradict. |
| Skip Java and only Python | Wrong for this loop. |
| Staff-architect Spring Cloud | SDE I intern theatre. |
| Claim Kafka Java consumers | Kafka not on resume. |
| EKS Java sidecars | EKS not intern. |
18. When NOT to use
Do not use Java as proof you operated production. Do not refuse the editor language.
19. Limitations
MISSING: years of Java in industry — you are intern-honest. [YOU NEED TO PREPARE THIS] coursework/projects in Java besides Live Code, from memory, without inventing intern bullets.
20. What I vs we vs must-not-claim
I: Java in the editor. We: intern products in Python/TS. Must-not-claim: Spring Boot production, JVM 99.9%.
21. What would the interviewer ask next?
Why list Java if internships were Python? Live Code + skills; ideas transfer; syntax is not architecture.
22. Mini follow-up chain
Why Java? This loop Live Code. Why not intern JVM? Ecosystem of RAG/CV/ROS. Feature needed? DSA+OOP in editor. If they want Spring Ylogx? Analog only. Monitor? Tests in the editor. YOU? Write Java now. Redesign intern? Would not fake JVM for a JD.