Nick Duong · AI/ML Engineer & Technical Architect

Neurodivergent engineer · 20+ years · Connecticut

Newton (Nick) Duong

AI/ML Engineer & Technical Architect

I build production AI agents and the whole system around them: data layer, memory, safety controls. I think in knowledge graphs, so my agents keep what they learn.

Most recently Senior Staff Software Engineer at The Hartford (Jul 2025 – Jul 2026). Before that, CVS Health / Aetna (2007 – 2025). Open to Staff and Principal AI engineer and AI architect roles.

Black-and-white headshot of Nick Duong, smiling
20+years in enterprise software
2internal AI platforms I built at The Hartford, architecture to deployment
5,600+tests across ReliBot and GitHubScanner
12bot instances on my own Claude Agent SDK platform

Professional work

Enterprise AI and platform work

What I built at The Hartford and CVS Health / Aetna. ReliBot, GitHubScanner and GraphRAG each have simple and detailed diagrams in my architecture notes.

The Hartford · Incident response

ReliBot

An incident-response assistant engineers reach from Microsoft Teams, the CLI or a web chat. It pulls Splunk logs and Dynatrace problems, checks recent GitHub deploys, and answers with evidence. It recalls past fixes when the same service shows up again.

80+tools · 16 domains
12sub-agents
3-layerauto-recall memory
2,200+tests
  • Google ADK + Gemini, with model failover behind a circuit breaker
  • Every tool call goes through a fail-closed allowlist
  • Same memory design as ClawBot, my personal agent
7 diagramsArchitecture notes
The Hartford · AI security review

GitHubScanner

An AI security reviewer. A root agent hands work to specialists for planning, code security, dependencies, reporting and remediation. Deterministic validators check every finding before a person sees it. Fixes go out as patches for review, and nothing is pushed.

6specialist agents
OSV · NVD · EPSSCVE enrichment
3,400+tests
86%coverage
  • Google ADK + Gemini. A finding closes only when the fix is proven.
  • Keyless delivery: AWS CodePipeline to Cloud Run through Workload Identity Federation
  • Threat-modeled against the OWASP Top 10 for LLM apps
6 diagramsArchitecture notes
CVS Health / Aetna · Data Science

GraphRAG vs Vector RAG

Two retrieval systems over one corpus. Gemini extracts a schema-constrained knowledge graph into Neo4j, and intent-selected Cypher templates answer the questions. A LangGraph + ChromaDB twin gives the vector baseline.

43source docs
1,943graph nodes
4,081relationships
~98%hosting cost cut
  • Parameterized Cypher templates, no free-form text-to-Cypher
  • A/B harness: Gemini 2.0 Flash (100% success, 12.2 s median) beat 2.5 Pro preview (32%, 47.2 s), so Flash stayed in production
  • Always-on VMs replaced by scale-to-zero Cloud Run
8 diagramsArchitecture notes
CVS Health / Aetna · Platform engineering

Spring Boot modernization

I led the move of legacy Spring applications to Spring Boot with OpenRewrite and Claude Code. I wrote reusable refactoring recipes, other departments adopted them, and I ran the architecture reviews.

Company-wideSpring framework I owned
18 yearsat CVS Health / Aetna
  • The Aetna Enterprise Framework: reference apps, the OpenShift platform, REST and SOAP APIs, OAuth2 and SSO
  • API management patterns on CA Layer7 and IBM API Connect

Personal projects

Personal platforms I run every day

The four below run every day on my own hardware, each with its own decision log and test suite. The repos are private; I'm happy to walk through any of them. All projects, in depth

Personal AI agent · Claude Agent SDK

ClawBot

My personal agent platform, in daily use since February 2026. One manager process runs 12 bot instances on Telegram, each with its own markdown-vault memory. It runs my smart home (Sonos, Hue, Alexa) and my messaging every day.

