Skip to content
Back to Home
Portrait of Phạm Khánh Minh Mẫn

Phạm Khánh Minh Mẫn

Backend Engineer · E-commerce API Integration · LLM-Agent Memory Research

Da Nang, Vietnamphamkhanhminhman97@gmail.comhttps://github.com/phamkhanhminhman97

About

Backend engineer with 5+ years in e-commerce and multi-marketplace API integration. Focused on NestJS, TypeScript, and event-driven systems on AWS.

Author of several open-source libraries for the Shopee, TikTok Shop and Lazada Open APIs — organised as a monorepo with npm workspaces, Changesets and automated CI/CD.

Hands-on with order processing, inventory sync, recurring billing on Stripe and PayPal, local payment gateways (Fundiin, Payoo, ZaloPay), shipping providers (GHN, Ahamove, TikiNOW) and ERP (NaviWorld).

Since 2026, a graduate student in Computer Science (research track) at Danang University of Science and Technology. Research interest: memory for LLM agents — specifically, separating what graph structure contributes from what the data representation contributes, using budget-matched controlled experiments and statistics at the correct unit of analysis.

Research

2026 — presentExploratory — no published results

When Does Graph Memory Help Beyond Verbalized Relations? Isolating Representation from Structure in LLM-Agent Memory

Independent research — not committed as a thesis topic

Question
Graph memory is widely believed to help LLM agents remember better. But when graph memory is compared against flat memory, existing work changes TWO things at once: structure (the ability to traverse relations) and representation (information rewritten as typed relational sentences — unavoidable, because an LLM can only read text). So which of the two does the observed benefit belong to?
Method
Verbalize-control: three token-budget-matched conditions drawing from the same candidate edge pool and differing only in the selector — graph traversal, cosine truncated to the budget, and dump-everything. Plus a degree-preserving shuffled-edge control to separate “these particular edges” from “merely having a graph”. The design is pre-registered, evaluated on an external non-circular benchmark, and specifies the negative branch in advance (TOST equivalence testing).

Status, stated plainly: this is something I work on outside of client work, not a committed thesis topic. A 30-question feasibility probe has been run; the quality gate fired and returned “inconclusive” rather than a result. No publishable numbers.

LLM agent memoryKnowledge graphRetrievalAblation studyPre-registrationCluster-aware statistics

Systems

Client names are withheld where the work is under contract; the public project links out.

Multi-environment deploy pipeline

Backend infrastructure

Dev / staging / production deploy path for a four-service product, designed and built end to end.

  • One workflow per environment; production takes a service argument so you deploy one service, not all four.
  • Images built with Buildx layer cache, tagged by commit SHA, pushed to ECR.
  • Deploy registers a new ECS task definition, updates the service, and waits for it to stabilise.
GitHub ActionsDocker BuildxAWS ECRAWS ECSALBDocker Compose

BattleCatsLabbattlecatslab.fun

Personal project · public

Data and simulation site for a mobile game — 9,000 generated pages, a deterministic battle engine, and server-authoritative realtime PvP.

  • Server owns the sim and ticks it at 30 Hz; clients send deploy intents and render snapshots, so a client cannot fake a result.
  • Ranked ELO gate treats same-IP as telemetry only — shared Wi-Fi must not invalidate a real match; the abuse lockout derives from an append-only log, not a mutable counter.
  • A golden-vector test pins fixed team pairs to their exact winner and frame count, so an engine change that would desync stored replays fails CI instead of corrupting them silently.
TypeScriptReactViteSQLiteCloudflare WorkersCloudflare R2SSE

Virtual factory / production scheduling

Manufacturing simulation · client project

Django platform simulating a factory floor — scheduling, facility state, dispatching — bridged to real equipment over OPC-UA.

  • Five services share one models package: any schema change ripples through all of them.
  • Traced the DB → data-creator → environment path and reported where the schema had already drifted apart.
PythonDjangoPostgreSQLRedisDocker ComposeOPC-UAJava

Publishing platform (portal + identity)

Content platform · client project

Four applications behind one account, sharing a single auth package.

  • Next.js and Nuxt apps hold the same auth contract — keeping that contract stable is the whole constraint.
  • Single sign-on on Cognito, wrapped so no app talks to Cognito directly.
