About me

I’m Derek Wang, a computer science master’s student at the University of Southern California.

I’ve worked on voice and operations agents, with a focus on AI agents and backend development. This site records what I see, think, and build.

Education

University of Southern California

M.S. in Computer Science

Coursework: Analysis of Algorithms, Operating Systems, Database Systems, Information Retrieval, Web Technology...

Southwestern University of Finance and Economics

B.S. in Information Management and Information Systems

Coursework: Data Structures, Computer Networks, Database Principles, Object-Oriented Programming...

Experience

AI Rudder Agent Engineering Intern

Contributed to the core execution paths of the CALL-E goal-oriented outbound voice Agent runtime, serving 10k+ online users. Built its open-source community ecosystem.

Stack: Python, FastAPI, OpenAI Agents SDK, PostgreSQL, Redis, RabbitMQ, Taskiq, Pydantic, SSE

  • Multi-role Agent boundaries and side-effect gates: MainAgent owns the user chat session (serialized to a single Foreground Turn), while GoalAgent owns long-task lifecycles through an independent goal-scoped session; the two communicate only through Runtime typed events — no SDK handoff or agent-as-tool calls. 100% of real side effects such as outbound calls pass a structured Goal Confirmation gate (a spec-level invariant), with the authorization subject held and re-validated server-side, preventing model-forged authorization.
  • Goal → RunSpec → Run durable execution model: Goals own immutable, monotonically versioned RunSpecs, and each Run determines the exact version and input snapshot. The terminal Goal Status and Goal Result (summary + evidence_refs) commit atomically in one PostgreSQL transaction (the Durable Boundary); SSE live delivery over Redis Streams happens only after commit, so lost or duplicated delivery never affects correctness for 10k+ users.
  • Execution Lease fencing and Provider Reconciliation: Taskiq workers claim work with leases carrying monotonically increasing fencing epochs, verified exactly on every durable write to fence off zombie workers. Uncertain call submissions are resolved through Provider Reconciliation against a stable provider task name instead of blind redial, driving duplicate calls on the worker-failure recovery path to zero (guaranteed by design).
  • Open-source integrations and community automation: Built n8n, Dify, and HubSpot calling integrations and improved the Skill generator and API contract validation. Developed an internal operations agent with Python and LangChain / LangGraph that uses conversation context and official documentation to draft Discord replies for human review, triage and deduplicate Issues, and deliver PR/Issue notifications and daily digests; persisted work in SQLite with idempotency keys to suppress duplicate processing.

Takin.ai Backend Engineering Intern

Developed the backend for an internal operations Agent platform, reducing end-to-end alert diagnosis from 15–30 minutes to under 60 seconds.

Stack: Java, Spring Boot, Spring AI, DashScope, Milvus, ReAct, Function Calling, SSE

  • Three-tier Agent collaboration: designed a Planner → Executor → Supervisor flow using the Plan-Execute-Replan pattern. Supervisor validation triggers automatic retries and strategy changes, increasing tool-call success from 70% to 95% across 200+ production alert samples.
  • Agentic RAG retrieval: built an internal knowledge base on Milvus with MQE multi-path recall, child-chunk retrieval with parent-chunk returns, Reflection validation, and query rewriting. On 150 internal Q&A evaluations, recall improved by about 25% and retrieval accuracy rose from 65% to 90%.

Tech stack

Languages
  • Python
  • Java
Backend
  • FastAPI
  • Spring Boot
  • Spring Security
  • SQLAlchemy
  • MyBatis
  • Pydantic
AI engineering
  • OpenAI Agents SDK
  • Spring AI
  • RAG
  • Function Calling
  • ReAct
Data & querying
  • SQL
  • PostgreSQL
  • MySQL
  • Redis
  • Elasticsearch
  • Milvus
Messaging & jobs
  • Kafka
  • RabbitMQ
  • Taskiq

Search the site

Notes
Blog
Projects
Resources
About me