This isn't a job hunt — it's a working notebook. I share what I'm building, breaking, and learning at the intersection of multi-agent LLMs, big data platforms, and the messy reality of getting analytics to be both fast and honest. Pick a project below and dive in; the chat in the bottom-right will happily nerd out with you about any of it.
Each card is a short blog post about a project — what I was solving, what surprised me, and what I'd do differently. No pitch decks, just engineering stories. Click any card to open the full write-up; share the URL and it lands right on the case study.
The story of why our deterministic checks kept missing the long tail, how a 6-agent LangGraph (Orchestrator → Ingest Auditor → Anomaly Detector → Evidence Retriever → Evaluator) closed it, and the messy bits: hallucination guardrails, retry loops, a self-learning rule memory, and a golden-set harness that keeps the LLM honest.
How we got query latency from 30s to 8s, enrichment quality to 99.97%, and seven downstream teams to actually trust the same gold tables. Includes the partitioning calls I'd make differently today.
End-of-month spreadsheets → next-day automated reports. Lambda + Snowflake + DynamoDB, with SES routing findings to the right owner. The detection rate jumped from 30% to 99.99% — and the audit trail is what got me promoted to Data Integrity Lead.
Stitching web, mobile, and back-office events into a single 10M-entity master data store. Where naïve identity resolution falls over, why Iceberg saved us, and how the Tableau dashboards finally stopped lying.
Why bulk syncs were costing us a CRM-shaped panic every Monday, and the streaming CDC pattern (Bulk API 2.0 + Snowpipe + dedup MERGE) that replaced it. Includes the schema-drift trap I walked straight into.
Every six months we used to force a mandatory app upgrade just to rotate a cert. This is the PKI + mobile SDK + zero-downtime rotation design that ended that pattern — and the architecture debates with the security team that made it stick.
Personal Lending, VAS, GoalSave Kicker, ID Payment — what it took (architecturally and politically) to ship four banking products from one platform without each team reinventing the wheel.
How we built a multi-source analytics layer that kept up with a brand-new bank's growth, without buying everyone a new BI license. Spoiler: the unsexy part was the medallion conventions.
The TF-IDF + lemmatization + POS-tagging pipeline behind a serverless SEO API — and the day I realised our Datadog bill was being padded by a logging defect nobody had noticed.
In-store PoS devices talking to API Gateway → Lambda → SQS → DynamoDB, auto-scaling on Black Friday without anyone paging me at 2 AM. The cold-start tradeoffs I'd revisit today.
Why "boring" is the highest praise you can give a KYC system, and the patterns I borrowed from UBS / Manulife / Prudential to keep one.
CloudFront + S3 + Lambda + DynamoDB, all Terraformed. RAG chat with voice I/O, admin analytics down to per-project attention, a posts CMS, Telegram-backed contact form. Built so I can show how I build.
Long-form writing on what I'm building, learning, and shipping. Filter by category below.
AI-generated answers grounded in Vinh's resume & this site. May contain errors.