228MCP tools in 26 domains
13domain sub-agents
3,500+tests
  • A per-message router picks Haiku, Sonnet or Opus across 4 tiers
  • Hybrid memory search: 70% vector + 30% BM25, 30-day decay, MMR re-ranking, L1/L2/L3 auto-recall
  • Fail-closed tool policy with prompt-injection fencing. Voice notes are transcribed locally, and no audio leaves the host.
  • Python
  • Claude Agent SDK
  • MCP
  • SQLite FTS5
  • whisper
  • pytest
309 commits since Feb 2026Deep dive into ClawBot
Overnight autoresearch · research only

StockClaw + Warren

Every night since May 2026, Claude rewrites a stock-ranking pipeline, and a walk-forward backtester the model can't see decides whether the change stays. Sonnet runs the ordinary iterations; Opus takes the deep tier. It places no orders.

180nights run
2,479candidate rewrites
260kept, ~12% of those backtested
  • A bear-case critic and validators reject bad candidates, including SQL look-ahead, before any backtest
  • 514K daily bars across 279 tickers, plus news, SEC filings and fundamentals, in DuckDB
  • Warren, a Telegram research bot, applies four investor lenses: 3,240 evidence-cited verdicts, only ~1.2% BUY
  • Python
  • Claude Code (headless)
  • DuckDB
  • pandas
  • SEC EDGAR
  • pytest
Self-hosted photo platform · Swift

DVPhoto + DVPhoto for iPhone

A Google-Photos-style backup for my family, built end to end: a Swift/Vapor server on a Mac mini, a React web app and a native iPhone app, all against one versioned API contract. Face detection and clustering run locally, on the Mac mini.

24,733faces found in 26,271 photos
29API contract releases, to v3.7.0
431commits across 4 repos since May 2026
  • Server: 23,000 lines of Swift, 338 XCTest tests, Postgres with 27 migrations and a persistent job queue. The face backfill finished with 0 failures.
  • iPhone app: Swift 6 and SwiftUI, full-library background backup that resumes after interruption. Cutting it to backup-only deleted 14,330 lines and got it shipped.
  • Two backend reversals in week one, Vapor to a Go upload server and back, with the data carried along: when the Go server retired after 2 days, its ~3,808 photos moved into Postgres.
  • Swift 6
  • SwiftUI
  • Vapor
  • PostgreSQL
  • React + TypeScript
  • CoreML
Energy-market research · MISO, SPP, PJM, ERCOT

Energy-market research platform

A DuckDB warehouse for U.S. wholesale power markets in bronze, silver and gold layers, with PyTorch forecasters on top. The part I'm proudest of is the audit harness. It caught a look-ahead leak in my own research and flipped 5 of 8 headline backtests negative, so I retired my best-looking number.

90M+hourly MISO nodal prices
2,400+commits since Nov 2025
600+numbered decision records
  • ~460M unified price rows across 4 ISOs, ~1.27B rows in all
  • Async HTTP/2 collectors cut the daily pull from 20–60 minutes to 38 seconds; 96 scheduled jobs
  • 2,546-node / 623K-edge price-correlation graph; LSTM, TCN, PatchTST and GNN forecasters
  • Python
  • DuckDB
  • PyTorch
  • httpx (HTTP/2)
  • FastAPI
  • systemd

More from the lab

Prototype · K–12 education

Aquinas

A self-hosted Socratic AI tutor for schools. It guides students to the answer instead of handing it over. Microsoft 365 sign-in, a privacy-first design aimed at COPPA and FERPA, and 4 LLM provider adapters behind a router.

219 tests · pre-pilot

Infrastructure

Homelab

A Dell PowerEdge T140 and a Mac mini M4 over Tailscale. OpenResty with 15 vhosts on Let's Encrypt, 100+ systemd timers, and Podman for Open WebUI and SearXNG. ClawBot, StockClaw, DVPhoto and the energy platform all run on it.

15 vhosts · 100+ timers

How I work

Depth is my edge

I'm a neurodivergent engineer. I think in knowledge graphs, not to-do lists.

I map the whole system before I write code. Then I build all of it, and I stay with it long after it works.

I do my best work with a clear problem statement, written specs and long stretches of focus. The team gets the side effects: documentation before anyone asks for it, and bugs caught in CI.