Next.jsNuxtTypeScriptAWS CognitoAWS SESAlgoliaBugsnag

Subscription billing on Stripe and PayPal

Recurring payments · client project

Rails subscription platform for a Japanese publisher: plan upgrades, webhook settlement and tax-compliant receipts, across two payment providers at once.

  • Stripe signs the raw body, so the HMAC verifies locally; PayPal needs an OAuth2 token and a call back to verify-webhook-signature — verification itself is a network hop that can fail.
  • Both deliver at least once and out of order: a conditional UPDATE decides which delivery settles the payment, and stale events are dropped by timestamp so a late failure notice cannot revive a cancelled subscription.
  • The webhook usually beats the browser back, so payment settles there rather than on the success redirect, with the subscription re-read from the gateway API instead of the event payload.
  • Dunning differs too: Stripe marks past_due only after its retries are exhausted, while PayPal walks PAYMENT.FAILED → SUSPENDED → CANCELLED.
Ruby on Rails 8PostgreSQLStripePayPal SubscriptionsSidekiqRedisRSpecHeroku

Aptitude-test study app (backend)

EdTech · client project

FastAPI service on Firestore: question bank, topic taxonomy, per-user progress.

  • Rapid mark-difficult / mark-unlearned calls overwrote each other's stats — a write race, not a slow query.
  • Fixed by updating counters incrementally instead of recomputing the category, which also dropped a full scan per request.
PythonFastAPIFirebase FirestoreBigQueryCloud Build

Experience

2026 —

Backend Developer

DiproTech

Manufacturing simulation, a subscription publishing platform and a study app, for Japanese clients.

  • Engineering detail in Systems above.
PythonDjangoFastAPIRuby on RailsPostgreSQLFirestoreStripePayPalOPC-UA
07/2025 — 03/2026

Backend Developer — Social App

DiproTech

Newsfeed and content distribution, team of 10.

  • Owned the newsfeed backend; designed the seed-based ranking it runs on.
  • Built the CI/CD and ECS deploy path the team ships through.
Node.jsTypeScriptPostgreSQLRedisAWS ECSGitHub Actions
01/2025 — 06/2025

Backend Developer — PaymentShield

Devtify Technologies

Auto loan service between lenders, dealers and customers, team of 7.

  • Started the codebase: NestJS, Docker, PostgreSQL, layered by responsibility.
  • Webhooks publish to SQS and Lambda consumes them, so a slow downstream cannot block the callback.
  • Failed jobs retry with backoff and land in a DLQ instead of disappearing.
NestJSTypeScriptPostgreSQLAWS LambdaAWS SQSBullMQRedis
01/2024 — 03/2025

Backend Developer — ROUTINE

Devtify Technologies

Orders, inventory and refunds unified across Shopee, Lazada and TikTok Shop, team of 10.

  • One order model over three marketplaces, each with its own API shape and failure modes.
  • Kept stock and finance in step with the NaviWorld ERP.
  • Integrated three payment gateways and three shipping providers.
NestJSTypeScriptPostgreSQLRedisElasticsearchBullMQShopee APITikTok Shop APILazada API
04/2022 — 11/2023

Backend Developer — BEAUTYBOX / THEFACESHOP / REEBOK

Devtify Technologies

Retail digital transformation for HSVGroup, team of 15.

  • Designed the database and REST API; unified order processing across three marketplaces.
NestJSTypeScriptPostgreSQLRedisAWS EC2Docker
01/2020 — 01/2022

Military Service

Vietnam People's Army

Completed compulsory military service.

03/2019 — 12/2019

Backend Developer — SunWorld B2B Ticket

D-SOFT JSC

Ticket selection, online payment and e-ticket storage, team of 7.

  • Designed and built the REST API on PHP / Laravel / SQL Server.
PHPLaravelSQL Server

Education

2026 — present

M.Sc. in Computer Science

Danang University of Science and Technology (DUT) — The University of Danang

Research track. Coursework in progress; thesis topic not yet decided.

2015 — 2019

B.Sc. in Information Technology

University of Science and Education — The University of Danang

Major in Information Technology.