Skip to content
View NgoQuocViet2001's full-sized avatar

Block or report NgoQuocViet2001

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.

Content in all repositories owned by your account will be closed.
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
NgoQuocViet2001/README.md

Ngo Quoc Viet — open-source adventurer

GitHub Portfolio AWS SAA Zalo

🧙 Player Profile

I'm Ngo Quoc Viet, a fullstack engineer focused on practical open-source maintenance. I use reproducible diagnostics, test evidence, and agent-assisted implementation to turn concrete upstream issues into narrow, reviewable patches.

Character stat Current build
Class Fullstack Engineer / OSS Contributor
Experience Nearly 4 years across product and outsourced projects
Party role Project-level Dev Lead experience in healthcare systems
Main quests Developer platforms, AI tooling, MCP, desktop apps, Windows DX
Play style Reproduce the issue → ship a narrow fix → add regression coverage → follow through on review

My favorite contributions are the ones maintainers can immediately use: broken runtime paths, cross-platform bugs, stale setup flows, incorrect API behavior, missing safety checks, and tests that prevent the same regression from returning.

📊 Adventure Log

Public contribution data for NgoQuocViet2001, refreshed 2026-08-26. The merged count covers public PRs submitted from this account and accepted into repositories it does not own during the preceding 12 months.

Retro RPG board showing 107 merged pull requests across 38 community repositories and 60 active pull requests
Stat Total Meaning
Merged quests 107 External PRs merged by community maintainers in the last 12 months
Worlds visited 38 Community repositories with at least one merged contribution
Active quests 60 External PRs currently open for maintainer review

⚔️ Latest Quests Cleared

The most recent merges, newest first. Earlier merged work is summarized in the Guild History table below.