Trait and evidence from my work
TraitWhere it shows
Deep, sustained focusOne energy-data platform: 2,400+ commits on 205 days since Nov 2025. I rebuilt its collectors after they already worked; the daily pull went from 20–60 minutes to 38 seconds.
Systems thinkingDVPhoto is an iPhone app, a Swift server and a web app, built against one API contract with 29 versioned releases.
Edge-case rigorAt The Hartford, GitHubScanner runs every LLM finding through deterministic validators before a person sees it: 3,400+ tests at 86% coverage. In the energy platform, missing data is logged as unknown, never quietly set to zero.
Root causesAn iPhone crash loop looked like a code bug. The cause was a provisioning profile that dropped an entitlement. The crash had also silenced the telemetry, so an empty error log proved nothing.

What a team gets

  • Decisions in writing.A decision log, a bug log and a handoff doc, so the context lives in the repo. ClawBot alone has 98 dated decision records.
  • Contract first.The interface spec comes before the code, so client and server work can run in parallel.
  • The whole problem, up front.Share the real goal and the constraints. I'll come back with a design, its trade-offs and a plan to ship it.
  • Focus time, async answers.I group meetings and reply in writing, so work comes back finished and tested.

Experience

20+ years in enterprise software

Mostly Java and Spring at regulated insurance and healthcare companies, then two years of production AI agents in Python. Full résumé

  1. Jul 2025 – Jul 2026

    The Hartford

    Senior Staff Software Engineer · Reliability team

    • Built two internal AI platforms on Google ADK + Gemini, from architecture through deployment: ReliBot and GitHubScanner.
    • Deployed to AWS and GCP Cloud Run with Terraform and AWS CodePipeline. 3,400+ tests on GitHubScanner, 2,200+ on ReliBot.
    • Mentored engineers on agent design, testing and AI-assisted development.
  2. 2007 – 2025

    CVS Health / Aetna

    Staff Software Development Engineer

    • Built the GraphRAG vs vector RAG pilot for the Data Science group. Moving to scale-to-zero Cloud Run cut hosting cost about 98%.
    • Led the Spring to Spring Boot modernization with OpenRewrite and Claude Code. Other departments adopted the recipes.
    • Owned the company-wide Spring framework, reference apps, the OpenShift platform and REST/SOAP APIs.
  3. Earlier

    Pratt & Whitney (UTC)

    Staff Engineer / Technical Team Lead

    Fleet engine diagnostics and forecasting applications in Java, Spring, Hibernate and Oracle.

  4. Earlier

    Aetna

    Senior Java Developer

    Enterprise integration middleware and portal applications. Led offshore and junior developers.

Skills

What I work with

Agents & LLMs

  • Claude Agent SDK
  • Google ADK (incl. A2A)
  • MCP
  • LangGraph
  • LangChain
  • Claude (Opus, Sonnet, Haiku)
  • Gemini on Vertex AI
  • AWS Bedrock
  • Model A/B evaluation

Agent memory & retrieval

  • RAG / GraphRAG
  • Neo4j
  • ChromaDB
  • SQLite FTS5 + sqlite-vec
  • Hybrid BM25 + vector search
  • MMR re-ranking
  • Embeddings

Languages

  • Python
  • Java
  • TypeScript
  • JavaScript
  • SQL
  • Swift

Cloud

  • AWS Lambda
  • Step Functions
  • API Gateway
  • S3
  • CodePipeline
  • GCP Cloud Run
  • Vertex AI
  • Secret Manager
  • Workload Identity Federation
  • Azure

Full skills list, on my résumé

Education

Contact

Let's talk

I'm open to Staff and Principal AI engineer and AI architect roles: agent platforms, retrieval and memory, and the safety and test harness around them. If your team values depth, complete systems and neurodivergent thinking, tell me about the problem you're working on.

Email reaches me fastest. LinkedIn works too.

Send a message

Messages are delivered through Formspree. Prefer email? Write to duong.nick@gmail.com.