PageSourceSearch

https://nhannht.me/

html nhannht.me collected 2026-10-09 22:40:49 UTC 73,328 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/27_-j7cn5anuv.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/3iovjjis5poul.js"/>
1<script src="/_next/static/chunks/058ut6zop9e8r.js" async=""></script>
1<script src="/_next/static/chunks/05b77v5g9p4yo.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-39ejs0a7tw_gb.js" async=""></script>
1<script src="/_next/static/chunks/0_dx6iak8dl4k.js" async=""></script>
1<script src="/_next/static/chunks/3pcm31pt4my_q.js" async=""></script>
1<meta name="theme-color" content="#e8e9eb"/><title>nhannht - Self-taught Programmer</title><meta name="description" content="Nguyen Huu Thien Nhan - self-taught programmer. Certificates, music, books and games, every entry linked to the thing that proves it."/><meta property="og:title" content="nhannht - Self-taught Programmer"/><meta property="og:description" content="Nguyen Huu Thien Nhan - self-taught programmer. Certificates, music, books and games, every entry linked to the thing that proves it."/><meta property="og:url" content="https://nhannht.me"/><meta property="og:site_name" content="nhannht"/><meta property="og:image" content="https://nhannht.me/opengraph-image.png?opengraph-image.0-flnc9d6w7vj.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="nhannht - Self-taught Programmer"/><meta name="twitter:description" content="Nguyen Huu Thien Nhan - self-taught programmer. Certificates, music, books and games, every entry linked to the thing that proves it."/><meta name="twitter:image" content="https://nhannht.me/opengraph-image.png?opengraph-image.0-flnc9d6w7vj.png"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/icon.svg?icon.3w7mrjgx12fii.svg" sizes="any" type="image/svg+xml"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body><div hidden=""><!--$--><!--/$--></div><nav class="nav" aria-label="Sections"><div class="container nav-inner"><a class="nav-brand" href="#top">nhannht</a><div class="nav-links"><a class="nav-link" href="#built">Built</a><a class="nav-link" href="#open-source">Open source</a><a class="nav-link" href="#education">Education</a><a class="nav-link" href="#certificates">Certs</a></div></div></nav><main><section class="hero container" id="top"><p class="eyebrow">Nguyen Huu Thien Nhan</p><h1 class="hero-title">Self-taught Programmer</h1><p class="hero-lead">I teach myself anything, then craft products as close to perfect as possible. Everything below is a receipt: each line opens the thing that proves it.</p><div class="hero-actions"><a class="btn" href="https://github.com/nhannht">GitHub</a><a class="btn btn-quiet" href="mailto:[email protected]">Email</a></div></section><section class="section container" id="built"><div class="section-head"><h2 class="section-title">Built</h2><p class="section-count">6 shipped</p></div><p class="section-note">Installable today, by a stranger, without asking me for anything. Nothing here links to something you cannot use.</p><ul class="rows rows-dated"><li><a class="row" href="https://github.com/nhannht/obsidian-smart-gantt" target="_blank" rel="noreferrer"><span class="row-lead">2024</span><span class="row-main"><span class="row-title">obsidian-smart-gantt</span><span class="row-sub">Obsidian plugin · 10,000+ installs, top 15% of 6,866 in the registry</span><span class="row-note">Tracks every task across a vault with no plugin-specific syntax to learn, reading plain-language dates, Tasks emoji dates and Dataview fields alike. Drag a bar and it rewrites the date back into the note.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/nhannht/obsidian-historica" target="_blank" rel="noreferrer"><span class="row-lead">2024</span><span class="row-main"><span class="row-title">obsidian-historica</span><span class="row-sub">Obsidian plugin · 4,700+ installs</span><span class="row-note">Runs NLP over your notes, finds every date in the prose, and renders an interactive timeline inside a fenced block.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/nhannht/organism" target="_blank" rel="noreferrer"><span class="row-lead">2026</span><span class="row-main"><span class="row-title">organism</span><span class="row-sub">Swift · 80 of 80 against org-element, listed in the Swift Package Index</span><span class="row-note">A language-agnostic conformance suite for org-mode, graded against org-mode&#x27;s own reference parser. The bundled Swift parser refuses the constructs it has not implemented instead of guessing at them.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/nhannht/ncomphunt" target="_blank" rel="noreferrer"><span class="row-lead">2026</span><span class="row-main"><span class="row-title">ncomphunt</span><span class="row-sub">Swift · brew install nhannht/tap/ncomphunt</span><span class="row-note">A native macOS competition tracker, distributed through my own Homebrew tap.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/nhannht/Khac" target="_blank" rel="noreferrer"><span class="row-lead">2026</span><span class="row-main"><span class="row-title">Khac</span><span class="row-sub">Swift · listed in the Swift Package Index</span><span class="row-note">A natural-language date parser where adding a language means filling in a data table, not writing a second parser.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://crates.io/crates/ncov-cli" target="_blank" rel="noreferrer"><span class="row-lead">2021</span><span class="row-main"><span class="row-title">ncov-cli</span><span class="row-sub">Rust · on crates.io, 1,600+ downloads</span><span class="row-note">A terminal UI I published while learning the language. Strangers are still pulling it five years later.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li></ul></section><section class="section container" id="open-source"><div class="section-head"><h2 class="section-title">Open source</h2><p class="section-count">8 merged</p></div><p class="section-note">Merged into repositories that are not mine. Eight pull requests, none of them dependency bumps.</p><ul class="rows rows-dated"><li><a class="row" href="https://github.com/wanasit/chrono/pull/641" target="_blank" rel="noreferrer"><span class="row-lead">2026</span><span class="row-main"><span class="row-title">Vietnamese locale for chrono</span><span class="row-sub">wanasit/chrono · PR #641</span><span class="row-note">The entire locale, not a fix. It ships inside chrono-node, which npm serves millions of times a month, so somebody in Hanoi typed a date in their own language today and my parser answered.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/WolframResearch/Chatbook/pull/456" target="_blank" rel="noreferrer"><span class="row-lead">2023</span><span class="row-main"><span class="row-title">Custom OpenAI-compatible endpoints</span><span class="row-sub">WolframResearch/Chatbook · PR #456</span><span class="row-note">Written in Wolfram Language, and it went through Wolfram staff review to land.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/EclipseFdn/publish-extensions/pull/402" target="_blank" rel="noreferrer"><span class="row-lead">2021</span><span class="row-main"><span class="row-title">Two extensions onto Open VSX</span><span class="row-sub">EclipseFdn/publish-extensions · PR #402</span><span class="row-note">So people who refuse Microsoft&#x27;s marketplace can still have them.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/mmontone/emacs-inspector/pull/18" target="_blank" rel="noreferrer"><span class="row-lead">2023</span><span class="row-main"><span class="row-title">Evil-mode keymap and CI</span><span class="row-sub">mmontone/emacs-inspector · PR #18 and #16</span><span class="row-note">Vim bindings for the Emacs inspector, plus the continuous integration it did not have.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/kubaPod/M2MD/pull/28" target="_blank" rel="noreferrer"><span class="row-lead">2023</span><span class="row-main"><span class="row-title">Front matter for notebook export</span><span class="row-sub">kubaPod/M2MD · PR #28</span><span class="row-note">Mathematica notebooks converted to markdown now carry their metadata across.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://github.com/SwiftPackageIndex/PackageList/pull/14733" target="_blank" rel="noreferrer"><span class="row-lead">2026</span><span class="row-main"><span class="row-title">organism and Khac into the Swift Package Index</span><span class="row-sub">SwiftPackageIndex/PackageList · PR #14733 and #14723</span><span class="row-note">Reviewed and added, so both resolve for anyone searching Swift packages.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li></ul></section><section class="section container" id="education"><div class="section-head"><h2 class="section-title">Education</h2><p class="section-count">HCMUS</p></div><p class="entry-title">B.S. Education Technology</p><p class="entry-sub">University of Science, Vietnam National University Ho Chi Minh City</p><p class="entry-note">Currently studying.<!-- --> <!-- -->HCMUS is Vietnam&#x27;s leading university for the natural sciences.</p><p class="entry-note"><a href="https://hcmus.edu.vn/" target="_blank" rel="noreferrer">hcmus.edu.vn</a></p></section><section class="section container" id="certificates"><div class="section-head"><h2 class="section-title">Certificates</h2><p class="section-count" aria-live="polite">53<!-- --> of <!-- -->53</p></div><p class="section-note">Every certificate opens its issuer&#x27;s verification page. Don&#x27;t believe me, click.</p><div class="filter" role="group" aria-label="Filter certificates by skill"><button type="button" class="filter-chip" aria-pressed="true">All</button><button type="button" class="filter-chip" aria-pressed="false">Java</button><button type="button" class="filter-chip" aria-pressed="false">Python</button><button type="button" class="filter-chip" aria-pressed="false">Security</button><button type="button" class="filter-chip" aria-pressed="false">Cloud</button><button type="button" class="filter-chip" aria-pressed="false">Databases</button><button type="button" class="filter-chip" aria-pressed="false">Blockchain</button><button type="button" class="filter-chip" aria-pressed="false">DevOps</button><button type="button" class="filter-chip" aria-pressed="false">Specialization</button><button type="button" class="filter-chip" aria-pressed="false">Machine Learning</button><button type="button" class="filter-chip" aria-pressed="false">Math &amp; Stats</button><button type="button" class="filter-chip" aria-pressed="false">English</button><button type="button" class="filter-chip" aria-pressed="false">JavaScript</button><button type="button" class="filter-chip" aria-pressed="false">Algorithms</button></div><ul class="rows rows-dated"><li><a class="row" href="https://certs.duolingo.com/kai6kwq4ne5wbq8x" target="_blank" rel="noreferrer"><span class="row-lead">Jul 2026</span><span class="row-main"><span class="row-title">Duolingo English Test</span><span class="row-sub">Duolingo · Overall 100 of 160, CEFR B2</span><span class="row-note">Speaking 85, Writing 115, Reading 110, Listening 95</span><span class="row-note">Proctored online English test with AI plus human review, accepted by universities worldwide.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="/cert-files/ielts-etrf-26VN513348NGUH028A.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Jul 2026</span><span class="row-main"><span class="row-title">IELTS Academic</span><span class="row-sub">British Council · Overall Band 6.0, Competent User</span><span class="row-note">Listening 5.5, Reading 7.0, Writing 6.0, Speaking 5.5</span><span class="row-note">Proctored in-person IELTS Academic test, computer-delivered, taken at British Council Ho Chi Minh City.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/specialization/L8RMP9XE754E" target="_blank" rel="noreferrer"><span class="row-lead">Oct 2022</span><span class="row-main"><span class="row-title">Machine Learning Specialization</span><span class="row-sub">Stanford University &amp; DeepLearning.AI</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/specialization/8GL296MFYZ6U" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Blockchain Specialization</span><span class="row-sub">University at Buffalo, The State University of New York</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/specialization/8D5ZT5FGVH8T" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">PostgreSQL for Everybody Specialization</span><span class="row-sub">University of Michigan</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/specialization/GESGKEJJ6X87" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Microsoft Azure Fundamentals AZ-900 Exam Prep Specialization</span><span class="row-sub">Microsoft</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/specialization/WVUQWSBSQ4H5" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Secure Software Design Specialization</span><span class="row-sub">University of Colorado System</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://confirm.udacity.com/PLXNVUDK" target="_blank" rel="noreferrer"><span class="row-lead">Jul 2021</span><span class="row-main"><span class="row-title">Java Web Developer Nanodegree</span><span class="row-sub">Udacity</span><span class="row-note">Graduated Nanodegree program covering Spring Boot, web services and APIs, data stores and persistence, security, and deployment.</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://confirm.udacity.com/UHH7NGWS" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2021</span><span class="row-main"><span class="row-title">Data Structures and Algorithms Nanodegree</span><span class="row-sub">Udacity</span><span class="row-note">Graduated Nanodegree program on algorithms, data structures, and interview-style problem solving.</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/175b6864-18d2-4942-8faf-1f7aaba07401.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Jul 2026</span><span class="row-main"><span class="row-title">Java Developer</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">8 projects, 243 topics</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/cb2705e6-36a5-465c-b6c4-200cdc7f8914.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Jul 2026</span><span class="row-main"><span class="row-title">Introduction to Command Line and Unix Shell</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">2 projects, 82 topics</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/5B9Q9BQ00TPH" target="_blank" rel="noreferrer"><span class="row-lead">Mar 2025</span><span class="row-main"><span class="row-title">IELTS Reading Section Skills Mastery</span><span class="row-sub">University of California, Irvine · Grade 85%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/fd5127ca-f20e-48ea-80e8-9f15ba86dbeb.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Dec 2022</span><span class="row-main"><span class="row-title">Python for Beginners</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">4 projects, 68 topics</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/d5521896-42de-412f-9b56-68c32c341d50.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Dec 2022</span><span class="row-main"><span class="row-title">Java Core</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">8 projects, 264 topics</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/5c58af33-7ab0-4346-af19-a9acfc25ba64.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Dec 2022</span><span class="row-main"><span class="row-title">Java for Beginners</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">4 projects, 97 topics</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/5b4ca6c4-2630-4b9f-9e48-6248ad251dfa.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Nov 2022</span><span class="row-main"><span class="row-title">JavaScript for Beginners</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">1 project, 55 topics</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://hyperskill.org/certificates/9b248aec-55d3-486a-9098-b573b4990df3.pdf" target="_blank" rel="noreferrer"><span class="row-lead">Nov 2022</span><span class="row-main"><span class="row-title">Python Core</span><span class="row-sub">Hyperskill (JetBrains Academy)</span><span class="row-note">12 projects, 274 topics</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/RQRLKR9ZEXFH" target="_blank" rel="noreferrer"><span class="row-lead">Oct 2022</span><span class="row-main"><span class="row-title">Computational Social Science Methods</span><span class="row-sub">University of California, Davis · Grade 90.93%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/4834H5CKHK7B" target="_blank" rel="noreferrer"><span class="row-lead">Oct 2022</span><span class="row-main"><span class="row-title">Supervised Machine Learning: Regression and Classification</span><span class="row-sub">DeepLearning.AI &amp; Stanford University · Grade 99.60%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/VJDGKNDFJAWJ" target="_blank" rel="noreferrer"><span class="row-lead">Oct 2022</span><span class="row-main"><span class="row-title">Unsupervised Learning, Recommenders, Reinforcement Learning</span><span class="row-sub">DeepLearning.AI &amp; Stanford University · Grade 98.80%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/5PHJHDXULYJK" target="_blank" rel="noreferrer"><span class="row-lead">Oct 2022</span><span class="row-main"><span class="row-title">Advanced Learning Algorithms</span><span class="row-sub">DeepLearning.AI &amp; Stanford University · Grade 99.66%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/MQXUNN5NP7SU" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2022</span><span class="row-main"><span class="row-title">Introduction to Statistics</span><span class="row-sub">Stanford University · Grade 89.17%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/E5JT685VSTGZ" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Decentralized Applications (Dapps)</span><span class="row-sub">University at Buffalo, The State University of New York · Grade 92.15%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/YRH72VZ626P6" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Smart Contracts</span><span class="row-sub">University at Buffalo, The State University of New York · Grade 90.40%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/PMY25L2JHH2J" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Blockchain Basics</span><span class="row-sub">University at Buffalo, The State University of New York · Grade 95.22%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/B8T47DR9Z26X" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Blockchain Platforms</span><span class="row-sub">University at Buffalo, The State University of New York · Grade 87.51%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/2R2YDT2GWPWH" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Probability Theory, Statistics and Exploratory Data Analysis</span><span class="row-sub">HSE University · Grade 96.20%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/FFZDPPD9AQF6" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2022</span><span class="row-main"><span class="row-title">Discrete Math and Analyzing Social Graphs</span><span class="row-sub">HSE University · Grade 98.57%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/49DU7ZMZMHP7" target="_blank" rel="noreferrer"><span class="row-lead">Jan 2022</span><span class="row-main"><span class="row-title">Asymmetric Cryptography and Key Management</span><span class="row-sub">University of Colorado System · Grade 90.97%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/GPTDUY4V636U" target="_blank" rel="noreferrer"><span class="row-lead">Jan 2022</span><span class="row-main"><span class="row-title">Classical Cryptosystems and Core Concepts</span><span class="row-sub">University of Colorado System · Grade 90%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/E8M7LU25WTJM" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2021</span><span class="row-main"><span class="row-title">Crash Course on Python</span><span class="row-sub">Google · Grade 94%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/KT4BYB2XEMJC" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2021</span><span class="row-main"><span class="row-title">Using Python to Interact with the Operating System</span><span class="row-sub">Google · Grade 100%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/5URST455TPCH" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2021</span><span class="row-main"><span class="row-title">Introduction to Git and GitHub</span><span class="row-sub">Google · Grade 100%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/XQGXC924FN3T" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2021</span><span class="row-main"><span class="row-title">Configuration Management and the Cloud</span><span class="row-sub">Google · Grade 100%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/2N7NV2H7ZB4L" target="_blank" rel="noreferrer"><span class="row-lead">Jun 2021</span><span class="row-main"><span class="row-title">Troubleshooting and Debugging Techniques</span><span class="row-sub">Google · Grade 100%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/S3YG6P9A9HCW" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Database Design and Basic SQL in PostgreSQL</span><span class="row-sub">University of Michigan · Grade 99.16%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/6LYCJXJ3FLMV" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Intermediate PostgreSQL</span><span class="row-sub">University of Michigan · Grade 99.16%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/KKZVKYCXTU4V" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">JSON and Natural Language Processing in PostgreSQL</span><span class="row-sub">University of Michigan · Grade 98.45%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/Q3EKD2LU5T9B" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Database Architecture and NoSQL at Scale with Deno</span><span class="row-sub">University of Michigan · Grade 98.88%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/RC3NWJ3665WV" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Microsoft Azure Services and Lifecycles</span><span class="row-sub">Microsoft · Grade 95%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/8NR5ERFJGXXY" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Microsoft Azure Management Tools and Security Solutions</span><span class="row-sub">Microsoft · Grade 90%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/SRU9KVSCC6TW" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Introduction to Microsoft Azure Cloud Services</span><span class="row-sub">Microsoft · Grade 96.87%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/8BWKAKZVDEWS" target="_blank" rel="noreferrer"><span class="row-lead">May 2021</span><span class="row-main"><span class="row-title">Preparing for the AZ-900 Microsoft Azure Fundamentals Exam</span><span class="row-sub">Microsoft · Grade 84.76%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/K7FQGNGSLV4Y" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Learn Java and JavaFX by creating a Graphical Calculator</span><span class="row-sub">Coursera Guided Project (retired) · Grade 100%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/8A9JANGFCRZ7" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Software Design Threats and Mitigations</span><span class="row-sub">University of Colorado System · Grade 86%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/6RY6GALFD9MY" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Software Design Methods and Tools</span><span class="row-sub">University of Colorado System · Grade 94%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/33PLZHHPEF5K" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Software Design as an Abstraction</span><span class="row-sub">University of Colorado System · Grade 92%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/FDWELW9QGCRA" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Software Design as an Element of the Software Development Lifecycle</span><span class="row-sub">University of Colorado System · Grade 92%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/PSEE43VV8CRM" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Introduction to Big Data</span><span class="row-sub">University of California San Diego · Grade 93.93%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/CMA64HK79HGL" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Programming Foundations with JavaScript, HTML and CSS</span><span class="row-sub">Duke University · Grade 86.42%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/XNN3XZR2FEVQ" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Java Programming: Arrays, Lists, and Structured Data</span><span class="row-sub">Duke University · Grade 91.29%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/GWWDKATKS79S" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Java Programming: Principles of Software Design</span><span class="row-sub">Duke University · Grade 86.63%</span></span><span class="row-tail"><svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li><li><a class="row" href="https://www.coursera.org/account/accomplishments/verify/3GM29BLSCSE9" target="_blank" rel="noreferrer"><span class="row-lead">Feb 2021</span><span class="row-main"><span class="row-title">Java Programming: Solving Problems with Software</span><span class="row-sub">Duke University · Grade 89.28%</span></span><span class="row-tail">
1<svg class="row-arrow" viewBox="0 0 11 11" aria-hidden="true" focusable="false"><path d="M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" fill="none"></path></svg></span></a></li></ul></section></main><footer class="footer"><div class="container footer-inner"><span>© 2026 Nguyen Huu Thien Nhan</span><span class="footer-links"><a href="https://github.com/nhannht">GitHub</a><a href="mailto:[email protected]">Email</a></span></div></footer><!--$--><!--/$-->
1<script src="/_next/static/chunks/3iovjjis5poul.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[70215,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"default\"]\n3:I[17584,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"default\"]\n4:I[19449,[\"/_next/static/chunks/0_dx6iak8dl4k.js\",\"/_next/static/chunks/3pcm31pt4my_q.js\"],\"default\"]\n14:I[20965,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/27_-j7cn5anuv.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/27_-j7cn5anuv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0_dx6iak8dl4k.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"$L4\",null,{}],[\"$\",\"main\",null,{\"children\":[[\"$\",\"section\",null,{\"className\":\"hero container\",\"id\":\"top\",\"children\":[[\"$\",\"p\",null,{\"className\":\"eyebrow\",\"children\":\"Nguyen Huu Thien Nhan\"}],[\"$\",\"h1\",null,{\"className\":\"hero-title\",\"children\":\"Self-taught Programmer\"}],[\"$\",\"p\",null,{\"className\":\"hero-lead\",\"children\":\"I teach myself anything, then craft products as close to perfect as possible. Everything below is a receipt: each line opens the thing that proves it.\"}],[\"$\",\"div\",null,{\"className\":\"hero-actions\",\"children\":[[\"$\",\"a\",null,{\"className\":\"btn\",\"href\":\"https://github.com/nhannht\",\"children\":\"GitHub\"}],[\"$\",\"a\",null,{\"className\":\"btn btn-quiet\",\"href\":\"mailto:[email protected]\",\"children\":\"Email\"}]]}]]}],[\"$\",\"section\",null,{\"className\":\"section container\",\"id\":\"built\",\"children\":[[\"$\",\"div\",null,{\"className\":\"section-head\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"section-title\",\"children\":\"Built\"}],[\"$\",\"p\",null,{\"className\":\"section-count\",\"children\":\"6 shipped\"}]]}],[\"$\",\"p\",null,{\"className\":\"section-note\",\"children\":\"Installable today, by a stranger, without asking me for anything. Nothing here links to something you cannot use.\"}],[\"$\",\"ul\",null,{\"className\":\"rows rows-dated\",\"children\":[[\"$\",\"li\",\"https://github.com/nhannht/obsidian-smart-gantt\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/nhannht/obsidian-smart-gantt\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2024\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"obsidian-smart-gantt\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"Obsidian plugin · 10,000+ installs, top 15% of 6,866 in the registry\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"Tracks every task across a vault with no plugin-specific syntax to learn, reading plain-language dates, Tasks emoji dates and Dataview fields alike. Drag a bar and it rewrites the date back into the note.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}],[\"$\",\"li\",\"https://github.com/nhannht/obsidian-historica\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/nhannht/obsidian-historica\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2024\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[\"$L5\",\"$L6\",\"$L7\"]}],\"$L8\"]}]}],\"$L9\",\"$La\",\"$Lb\",\"$Lc\"]}]]}],\"$Ld\",\"$Le\",\"$Lf\"]}],\"$L10\"],[\"$L11\"],\"$L12\"]}],{}
1,null,false,null]},null,false,null],\"$L13\",false]],\"m\":\"$undefined\",\"G\":[\"$14\",[\"$L15\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"ajaEl4uDmzhUcnVLKaWny\"}\n"])</script>
1<script>self.__next_f.push([1,"19:I[72407,[\"/_next/static/chunks/0_dx6iak8dl4k.js\",\"/_next/static/chunks/3pcm31pt4my_q.js\"],\"default\"]\n1a:I[11107,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"OutletBoundary\"]\n1b:\"$Sreact.suspense\"\n1d:I[11107,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"ViewportBoundary\"]\n1f:I[11107,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"MetadataBoundary\"]\n5:[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"obsidian-historica\"}]\n6:[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"Obsidian plugin · 4,700+ installs\"}]\n7:[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"Runs NLP over your notes, finds every date in the prose, and renders an interactive timeline inside a fenced block.\"}]\n8:[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]\n9:[\"$\",\"li\",\"https://github.com/nhannht/organism\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/nhannht/organism\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2026\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"organism\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"Swift · 80 of 80 against org-element, listed in the Swift Package Index\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"A language-agnostic conformance suite for org-mode, graded against org-mode's own reference parser. The bundled Swift parser refuses the constructs it has not implemented instead of guessing at them.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}]\na:[\"$\",\"li\",\"https://github.com/nhannht/ncomphunt\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/nhannht/ncomphunt\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2026\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"ncomphunt\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"Swift · brew install nhannht/tap/ncomphunt\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"A native macOS competition tracker, distributed through my own Homebrew tap.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}]\nb:[\"$\",\"li\",\"https://github.com/nhannht/Khac\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/nhannht/Khac\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2026\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"Khac\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"Swift · listed in the Swift Package Index\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"A natural-language date parser where adding a language means filling in a data table, not writing a second parser.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}]\nc:[\"$\",\"li\",\"https:/"])</script>
1<script>self.__next_f.push([1,"/crates.io/crates/ncov-cli\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://crates.io/crates/ncov-cli\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2021\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"ncov-cli\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"Rust · on crates.io, 1,600+ downloads\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"A terminal UI I published while learning the language. Strangers are still pulling it five years later.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}]\n"])</script>
1<script>self.__next_f.push([1,"d:[\"$\",\"section\",null,{\"className\":\"section container\",\"id\":\"open-source\",\"children\":[[\"$\",\"div\",null,{\"className\":\"section-head\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"section-title\",\"children\":\"Open source\"}],[\"$\",\"p\",null,{\"className\":\"section-count\",\"children\":\"8 merged\"}]]}],[\"$\",\"p\",null,{\"className\":\"section-note\",\"children\":\"Merged into repositories that are not mine. Eight pull requests, none of them dependency bumps.\"}],[\"$\",\"ul\",null,{\"className\":\"rows rows-dated\",\"children\":[[\"$\",\"li\",\"https://github.com/wanasit/chrono/pull/641\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/wanasit/chrono/pull/641\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2026\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"Vietnamese locale for chrono\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"wanasit/chrono · PR #641\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"The entire locale, not a fix. It ships inside chrono-node, which npm serves millions of times a month, so somebody in Hanoi typed a date in their own language today and my parser answered.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}],[\"$\",\"li\",\"https://github.com/WolframResearch/Chatbook/pull/456\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/WolframResearch/Chatbook/pull/456\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2023\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"Custom OpenAI-compatible endpoints\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"WolframResearch/Chatbook · PR #456\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"Written in Wolfram Language, and it went through Wolfram staff review to land.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}],[\"$\",\"li\",\"https://github.com/EclipseFdn/publish-extensions/pull/402\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/EclipseFdn/publish-extensions/pull/402\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2021\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"Two extensions onto Open VSX\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"EclipseFdn/publish-extensions · PR #402\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"So people who refuse Microsoft's marketplace can still have them.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}],[\"$\",\"li\",\"https://github.com/mmontone/emacs-inspector/pull/18\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/mmontone/emacs-inspector/pull/18\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2023\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"Evil
1-mode keymap and CI\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"mmontone/emacs-inspector · PR #18 and #16\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"Vim bindings for the Emacs inspector, plus the continuous integration it did not have.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":\"$L16\"}]}]]}]}],\"$L17\",\"$L18\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"e:[\"$\",\"section\",null,{\"className\":\"section container\",\"id\":\"education\",\"children\":[[\"$\",\"div\",null,{\"className\":\"section-head\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"section-title\",\"children\":\"Education\"}],[\"$\",\"p\",null,{\"className\":\"section-count\",\"children\":\"HCMUS\"}]]}],[\"$\",\"p\",null,{\"className\":\"entry-title\",\"children\":\"B.S. Education Technology\"}],[\"$\",\"p\",null,{\"className\":\"entry-sub\",\"children\":\"University of Science, Vietnam National University Ho Chi Minh City\"}],[\"$\",\"p\",null,{\"className\":\"entry-note\",\"children\":[\"Currently studying.\",\" \",\"HCMUS is Vietnam's leading university for the natural sciences.\"]}],[\"$\",\"p\",null,{\"className\":\"entry-note\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://hcmus.edu.vn/\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":\"hcmus.edu.vn\"}]}]]}]\nf:[\"$\",\"$L19\",null,{}]\n10:[\"$\",\"footer\",null,{\"className\":\"footer\",\"children\":[\"$\",\"div\",null,{\"className\":\"container footer-inner\",\"children\":[[\"$\",\"span\",null,{\"children\":\"© 2026 Nguyen Huu Thien Nhan\"}],[\"$\",\"span\",null,{\"className\":\"footer-links\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/nhannht\",\"children\":\"GitHub\"}],[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"children\":\"Email\"}]]}]]}]}]\n11:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3pcm31pt4my_q.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n12:[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1c\"}]}]\n13:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L20\"}]}]}],null]}]\n15:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/27_-j7cn5anuv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script>
1<script>self.__next_f.push([1,"16:[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]\n17:[\"$\",\"li\",\"https://github.com/kubaPod/M2MD/pull/28\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/kubaPod/M2MD/pull/28\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2023\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"Front matter for notebook export\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"kubaPod/M2MD · PR #28\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"Mathematica notebooks converted to markdown now carry their metadata across.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}]\n18:[\"$\",\"li\",\"https://github.com/SwiftPackageIndex/PackageList/pull/14733\",{\"children\":[\"$\",\"a\",null,{\"className\":\"row\",\"href\":\"https://github.com/SwiftPackageIndex/PackageList/pull/14733\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-lead\",\"children\":\"2026\"}],[\"$\",\"span\",null,{\"className\":\"row-main\",\"children\":[[\"$\",\"span\",null,{\"className\":\"row-title\",\"children\":\"organism and Khac into the Swift Package Index\"}],[\"$\",\"span\",null,{\"className\":\"row-sub\",\"children\":\"SwiftPackageIndex/PackageList · PR #14733 and #14723\"}],[\"$\",\"span\",null,{\"className\":\"row-note\",\"children\":\"Reviewed and added, so both resolve for anyone searching Swift packages.\"}]]}],[\"$\",\"span\",null,{\"className\":\"row-tail\",\"children\":[\"$\",\"svg\",null,{\"className\":\"row-arrow\",\"viewBox\":\"0 0 11 11\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"path\",null,{\"d\":\"M2.5 8.5L8.5 2.5M8.5 2.5H3.7M8.5 2.5V7.3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.4\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"fill\":\"none\"}]}]}]]}]}]\n"])</script>
1<script>self.__next_f.push([1,"1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#e8e9eb\"}]]\n"])</script>
1<script>self.__next_f.push([1,"21:I[54864,[\"/_next/static/chunks/0_dx6iak8dl4k.js\"],\"IconMark\"]\n1c:null\n"])</script>
1<script>self.__next_f.push([1,"20:[[\"$\",\"title\",\"0\",{\"children\":\"nhannht - Self-taught Programmer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Nguyen Huu Thien Nhan - self-taught programmer. Certificates, music, books and games, every entry linked to the thing that proves it.\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"nhannht - Self-taught Programmer\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Nguyen Huu Thien Nhan - self-taught programmer. Certificates, music, books and games, every entry linked to the thing that proves it.\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:url\",\"content\":\"https://nhannht.me\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:site_name\",\"content\":\"nhannht\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:image\",\"content\":\"https://nhannht.me/opengraph-image.png?opengraph-image.0-flnc9d6w7vj.png\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"nhannht - Self-taught Programmer\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Nguyen Huu Thien Nhan - self-taught programmer. Certificates, music, books and games, every entry linked to the thing that proves it.\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:image\",\"content\":\"https://nhannht.me/opengraph-image.png?opengraph-image.0-flnc9d6w7vj.png\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.3w7mrjgx12fii.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L21\",\"19\",{}]]\n"])</script>
1<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"990df799ef7c4d62b76249a0583c4c72","r":1,"spa":2}' crossorigin="anonymous"></script>
1
2</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.