Project PR Quest result Merged
book-to-skill #178 Strips the invisible carriers a Cf category filter misses — deprecated format controls, tag characters, musical format marks — while keeping U+2800 braille blank, which is printable text. 2026-08-25
text-to-cad #331 Reads the arc angle keys the DXF parsers actually emit, so a 90° arc stops being drawn as a complete circle. 2026-08-25
mise #12362 Emits the list separator when prepending to PATH in elvish, so a new entry no longer fuses onto the first existing one. 2026-08-25
mise #12361 Unsets __MISE_SESSION on nushell deactivate, which listed __MISE_DIFF twice and left the session marker behind. 2026-08-25
Yaak #606 Keeps an = inside --url-query and form values during curl import, preserving base64 padding and nested filters. 2026-08-25
Yaak #607 Escapes control characters in json.escape so a value containing a newline no longer produces an unparseable JSON document. 2026-08-25
Yaak #605 Uses the signing key as the OAuth 1.0 PLAINTEXT signature instead of the signature base string, per RFC 5849 3.4.4. 2026-08-25
drawDB #1126 Escapes single quotes in ENUM/SET values so a label such as it's fine no longer terminates the generated SQL literal early. 2026-08-24
repowise #1754 Scopes a module page's decision records to that module's own files, deduplicates them, and ranks by confidence instead of list position. 2026-08-24
repowise #1753 Counts a Prisma verb as a database sink only on a member call, so a local aggregate() stops producing false N+1 findings in code with no database. 2026-08-24
RAGFlow #18292 Classifies CLI benchmark responses by envelope code as well as HTTP status so failed calls stop inflating the success count. 2026-08-21
Vite #23256 Closes config bundles from a finally block so failed generation releases Rolldown plugin and native resources as reliably as the successful path. 2026-08-21
pnpm #13900 Preserves caret, tilde, bare, and equals-prefixed range styles when updates resolve to prereleases, keeping the TypeScript and Rust implementations aligned. 2026-08-21
OpenCADStudio #827 Rounds lengths and angles in their smallest displayed unit before splitting larger units, carrying values such as 12 inches or 60 seconds into the next column. 2026-08-20
Yaak #593 Emits shell-safe curl and gRPCurl arguments when values contain apostrophes, spaces, or file form-field type suffixes. 2026-08-20
Yaak #597 Keeps each --data-urlencode argument whole and preserves malformed percent text instead of failing the entire curl import. 2026-08-20
OpenCADStudio #826 Keeps DDPTYPE glyphs off dimension definition points on the Defpoints layer while preserving styles for user-created points. 2026-08-20
OpenCADStudio #825 Routes Up and Down to the MText caret while the editor is open instead of walking command history behind the dialog. 2026-08-20
zmx #239 Scopes the README session picker to the active ZMX_SESSION_PREFIX and prevents preview or attach from applying that prefix twice. 2026-08-20
OpenCADStudio #823 Gives SUBTRACT a deterministic operand order instead of taking the minuend and subtrahend from arbitrary HashSet iteration. 2026-08-20
OpenCADStudio #822 Restores tangent-tangent-radius solutions where the new circle encloses an existing circle without disturbing the external-tangency family. 2026-08-20
archify #91 Counts BMP emoji-presentation symbols and extended Hangul as full-width text units so fitted labels no longer overrun their nodes. 2026-08-20
OpenCADStudio #820 Requires identifier word boundaries during expression rescans so names such as ASPIRATORE no longer have their internal pi evaluated. 2026-08-20
cuda-oxide #1051 Rejects variadic #[device] externs at macro expansion with a source span, including declarations that are never reached by kernel MIR. 2026-08-20
Text-Grab #670 Applies Latin character correction only for Latin-based capture languages across paragraph, table, PDF, Tesseract, and Grab Frame OCR paths. 2026-08-20
Logto #9462 Aligns contributor prerequisites with the package engines by documenting Node ^22.14.0 and support for pnpm 9 and 10. 2026-08-20
text-to-cad #301 Accepts occurrenceId rows in Python label aliases and runs the shared alias fixture in both Python and JavaScript to prevent parity drift. 2026-08-19
text-to-cad #300 Strips only a leading # from CAD selectors so interior or trailing hashes remain opaque instead of being silently rewritten into labels. 2026-08-19
Slidev #2703 Defaults deferred manual setup to npm when create-slidev is launched without a detectable package manager. 2026-08-19
Yaak #577 Parses combined curl short flags left to right so common clusters such as -fsSL no longer turn sSL into the imported URL. 2026-08-18
manim #2502 Looks a graph's point up by clamping to the plotted x-range instead of indexing past it, so a lookup outside the unit range returns a point on the curve rather than failing. 2026-08-17
OpenCADStudio #794 Fingerprints a drawing through the handle its own edit lease already holds, so Save As over an existing file no longer fails against this editor's own mandatory Windows lock. 2026-08-17
text-to-cad #283 Copies a pinned temp file sideways and reruns the rename ladder when an SMB handle outlives it, covering every call site through replace_atomic rather than one writer. 2026-08-17
OpenCADStudio #781 Opens printer properties for the printer selected in the plot dialog on Windows instead of the system default. 2026-08-17
OpenCADStudio #780 Clears a half-drawn selection marquee when a command starts, so the pending rubber band cannot survive into the next command's input. 2026-08-17

🏰 Guild History

