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.
Public contribution data for NgoQuocViet2001, refreshed 2026-08-21. The merged count covers public PRs submitted from this account and accepted into repositories it does not own during the preceding 12 months.
| Stat | Total | Meaning |
|---|---|---|
| Merged quests | 96 | External PRs merged by community maintainers in the last 12 months |
| Worlds visited | 36 | Community repositories with at least one merged contribution |
| Active quests | 63 | External PRs currently open for maintainer review |
The most recent merges, newest first. Earlier merged work is summarized in the Guild History table below.
| Project | PR | Quest result | Merged |
|---|---|---|---|
| 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 |
| OpenCADStudio | #777 | Extends FLATTEN to polylines, solids and 3D faces so every projected entity lands on Z=0 rather than only the subset previously handled. | 2026-08-17 |
| OpenCADStudio | #776 | Leaves unitless block inserts unscaled instead of applying a unit conversion the block never declared. | 2026-08-17 |
| archify | #80 | Stops treating non-finite rectangles as overlapping in the renderers, removing a crash path when a layout produces NaN bounds. | 2026-08-17 |
| zmx | #242 | Documents that nested sessions are unsupported, after tracing why attaching inside an existing session leaves the inner one unrecoverable. | 2026-08-17 |
| diagram-design | #56 | Adds roving tabindex and aria-checked keyboard navigation to the gallery so arrow keys move focus and selection together. |
2026-08-17 |
| book-to-skill | #162 | Treats a bracketed path as a literal when it does not exist on disk, so extraction no longer rewrites text that only looks like a file reference. | 2026-08-17 |
| 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 |
| slidevjs/slidev | 6 | Base-path routing, reactive frontmatter, addon preprocessing, test lifecycle cleanup, local exports, and scaffold setup |
| earthtojake/text-to-cad | 4 | Windows SMB write resilience plus cross-language CAD selector and label parity |
| github/spec-kit | 4 | Development agent symlinks, safe Kiro multi-install behavior, authentication host matching, and workflow step-type validation |
| mountain-loop/yaak | 3 | Curl import parsing and shell-safe curl and gRPCurl export behavior |
| 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 |
| drawdb-io/drawdb | 2 | Clipboard schema validation and self-referencing foreign keys in SQL imports |
| jdx/mise | 2 | Filesystem-safe install linking and portable generated bootstrap paths |
| logto-io/logto | 2 | Tenant initialization error observability and accurate contributor prerequisites |
| ruvnet/RuView | 2 | ESP32 swarm configuration validation and mesh-to-dashboard documentation |
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 |
| 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 |
| virgiliojr94/book-to-skill | Literal handling for bracketed input paths |
| 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 |
The newest open contributions waiting for maintainer review, ordered by creation time:
| Project | PR | Quest in progress |
|---|---|---|
| repowise | #1754 | Scope module-page decision records to the module's own files, deduplicate them, and rank the strongest evidence first. |
| repowise | #1753 | Treat Prisma-like verbs as database sinks only on member calls so ordinary local functions such as aggregate() do not create false performance findings. |
| repowise | #1752 | Share the sink-reachability walk used by cross-function loop and lock analysis while preserving each pass's existing output. |
| repowise | #1751 | Make coverage add exit non-zero when it stores nothing and add opt-in strict handling for partial ingests. |
| cuda-oxide | #1050 | Keep the formatting workflow and cargo oxide fmt on one shared scope list, guarded by a drift-detection test. |
| cuda-oxide | #1049 | Accept Rust char in CUDA device-extern parameters and results with integration coverage for the generated ABI. |
| joshuto | #634 | Avoid history panics when filtering produces an empty listing or a stored cursor index points beyond its old contents. |
| book-to-skill | #178 | Strip invisible Unicode carriers that sit outside the existing format-control filter so reviewers and generated-skill consumers see the same text. |
| takumi | #1329 | Decode uppercase hexadecimal references, remap legacy C1 references, and replace numeric NUL references according to HTML parsing rules. |
| takumi | #1326 | Split inline styles only at top-level semicolons so data URLs and quoted values remain intact. |
| ni | #357 | Read JSONC-style package.json files with comments and trailing commas while preserving the original error for genuinely invalid manifests. |
| pi-web | #516 | Resolve a single session from directory entries and its verified header before falling back to a full catalogue scan. |
| pi-web | #515 | Handle child-process spawn errors and report unexpected exit codes or signals without adding noise to forwarded shutdowns. |
| pi-web | #511 | Accept same-origin requests behind a scheme-rewriting proxy only when the forwarded request still matches the Host authority. |
| LocalMiniDrama | #37 | Route custom Volcengine Omni submit and query requests to the endpoints already shown by the configuration preview. |
| SQLBot | #1323 | Keep the standard Hive DESCRIBE fields while ignoring trailing driver-specific columns returned by ArgoDB. |
| KrillinAI | #308 | Preserve the Bilibili p query parameter when normalizing multi-page video URLs. |
| witr | #231 | Detect Windows listeners by their zero-port remote endpoint so localized netstat state names are no longer dropped. |
| RAGFlow | #18292 | Classify CLI benchmark responses by envelope code as well as HTTP status so failed calls stop inflating the success count. |
| pdf-inspector | #387 | Escape quotes and newlines in pdf2md --json error objects so downstream consumers always receive valid JSON. |
| 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 |
- 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.
| 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 |
- 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.
Open to OSS collaboration, maintainer support, developer tooling, automation, and practical fullstack/internal-tool work.




