Skip to content
View LDNVN86's full-sized avatar
💭
誰にも届かない悲しみ
💭
誰にも届かない悲しみ

Block or report LDNVN86

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
LDNVN86/README.md

Typing SVG


🚀 Summary

  • 🎓 HCMUS - Faculty of Information Technology (Software Engineering)
  • 🏗️ Shipping production, money-critical platforms: Tavigo (eSIM e-commerce), TongKhoEsim (B2B eSIM wholesale), napplus (prepaid top-up)
  • 💻 Backends in Go (Gin, pgx) & Rust (Axum, SQLx) — transactional outbox, Redis Streams workers, double-entry ledgers
  • 🌐 Frontends with Next.js / React / TypeScript behind BFF auth layers
  • 🗄️ PostgreSQL, Redis, Docker, Centrifugo realtime, VPS ops with Traefik/Caddy + Cloudflare
  • 🎨 Hobbies: anime, stories, algorithms, and exploring new tech

🏆 Flagship Products — Live in Production

📡 Tavigo — eSIM E-commerce Platform

Travel eSIM e-commerce for the Vietnamese market — real-time provisioning from 3 upstream suppliers (eSIM Access, eSIM Go, SimplifyTrip). Go modular monolith + 3 Next.js apps (storefront / admin / affiliate) behind BFF auth, VNPay · SePay · KimNganPay payments, Centrifugo realtime order tracking, MISA e-invoicing.

⚙️ Architecture highlights
  • Multi-provider eSIM provisioning with per-provider token-bucket rate limits and fail-closed webhook signature/IP verification
  • Transactional outbox over Redis Streams → separately scalable worker binary (payment expirers, reconciliation crons, DLQ) with Prometheus metrics
  • Shared Argon2 session cookie across 3 Next.js apps, encrypted TOTP 2FA, Google OAuth, admin RBAC with immutable audit logs
  • AEAD-encrypted bank data at rest with dual-key rotation; 108 SQL migrations; GitHub Actions push-to-deploy behind Traefik + Cloudflare

📦 TongKhoEsim — B2B Wholesale eSIM Distribution

Wholesale eSIM inventory & distribution — stock synced from telecom suppliers into a central warehouse, sold through two-tier reseller dashboards and a partner-facing Open API on a prepaid-wallet model. Rust workspace (~97k LOC) with separate API & worker binaries, 3 Next.js apps, SePay top-ups + MISA VAT invoicing.

⚙️ Architecture highlights
  • Money-safe core: multi-tenant prepaid wallets on an append-only double-entry ledger — integer VND only, mandatory Idempotency-Key on all money POSTs
  • Partner Open API: per-key rate limits, endpoint scopes, IP whitelists, sandbox mode, webhook fanout with retry backoff + delivery log & replay
  • Field-level AES-256-GCM encryption (versioned key rotation) for eSIM activation codes & TOTP secrets; Argon2id + TOTP 2FA; dynamic RBAC down to UI components
  • 4-crate Rust workspace (unsafe_code forbidden), 89 SQL migrations, 3-environment Docker deploys behind Caddy + Cloudflare, backups to R2

💳 napplus — Prepaid-Wallet Top-up Platform

Dual-brand fintech platform for phone credit, cards, data packages & bill payments backed by a prepaid wallet — VNPAY/SePay payments, VinNet & Viettel IRIS fulfillment. Currently being rewritten strangler-fig from legacy NestJS/MySQL to a 15-crate hexagonal Rust/Axum workspace: a Rust gateway proxies un-migrated routes to the legacy API while 7 bounded contexts move to PostgreSQL + Redis.

⚙️ Architecture highlights
  • Strangler-fig gateway: per-bounded-context production cutover with parallel-run reconciliation instead of a big-bang rewrite
  • Append-only double-entry ledger as the source of money truth; clippy float_arithmetic = deny workspace-wide; idempotency keys on every money mutation
  • Legacy system reverse-engineered into a 522-test-case spec across 12 flows — each suspected bug gets an explicit keep-or-fix ADR before porting (incl. a P0 IDOR account-takeover fix)
  • CI "layer purity" gate enforcing hexagonal architecture (domain must not know infrastructure), cargo-deny, k6 smoke/load suites

🚀 Featured Projects

🛒 Shop Acc Game

E-commerce platform for game accounts with PayOS payment, WebSocket realtime, admin dashboard.

🎨 Muciii Bio

Linktree-style bio page with theme customization, dark mode, smooth animations.

📥 Video Downloader

Download videos from YouTube, TikTok, Facebook, Instagram with queue management.

📚 NekozaneDex

Manga/comic reading platform with upload system and chapter management.


🧰 Tech Stack

Languages

Go Rust TypeScript JavaScript Java C/C++

Frameworks & Libraries

Gin Axum NestJS React Next.js Spring Boot TailwindCSS

Databases, Infra & Tools

PostgreSQL Redis MongoDB MySQL Docker Cloudflare Linux Ubuntu Git


📊 GitHub Stats




🐍 Contribution Snake

snake eating my contribution graph

🤝 Connect With Me


⭐ Thanks for visiting! 👋

Popular repositories Loading

  1. SenoDownload-BE SenoDownload-BE Public

    Download Video FaceBook/Reals, Youtube/Short, Instagram?, Tik Tok.

    TypeScript 3

  2. LDNVN86 LDNVN86 Public

    2

  3. SenoDownload-FE SenoDownload-FE Public

    TypeScript 2

  4. Portfolio-React-Vite Portfolio-React-Vite Public

    Demo profile

    JavaScript 2

  5. NekozaneDex-BE NekozaneDex-BE Public

    Web Đọc Truyện, Đăng Truyện "Đơn Giản" Bằng Gin Framework. Tôi Lỡ Add Quá Nhiều Tính Năng Và Tính Năng Nào Cũng Bị Lỗi (is developing not yet completed)

    Go 2 1

  6. NekozaneDex-FE NekozaneDex-FE Public

    The web frontend for NekozaneDex, built with Next.js, TypeScript, and Tailwind CSS. Lỗi Chồng Chất Thêm Lỗi Quá Nản (is developing not yet completed)

    TypeScript 2