Community project Merged quests Contribution territory
mksglu/context-mode 13 Codex/MCP reliability, Windows shells, plugin installs, analytics, cache behavior, docs, and regression coverage
HakanSeven12/OpenCADStudio 12 CAD geometry, commands, unit formatting, DWG rendering, Windows file locking, and printer integration
CJackHwang/ds2api 8 OpenAI-compatible routes, streaming, citations, tool output, Vercel sync, and file metadata
tinyhumansai/openhuman 8 Desktop OAuth, deep links, packaging, startup cleanup, RPC security, AppImage release safety, and Windows contributor setup
mountain-loop/yaak 6 Curl import parsing, shell-safe curl and gRPCurl export, OAuth 1.0 PLAINTEXT signing, and JSON template escaping
slidevjs/slidev 6 Base-path routing, reactive frontmatter, addon preprocessing, test lifecycle cleanup, local exports, and scaffold setup
earthtojake/text-to-cad 5 Windows SMB write resilience, cross-language CAD selector and label parity, and DXF arc angle parsing
github/spec-kit 4 Development agent symlinks, safe Kiro multi-install behavior, authentication host matching, and workflow step-type validation
jdx/mise 4 Filesystem-safe install linking, portable generated bootstrap paths, and nushell and elvish activation correctness
drawdb-io/drawdb 3 Clipboard schema validation, self-referencing foreign keys, and SQL literal escaping for enum values
neurosnap/zmx 3 Session wildcard matching, prefixed picker behavior, and nested-session documentation
tt-a1i/archify 3 CLI validation, renderer-bound safety, and full-width text measurement
Crosstalk-Solutions/project-nomad 2 Offline content download reliability and benchmark startup correctness
DayuanJiang/next-ai-draw-io 2 MCP diagram edit consistency, stale-state protection, and multi-page export preservation
logto-io/logto 2 Tenant initialization error observability and accurate contributor prerequisites
repowise-dev/repowise 2 Health-analysis precision and wiki page scoping
ruvnet/RuView 2 ESP32 swarm configuration validation and mesh-to-dashboard documentation
virgiliojr94/book-to-skill 2 Literal handling for bracketed input paths and invisible-carrier sanitization

First clears

Community repositories with one merged contribution so far:

Community project Contribution territory
3b1b/manim Graph point lookup on manual curves outside unit x-ranges
addyosmani/agent-skills Eval grader-result validation and summary integrity
agegr/pi-web Wrapper process lifecycle, signal forwarding, and exit statuses
BarutSRB/OmniWM Complete public CLI and IPC command reference
cathrynlavery/diagram-design Accessible keyboard navigation for diagram gallery choices
NVIDIA-NeMo/Switchyard Nested protocol metadata normalization and header precedence
NVlabs/cuda-oxide Early validation for variadic CUDA device extern declarations
opengeos/GeoLibre Geographic-to-planar projection for buffer processing
pacifio/atlas Agent turn epoch handling and late transcript events
paperless-ngx/paperless-ngx Sanity-check data correctness and regression coverage
pingdotgg/t3code Cross-platform repository symlink integrity
infiniflow/ragflow CLI benchmark failure accounting by response envelope
pnpm/pnpm Prerelease range-style preservation across TypeScript and Rust update paths
rorkai/App-Store-Connect-CLI CLI argument validation before authentication
supertone-inc/supertonic Multi-language CLI option documentation
TheJoeFin/Text-Grab Language-aware Latin correction across OCR capture paths
tw93/Pake CLI startup independence from native image dependencies
vitejs/vite Config-bundle resource cleanup on failed generation
withastro/astro Page-directory boundary correctness and regression coverage
ZSeven-W/openpencil CLI positional argument forwarding

🔥 Active Quest Queue

The newest open contributions waiting for maintainer review, ordered by creation time. 60 are open in total; the 20 most recent are listed here.

