Booting System...
thdatvu
thdat-vu@github: ~$ ./portrait.sh ><<+r!r!rr!_` `^+!!!!c***rrr+<<++>,_;<+rr!>+zTTvvv))J)))vJ)JJ7Fff333IIfIIIfff}}C}C{iiFFF|((7JvTLs??z/*z?/^` `..`` `-':_::::'-..``````` ` ` r==^===;;>!>' `'><===;><<<>;=;;;=>^'_;><rc/??/**//zzzz??sLsss?sv7((7J77J)7|F|(i{F{iF{{J)(F(JLz///*crrr+rrzr:` `....` `-'':::-':':::::-'''---.```` ` !^=;>;=>rc!:` ``_+!!>=>+!!+>>;==;<=,^==!/crrc**//z?z??ssLLLLLLTJ||(||7(C3CC{Cf|J(vzz*r<+r/?TJ77vz**ccc+ccz*_` `.--.` `--':::'::__:_:'--'--..`````` ` c>;>;>rr>^'``.```:,;!c+!!!!+<>=>>,',;=;_>/z**///z???sLLssLvv)))(FiF(3euf(?r<+!^,=_--.`..--:,;!*s)Tzrccrc*?/,` .'::'. `-:'::::::'''---....```````.``` ` c;><+c>_.`-,c?*;:-..:</*!!+<<<<>;+cr>=_;c//z//z???ssLTLLTv))v)J({i15n(z+^'.`` ````.-_+?vTzc!**s?^. .'''-. `-'''--.````````````````````.` `` !;><c!s7iflj9p4wx[tI{J??*r!<<>><!!++>+rc?z//zz??sssTTTTTv)v)JJJ|C55{r:.` `._>zvv//c??;` `----. `..-.-.`` ` ` ``````````` `` !>!rslEdGXR0N$M%@g$8U6y}zrc+>><+!++<;r//r/zz??????sTTTT)v))J7J73Y3z,` ` ` ` ` .:;rsv?zL;. `-'-'.` ...-.-.` ` ``..` ` `````` +>rz715EkdG8gRD##KbVPy[F?*r!!<>=^;>>+c/??z/z?zzsssTLTvT)))JJ7|1Iv=- ``` ` ` `-=*v/L>- `.-..` ````---.````'^>vul);_-`` ` ` r!r!/vF}I1u5SPkSjo[lfFv/c!+!!;;c?zcr<+z/*zzzz?sLTvvTTTv)))J77IIc-.``` ` ` ` ._*?z!- .:__-. ``.----` `:</{qAA6Fr='`` ` ` *!rrr+!!!!rr?vvs/ccrcc**/crc*r!*rrr<!r/?Ls?zz?LLTTTvvvvv)JJJiIL_`` ` ` ` ` .=?*r: `'_:'`` ``--'-```'<*v[ppZ?;:.` ` ` ` /z?z/*ccccccccccrcrrrcc*/cc***!!!r>c*+;++*sssLssLvvvv))JJJJJ{3s'` ` ` ` ` `` ` '!c+:```.. ` ``-''-`` `',=+Tv!:-``` `````` ^>;>>><<+rc/zsLTLTLLLLTs*/c*/z+rr!r**//T)vTLTLTTTTTv)))))J77(lF,` ` ` ` ` ` .^<;:` ..--.` `.::::^!+_.` ` ` ` ` `` ` ` `!vJJJ))vTs?/r!<<>;;;,cLszz//?z**//*sz*LLLTLTTTvTvvvvv))))J7733!`` ` ` `'=^:``....`` .:,::^)a]F,.```` ` `` ` ````-.` `/FF|((|||i{CCfff}}}C{!rvLssz?s???z?r>svLLLLLTTvTvTTv))JJ7777{lL:`` ` ` `'^=:``.-.--` `.-:,zyV6Pv:.`..`` ``` ``.-<1[7` cF|vv)v)vJ77JJJJ)vT)i?+vTssL??*/z?c*LLTLssLLTvvTTvvv)JJJ7(((it|='..``` ` `````` ``..-..```` ` `.^=,``..`..` `'c*>_zluv:.``.-.``..-.-':<oK6V; `rFF)vss?s)J))vLLLT)Ti?+)T??s?szzzzTT?*LLLLTTLTTvv)))))JJJ(((|fI!_'-..```` ``-'-----':_,,^,,,_::'---.``'^=+>^``.-:_'` -c|Lv<:''..`....-.`.---:=>;!txC. `+|i))zzTLscr*z/*csJTFT;)v???sT?czLLLzLTLsLTLLLTvv)v)JJJ7J7(7{llL^:'-.......',^^,,,^;<<>>><>>;;====^,:^?))7L>. -,=>>'``'rc;:'-'---':_'-````.-,c?s)Lr,` .<({v)LLssc>=;!ccrs))i)^TJ??ss?sss?ssTTLLsTLLTvvvvv))JJJ77(7{IJ*!!;,''':_,^^=;==;;=>><><>;>>>>>>>>><+rJF|FJJ<-`'=*tY?.`-_^,:''=>^=+*s(L^--..'!7|F{Ii<` .=7ivJT/>*r<>;;rc!zJJF7;LJ???z???ss??ssLLTLTTTTTvvv)))JJ777(FfJ!+^;>^_^>!!!+<;===;<<<>>>>;;;;>;>;;></7JTvTJ(r-`,?xUbh/`_<;=,-^+<>>*T[d6C>'-.:r|7LJC|< -^)iT)L?r^^^;+<!cr/)7||<s7??ssLsLLLssssLLLTLTLTvvvTv)v)))77((CC/+Tc!+;!c!<<>;=;=>+!r!<><>>;>>>;;;>+r/LssTL)i/'`^!seaL-`:;==,-';+;=/}kpVyT^-';?77(|FL^ '_T{L)sz/<>>=>>=r//v7JF!?(ssssssLLssssLLTTLLLTTLTTTv))))JJ77Ji{L|C)?/c*r!+<>>;=,':,,>+!+<;>><+!+<;,^?J?svT){?:`,+===:``',,,:'-'__:^!|e[v;'.'_!z!r>r+:` _'LCT)Tsc<++^+>>>c/v7)Fc/|Lsss?sssssLLLLTTTTTLLTLTTvv)vv)))J7(}i|i*///r!!++>=,_^=;=,_,,=>;;><>>>;^>z7Lz?TTv{?: :<c!z>-`:=__':-..'''-_,,_'-'^;<)(FC}J>` ,-z{T)v?+:^=^=^^^^+T|vF/*FLLLLTTLLsTLLLTLTLTLTLTTTTLTT))7|i}u51?/|rccr!++r!!<<=,,:.:^<+!!<+;=^'-_;rLTsz?TTvis_`.,+cc=.`:;^::'-`-----''---:^!*+L)7Ff|<` =./ivTT?/c;,,<+<;<csJTiz!|TTLLsLLLLLLLLLTTTTTTTLLTTTT)Fl[l13{L=`:;c+r!+!r!!!rrr++!r!!!+++<<;;<++rccLL?z?LLTiL,``':,_:. `'-'':-.-::::::'-'_=r!<LFCFtCr` >'rF)TLcr*r=_',^=<rsJTFs+|TTLLsLLLLLLLLTLTTTTTv7f1tlttt7zcrr,`->zs/r!+><++<++!!+!!+>><<!!++>=<++><*v?zz?LLTFT^`.:_;<=- -<?>::-'=*//zs?s?c=<*r+L|Cno}c` !_<(7Tvzr!+!!rc*//*?)TFL;7vLssLsLTLTLTvvvTv(CI1t|Ls??z+' ... '!T*!cr++<;>><<+++<+++>;!rc!rr>;<;>>cvL?z?zLLL(T=.`:;*/+'`>ey{;_-=)lulZ2EExIr=c*+T(}|Jc_` !,;JJssLTLvJ)v))JJ)vTTFT=JvsLsLLTLLLL)F3ttt1iJLr_'--.`` `` `-^c*!+rc<<<>;>++!+++<<>;c**//cr+<;><csJLszz/sss(T=..^?TTs^`iG]Ev^'*1ZI[5jaj5[T<+!>cr<_'.`` c=^T7?sT)JJ))JvvvvvTsL|)_v)LssLLT)(}33CJLzzr;,'.````` ` ` .,rr++++;,;<>>><!r+<><++;+<<><;>>;<r+?i{{i7ssss)T;..^<!c>' ^3n7^-.:r}ZnojnZxf+:::,c/s>...` /;_T{|F{{{{{{{CC}f}}ff3J_TJssLLifI}7s/<_'-.````` ``` ` `,rr<<;^>=_^>>><<+<+rrr!+!+><>>>>+!^'_>+r/v(|)?vL;.`_<<+<:`.==_. ``:/{ft5Eya{^` `'c)v!'``` z+';?ss?s??zz//**/crrcr:*J)LL|3is*+,'-....```` `` ` ` .=r<=^;;;,,_^>>><<+>;=;;^,,^^^;;='` ` `._>*(i|T>.`:;!r;' -=;;'```'>L)7i[o1?_` `'+<-``` Tz+,,_''':^=;;=,_^<<+csJ|JT)C{?='.```````````` ` ` ` ._==^;>=,,,__^;>;^,^^,__,___,::. `` .=r/r^-``-''.` `'^:. ``-=!r+^r??=-`` `.`...`` vc!>rr!,+c*/c//r+rr<rv(7vsJ}T>-````` `` ` ` `` ` `.',><=,,,_::_,=;=;==^,^=^_-.. ` ` `-_- .-:,_:-` `..```.:=!!<_>c<'`` `.--.` +!<=;=_;<<!!+r!+rr<;<T)Ls)}s,.```` ` ` ` ` ` ` ` ` ` .:====^,,,::_^=;;;=^,_'.``` ` ` `.:^=^:.` ``` ``',;>^_=^'` ` `.-.-- !=:,;^;><<>><cr!czT))T?s)}z_-.`` ``` `` ` ` `` ` ` ` ` `'`'::_:::'''------.` .` ` ` `'=;^,'` ` ``'',^,'. ``.--. ==,^,,;><;;>;,:;c/zz?zzJ{z:-. ``` ` ` ` ` ` ``` ` ` -*_```.`...` .`` ` ` ` `-::'`` ` ` ``` ``.-. ```` -_=,:'__,^,_:;+c/*//zz(|c'-.` `` `` ` ` ` ` ` ` `!LT_` ` ` ... ` ``.`` `` ````` ````` ` ` ````````` -.'__:-.`'':=;>+c**c/7(+-..`` ` ` ` ` ` ` ` ` :s/r. ` ` ` .` ` ` ````` ` ````` ` ```.`.`.... .`..-....`._;><!rc*/Jv;-.. ` ` ` ` ` `.<sT= ` ` ` `..` ` ` ` `` ` ` ` ` ` ` ` ``` ...-` ```.-`:,<!r*/TT^` ` ` ` ` ` ` ` _?s>. ` ` ` ` ``. ` `..--.....-...-...`..`..---..- --'_-` `---`';+r/??;.` ``` `` ` ` ` `:>-.` ` ` ..`` `.`.`.`.`..-'_::'''-'':''''--............ '_,=,'''---.'''_^^>=-` `` `` ` ` ` ` ` ` ` `---` ` ` ``... -:-.-------.-.'''--..------......`.``````` ^,,,;rcc+><+rr!+<<,:. ` ` ` ` ` `` ` ` ` ` ``-'-` ` ` `..- -,_'.`................``.``.`.``````.``.``` =!ccz?zz?ss?z/crr?!:`` ` ```` ` ` ` ` ` ``--`` ` `.`. `.''.``.````.``.``.````.``.````.```````````` T/z??TLLsLLsss/*c!:`` ` ``` ` ` ` ```` ` ` ` `.--` ` .-.`` `-.```````.`````.``````````````````````` ` ` .<++<>;>;;;==,_:'-```` ` ` ` ```` ` ` ` `-.-` `... ` ---``.``.`````.`````````````````````````` `` `` ```` ` ` ```.``.````` ` ` ` `` `` `` ` `-..`... ` .'-.````````````````````````````````` ` ``` ` ````` ``` ` ` ` ` ``..-.` ` ` ---````````````````````````````````````` ` `` ````` ``````` ` ` ` ` `` `` ` ` ` `-''. ` ` `.-.```````````````````````````````` `` ```` ` ``` ` ` ` ``` ` ` ` ` ` `` ` ` .-'. ` ` .-.``````````````````````````````````````` ` ` ` ``````````` ` ` ` `` ` ` ` ` `':- ` `..`````````````````````````````````` `` ``` `` ` ` ````` ` `` `` ._,' ` ` ...```````````````` ``` ``````` `````````` `` ` ````````` ````` ` ` `.:` ` `.`````````````` ```````````` ```` ``````````` ````` ` ` ` ` `` ` ``-.`` ``` `-.`````````` ``` ``` ` ````` ` ```````````````` ` `` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `--.` `'_^;++<>^'.` `..````` ` ` `` ``` ````` ` ````````` ``` ``````` `` ` ` ` ` ` ` ` ``` ` ` ```` ``````````````` `` ` ` ` `..- .-_,;<r?Lv))JJ)?c!>;,'..``` ````````` ``` `` `````` ``` `````````````` ```` ` ` ` ``` `````````` ````` ``````````.``.````-:,=====>;<+!c/sLLs?/*crrrz)(F(v?;'`````` ` ` ` ` ` ` ```` ` ` `` ` ` ```````````. ``` ` ` ` ` ` ` `` ` ```` ``````` ` ` `````````..'=rsTvvvvvv7(7JTL/*c**ccr!!rc*zs/zsr:` ` ` ` ` ` ` ` ` ` ` ``` ````....`` `````````. ` ` ` ` ` `` ``` ` ` ` ` `````````````.,+?J)TsTLLTL?z/zzz*/?//**?LLLLTL*r*/=. `` ` ` ` ` ` ` ``` ` ` ```-_,,^^^,:. ````````. ` ` ` ` ` ` ` ` ````` ` ` ` `` ` ``````._=+/sLss?zz/////??z//***/zc;:,>r/s?Lr:`` ` ` ` ` ` ` ` ` ` ` ` ` '=<<>>>+><=- ` `````` ` ` ` ` ` ` ```` `` ` ` ` `` ` ` `.':^<c/?LLLs?zz/z?szzLvJ77)?c**z<.;cr^. ` ` ` ` ` ` ` `..---...._;;==,=>;;+,. `` .-'. ` ` ` ` ` ` ` ` ` ``':,^;+!/?vTLLssLTvJJ)T?/rc/*z??sz^`:.` ` ` ` ` ` ```-:^^^^,_:'-';>^=<<<<=-````-:,== ` ` ` ` ``` `..---'':,=!//??s?/r<=,:-.--:_=r*<,^'`` ` ` ` ` ``'^,^^^;=,__:.:^=;<>;,.`.-'::_^; ``. ` ` `-:^><<+!*/cc+++<+rr+:` ` ` ```-`':_:_:-. `.'_,_-`` ` ` ` ` ` ` `-,^,^:,>;_':_,_:,:'` .-'''''_: `.--. `.:=<+!cL({{ftloou3}}{i|FiFv*+.` ` `` `` ` ` ````-::_::::''...`` ` `.-. ` ` ` ` ` ``_===>;>+!=:__'----...``..``.`. `.`` ``.-',/cL7FiIttfIIu[3lu[f}ff}J/cz|3f!^!/*;'.`.`````````'-.....-'::'::'':-.`....`..`````..` ` ` ` ` ` -,=^^^=;=_:^^:'-..-'.....-.`-''''- ```.--'':_^;>vtIC()|3t1{I3f{{CI}1i{{f}|))7{frs|)|7*,.`.```.``.',^:--'-'----.`--:'.``.......--:-.``` ` ` `-;*Lsc;,::`-'--.````......----':::_: `'-':__:_,^==^^Lt{F7v))||(|i{i{C}I}CI3I{FF|JJ/<css?zc/:``..`.`..'^;;,,^,_^==,,,^;,:.`` ````..-___-` ` ` ` ```_r))z*!>,_-'':':-...````.```..-__,,,= _:_:''''':_____^?vJ|{}f31tu[[e[l3ffC|)TvvT/r<>!<^::_>>,..`.``..`:<<czr;==>+!>>+r!;_'--....````.'` ` ` ``````````_!???Ls*;_''-__'--.` ```.---..---:':. '-'-----'''_,^^,^^>!zTvv))JJ77J)vTTzcr!!++<+!+,,__<*++'..``.`.`.'>/LvTc<;<+>;cz?vc^....-.......'--..`.`````````'<!/ss/+,'--..``..````` `----''.`` ``` '--'''''':,^^=;=^==;><+++++++!!!!r!!!!!!++<<;</s//Ts!'.`.`.`.`...,<?JL*c+*/*c//L)L,-...`....--'__'...`````````.:^>;^,:.`.```'_,,^_'`` ```.--....-.` :'-''''':':,<cccr;=;>>>+++<+++!!!!!!r!++<+<<><r/*/c!/?+-`.`.`.`..'_,;<<<=>>==>>*Tr'......---''::_:-........`.``-'-```.---'-:,,^^=^'``.` ```````..` ``` ''':''--'</svL?z/*+><<>>>!r!rrrr!+!!+!!rr!!r+!rcr+<*(}{<...`.``` .,^;:---'::._><c='....----'':_::,''--.-.......`...`..-'''_,,_,_^_..-:;;;=^,_:::'..-.` ------'_/F(T/r/TTL?c+r!rcccr**ccr!rrcrc*/zc>^=;<!/s7)|}!.````.`..-,>!;___^__:=!+<:....-..--''::::__'...........--..-`----:_::,^=_-'::<cc*c+;;^^=^::':' -.-.--:!Js*cz?(F|JL*c*r!rrrrcc***c/z?sLL/>_,><r?7J?i1}/........``.^**L??/!<!rcv?c_.--'-''::::''::__'-...--...-.-'-`.`.'-:,_,:_,:..---_;<+<^,_:'::-'':: ----'''_zFFF7Jl31C(z<!*zzLTvTTLLsz/c+>,:,;;+czs(11|;-.`..-......---,Ti|{7Lsv)vC)_--':___,,,,__,^^^,-.-'--.-----::'..``-':,^,:-```.--:,^^,^__,,^,_::_,_ thdat-vu@github:~$ whoami Vu Thanh Dat
thdat-vu@github: ~$ neofetch thdat-vu@github Now “Engineering (n): change the world and have a dream life.” Also Developer, Builder Loc Ho Chi Minh City, Vietnam Site https://thdatvu.vercel.app/ — Stack Langs Java, Python 3, Go, TypeScript Frontend Next.js Backend Spring, FastAPI, Gin, PostgreSQL — Highlights 25 public repos, 14 followers Active developer with 3 total stars

Projects & Milestones

Warded

Recommended for desktop & mobile view

Real-time Ho Chi Minh City traffic camera monitoring platform featuring low-latency streaming, hierarchical deep filtering, and a multi-camera tracking dock - built for daily commuters, motorcyclists, and urban navigators to proactively evade congestion and localized flooding.

Traffic Map · Chained Deep Filter
Traffic Map · Chained Deep FilterReal-time 800+ HCMC camera network & multi-cam tracking dock
GoPythonOpenVINOYOLOv8Cloudflare WorkersCloudflare R2Cloudflare Zero TrustTraefikDockerTailscaleLeafletSQLite

529studio – 100K Pageviews

Milestone

Domain 529studio.site surpassed 100,000 monthly pageviews in September 2026, marking a significant milestone across its hosted applications and web products.

100,000 Pageviews · 529studio.site
100,000 Pageviews · 529studio.siteDomain 529studio.site surpassed 100k pageviews milestone in Sep 2026 (Cloudflare)
CloudflareWeb AnalyticsMilestone

F1 Race Engineer

An end-to-end agentic AI system that acts as a virtual Formula 1 race engineer, providing instant pit-window, tyre-decay, and telemetry analysis for motorsport fans and sim strategists.

Overview · Multi-Agent Engine
Overview · Multi-Agent EngineRAG & Multi-Agent race decision system
PythonFastAPILangGraphRedisNext.js

Vmarble

Manufacturing execution system built for wood and marble export factories to streamline barcode tracking, production lineage, and warehouse operations.

Architecture · MES Lineage
flow: Factory Floor → Barcode Scan
trace: PostgreSQL Immutable Ledger
stack: Go, Next.js, TypeScript, PostgreSQL, TanStack Query, Playwright
GoNext.jsTypeScriptPostgreSQLTanStack QueryPlaywright

QR Code-based Restaurant Ordering System

Contactless table-ordering and payment platform for dine-in guests, syncing live orders directly with kitchen and service staff at Sweet & Salt Factory Steakhouse.

Capstone Case Study · Sweet & Salt Steakhouse
Capstone Case Study · Sweet & Salt SteakhouseReal-time kitchen order state & multi-role system report
.NET 9TypeScriptNext.jsPostgreSQLWebSockets

Kanjido

Recommended for mobile view

Gamified Japanese learning app for language learners to master Kanji and vocabulary through 30-second rapid-fire challenges and daily streaks.

Gamified Gameplay · 30s Timer & Streak
Gamified Gameplay · 30s Timer & StreakCompounding kanji exploration with streak loop
Next.js 15TypeScriptSupabaseSupabase Edge FunctionsVercel

SportInk

Recommended for mobile view

Sports facility booking and community platform connecting recreational players and venue managers to easily reserve courts and coordinate matches.

Official TVC & App ShowcasePlayfield booking & sports community mobile platform
Java SpringRedisRabbitMQPostgreSQLFlutter

Fullstack Engineer Intern

FPT Software - Solution and Technology Unit (FHO.STU)

Designed and developed Java backend services and REST integration APIs (plus Python for workflow automation) across 2 internal products.

Followed team coding standards, participated in peer code reviews, testing, debugging, sprint planning/estimation, and demos within a 6-member Agile/Scrum team, collaborating daily in English with cross-functional teammates.

JavaREST APIsPythonAgile / ScrumF-Town 3 (SHTP)

Experience

Hover row to view preview
529 Studio2-Engineer Indie Lab · Non-corporate

Founding Product Engineer

NoticeIndependent software engineering lab of 2 engineers (self-directed indie lab, not an incorporated software company).

Backend engineer who enjoys turning clear logic into dependable products. Builds with care, learns by shipping, and focuses on edge cases and practical developer tooling.

Key Engineering Contributions
  • •
    Core Backend & APIs: Developed Go (Gin) and Python (FastAPI) services, real-time SSE streams, and PostgreSQL data models for Warded and VWMS.
  • •
    Applied AI Integration: Implemented OpenVINO YOLOv8n inference pipeline for traffic video feeds and LangGraph workflows with Gemini API for F1 telemetry analysis.
  • •
    Product Interfaces & Spatial Tooling: Built responsive Next.js web clients, Uber H3 spatial indexing overlays, and team labeling tools.
  • •
    Engineering Craft & Reliability: Emphasizes clean repository structure, practical test coverage, strict error handling, and local-first developer experience.
GoPythonTypeScriptFastAPINext.jsPostgreSQLYOLOv8nOpenVINODocker
FPT Software - Solution and Technology Unit (FHO.STU)

Full-stack Engineer Intern · F-Town 3 (SHTP)

Designed and developed Java backend services and REST integration APIs (plus Python for workflow automation) across 2 internal products. Followed team coding standards, participated in peer code reviews, testing, debugging, sprint planning/estimation, and demos within a 6-member Agile/Scrum team, collaborating daily in English with cross-functional teammates.

JavaREST APIsPythonAgile / ScrumF-Town 3 (SHTP)
F-Town 3 Campus · FPT Software
F-Town 3 Campus · FPT SoftwareSaigon Hi-Tech Park, Thu Duc City, HCMC

Education

Hover row to view preview
FPT University

B.Sc. Software Engineering · GPA 3.2/4.0

NIC x Google Scholarship (Grow with Google - Accelerate Vietnam Digital Talent) · 4× Honorable Student

FPT University · HCMC Campus
FPT University · HCMC CampusSaigon Hi-Tech Park, Thu Duc City, HCMC