Project PR Quest in progress
text-to-cad #332 Stops MTEXT paragraph-properties commands leaking their payload into engraved text, and regenerates the two skill bundles the parser is baked into.
manim #2518 Handles a single reference color and a single output sample in color_gradient, which raised IndexError and returned the wrong end respectively.
manim #2517 Strips LaTeX environments whose argument carries a star or a column spec, so align* stops inflating the glyph count used for submobject slicing.
archify #105 Rejects unknown options and extra positionals in render, which previously wrote a file named after the mistyped flag and exited 0.
Vite #23346 Keeps the image URL when a density descriptor omits its leading zero, so .5x candidates are no longer dropped from srcset and image-set().
Vite #23345 Stops generateCodeFrame spinning forever on a CRLF source, turning a build or dev-server error into a hung process.
drawDB #1125 Stops treating a plain-text default that merely ends in (...) as a SQL function, which emitted it unquoted into the export.
drawDB #1124 Keeps a column declared NULL nullable on import across five dialects, instead of inverting it to NOT NULL.
repowise #1752 Shares the sink-reachability walk between the cross-function loop and lock passes while preserving call-line accurate first-hop resolution.
repowise #1751 Makes coverage add exit non-zero when it stores nothing, with opt-in strict handling for partial ingests.
joshuto #634 Avoids history panics when filtering produces an empty listing or a stored cursor points past its old contents.
ni #357 Reads JSONC-style package.json files with comments and trailing commas while preserving the original error for genuinely invalid manifests.
LocalMiniDrama #37 Routes a custom vendor to the Volcano omni endpoint instead of the default one, so a user-configured provider reaches the right API.
SQLBot #1323 Tolerates the extra columns a Hive DESCRIBE returns, so schema introspection stops failing on Hive sources.
KrillinAI #308 Preserves the page selection in a Bilibili playlist URL, so a multi-part video downloads the requested part.
witr #231 Normalizes localized Windows TCP listener states by name first, so BOUND, CLOSED, and DELETE_TCB stop being reported as LISTEN.
pdf-inspector #387 Escapes CLI error text before embedding it in JSON output, so a message containing a quote no longer produces an unparseable document.
Slidev #2704 Returns 404 for an out-of-range slide patch instead of writing past the end of the deck.
Astro #17694 Fixes MDX page-directory boundary detection so a sibling directory sharing a name prefix is no longer treated as inside the page directory.
next-ai-draw-io #920 Prevents server model ID collisions so two concurrently registered models no longer overwrite each other.

🎒 Inventory / Tech Stack

Ngo Quoc Viet's development stack

Inventory slot Equipped tools
Frontend JavaScript, TypeScript, React, Vue, Next.js, Vite, Tailwind CSS
Backend Node.js, C#, ASP.NET, PHP, Laravel, Python, Java, Go, Rust
Data stores MySQL, PostgreSQL, MongoDB, Redis
Infrastructure AWS, Linux, Docker, Nginx, CI/CD, GitHub Actions, VPS operations
AI developer tooling Codex, MCP, Claude Code, OpenAI-compatible APIs, agent workflows
Product toolkit Git, GitHub, Figma, Postman, VS Code

🧭 Preferred Quest Types

  • AI developer tooling: MCP servers, Codex integrations, context optimization, local analytics, safe upgrade paths.
  • Windows-first reliability: PowerShell, pwsh, cmd, Git Bash, WSL, symlink restrictions, desktop deep links, packaging quirks.
  • API and data correctness: OpenAI-compatible routes, streaming behavior, file metadata, citation markers, validation, and counting semantics.
  • Release safety: dependency checks, runtime guards, reproducible setup, CI and test lifecycle fixes.
  • Maintainer-friendly delivery: narrow diffs, issue-backed scope, concrete tests, concise validation, and follow-up fixes.

🛠️ Personal Artifacts

Project What it equips
codex-keyring Native multi-account manager for Codex with aliases, health checks, and failover support
codex-observatory Local Codex usage analytics, token trends, model breakdowns, and dashboard views
google-workspace-mcp MCP server for structured Google Docs and Sheets extraction with image-aware output

📜 Character Background

  • Fullstack delivery across product and outsourced environments, with project bootstrapping, reusable component design, code review, Git flow, mentoring, and internal training.
  • Project-level Dev Lead experience in healthcare systems, including BA/QC/developer coordination and legacy-parity work.
  • Hands-on deployment and support across AWS, Linux, Docker, Nginx, CI/CD, VPS, staging, and production environments.
  • AWS Certified Solutions Architect – Associate, scored 861/1000.

📬 Party Invite

Open to OSS collaboration, maintainer support, developer tooling, automation, and practical fullstack/internal-tool work.

Portfolio · GitHub · Zalo · Facebook

Pinned Loading

  1. codex-keyring codex-keyring Public

    Native multi-account manager for Codex with manual alias switching and auto-switch failover.

    TypeScript 32 7

  2. codex-observatory codex-observatory Public

    Local observability and usage analytics for Codex sessions, tokens, prompts, and model trends.

    Python 10 2