vamcrizer commited on
Commit
c1aea3f
Β·
verified Β·
1 Parent(s): 1dba7fe

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +696 -620
index.html CHANGED
@@ -1,16 +1,19 @@
1
  <!DOCTYPE html>
2
  <html lang="en" class="scroll-smooth">
 
3
  <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Vu Hoang Anh | AI Engineer Portfolio</title>
7
- <script src="https://cdn.tailwindcss.com"></script>
8
- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
9
- <link rel="preconnect" href="https://fonts.googleapis.com">
10
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
- <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
12
- <script>
13
- tailwind.config = {
 
 
14
  darkMode: 'class',
15
  theme: {
16
  extend: {
@@ -56,210 +59,322 @@
56
  }
57
  }
58
  }
59
- </script>
60
- <style>
61
- .gradient-text {
62
- background: linear-gradient(135deg, #38bdf8 0%, #818cf8 50%, #c084fc 100%);
63
- -webkit-background-clip: text;
64
- -webkit-text-fill-color: transparent;
65
- background-clip: text;
66
- }
67
- .glass-card {
68
- background: rgba(30, 41, 59, 0.7);
69
- backdrop-filter: blur(12px);
70
- border: 1px solid rgba(148, 163, 184, 0.1);
71
- }
72
- .code-block {
73
- background: #0d1117;
74
- border-radius: 0.5rem;
75
- }
76
- .skill-tag {
77
- transition: all 0.3s ease;
78
- }
79
- .skill-tag:hover {
80
- transform: translateY(-2px);
81
- box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.3);
82
- }
83
- .timeline-line {
84
- background: linear-gradient(to bottom, #38bdf8, #818cf8, transparent);
85
- }
86
- .project-card {
87
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
88
- }
89
- .project-card:hover {
90
- transform: translateY(-8px);
91
- }
92
- .metric-card {
93
- background: linear-gradient(145deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.9));
94
- }
95
- /* Custom scrollbar */
96
- ::-webkit-scrollbar {
97
- width: 8px;
98
- }
99
- ::-webkit-scrollbar-track {
100
- background: #0f172a;
101
- }
102
- ::-webkit-scrollbar-thumb {
103
- background: #475569;
104
- border-radius: 4px;
105
- }
106
- ::-webkit-scrollbar-thumb:hover {
107
- background: #64748b;
108
- }
109
- .typing-cursor::after {
110
- content: '|';
111
- animation: blink 1s step-end infinite;
112
- }
113
- @keyframes blink {
114
- 50% { opacity: 0; }
115
- }
116
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  </head>
 
118
  <body class="bg-dark-900 text-slate-300 font-sans antialiased selection:bg-primary-500 selection:text-white">
119
- <!-- Navigation -->
120
- <nav class="fixed top-0 left-0 right-0 z-50 glass-card border-b border-slate-800/50">
121
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
122
- <div class="flex justify-between items-center h-16">
123
- <div class="flex items-center space-x-3">
124
- <div class="w-10 h-10 rounded-lg bg-gradient-to-br from-primary-500 to-purple-600 flex items-center justify-center">
125
- <span class="text-white font-bold text-lg">VA</span>
126
- </div>
127
- <span class="font-mono font-semibold text-slate-100 hidden sm:block">vu.hoang.anh</span>
128
- </div>
129
- <div class="hidden md:flex items-center space-x-8">
130
- <a href="#about" class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">About</a>
131
- <a href="#experience" class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Experience</a>
132
- <a href="#projects" class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Projects</a>
133
- <a href="#skills" class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Skills</a>
134
- <a href="mailto:anhvh189@gmail.com" class="px-4 py-2 rounded-lg bg-primary-600 hover:bg-primary-500 text-white text-sm font-medium transition-colors">
135
- Contact
136
- </a>
137
- </div>
138
- <button id="mobile-menu-btn" class="md:hidden text-slate-400 hover:text-white">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  <i class="fas fa-bars text-xl"></i>
140
  </button>
141
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  </div>
143
- <!-- Mobile Menu -->
144
- <div id="mobile-menu" class="hidden md:hidden glass-card border-t border-slate-800">
145
- <div class="px-4 py-3 space-y-2">
146
- <a href="#about" class="block py-2 text-slate-400 hover:text-primary-400">About</a>
147
- <a href="#experience" class="block py-2 text-slate-400 hover:text-primary-400">Experience</a>
148
- <a href="#projects" class="block py-2 text-slate-400 hover:text-primary-400">Projects</a>
149
- <a href="#skills" class="block py-2 text-slate-400 hover:text-primary-400">Skills</a>
150
- </div>
151
  </div>
152
- </nav>
153
-
154
- <!-- Hero Section -->
155
- <section class="relative min-h-screen flex items-center justify-center pt-16 overflow-hidden">
156
- <!-- Background Effects -->
157
- <div class="absolute inset-0 overflow-hidden">
158
- <div class="absolute -top-40 -right-40 w-80 h-80 bg-primary-500/20 rounded-full blur-3xl animate-pulse-slow"></div>
159
- <div class="absolute -bottom-40 -left-40 w-96 h-96 bg-purple-500/20 rounded-full blur-3xl animate-pulse-slow" style="animation-delay: 1s;"></div>
160
- <div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-blue-500/10 rounded-full blur-3xl"></div>
 
 
 
 
 
 
 
 
 
 
161
  </div>
162
-
163
- <!-- Grid Pattern -->
164
- <div class="absolute inset-0 bg-[linear-gradient(rgba(30,41,59,0.3)_1px,transparent_1px),linear-gradient(90deg,rgba(30,41,59,0.3)_1px,transparent_1px)] bg-[size:4rem_4rem] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_50%,#000_70%,transparent_100%)]"></div>
165
-
166
- <div class="relative z-10 max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
167
- <div class="animate-fade-in">
168
- <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-500/10 border border-primary-500/20 text-primary-400 text-sm font-mono mb-6">
169
- <span class="w-2 h-2 rounded-full bg-primary-400 animate-pulse"></span>
170
- Available for Internship
171
- </div>
172
- <h1 class="text-4xl sm:text-5xl md:text-7xl font-bold text-white mb-6 tracking-tight">
173
- <span class="gradient-text">Vu Hoang Anh</span>
174
- </h1>
175
- <div class="text-xl sm:text-2xl md:text-3xl text-slate-400 mb-4 font-mono">
176
- <span id="typing-text" class="typing-cursor"></span>
177
- </div>
178
- <p class="text-lg text-slate-500 max-w-2xl mx-auto mb-8">
179
- AI Engineer Intern specializing in Machine Learning, NLP, and Large Language Models.
180
- Focused on fine-tuning, evaluation, and production-scale deployment.
181
- </p>
182
-
183
- <!-- Quick Stats -->
184
- <div class="flex flex-wrap justify-center gap-4 mb-10">
185
- <div class="flex items-center gap-2 px-4 py-2 rounded-lg bg-dark-800 border border-slate-700">
186
- <i class="fas fa-map-marker-alt text-primary-400"></i>
187
- <span class="text-sm">Hanoi, Vietnam</span>
188
- </div>
189
- <div class="flex items-center gap-2 px-4 py-2 rounded-lg bg-dark-800 border border-slate-700">
190
- <i class="fas fa-graduation-cap text-primary-400"></i>
191
- <span class="text-sm">GPA 3.86/4.00</span>
192
- </div>
193
- <div class="flex items-center gap-2 px-4 py-2 rounded-lg bg-dark-800 border border-slate-700">
194
- <i class="fas fa-award text-primary-400"></i>
195
- <span class="text-sm">4Γ— Scholarship</span>
196
- </div>
197
- </div>
198
 
199
- <!-- CTA Buttons -->
200
- <div class="flex flex-wrap justify-center gap-4">
201
- <a href="mailto:anhvh189@gmail.com" class="group px-6 py-3 rounded-lg bg-gradient-to-r from-primary-600 to-purple-600 text-white font-medium hover:shadow-lg hover:shadow-primary-500/25 transition-all">
202
- <i class="fas fa-envelope mr-2"></i>
203
- Get In Touch
204
- </a>
205
- <a href="https://github.com/vamcrizer" target="_blank" class="group px-6 py-3 rounded-lg bg-dark-800 border border-slate-700 text-slate-300 hover:border-primary-500/50 hover:text-white transition-all">
206
- <i class="fab fa-github mr-2"></i>
207
- GitHub
208
- </a>
209
- <a href="https://linkedin.com/in/hoang-anh-vu-477a64288" target="_blank" class="group px-6 py-3 rounded-lg bg-dark-800 border border-slate-700 text-slate-300 hover:border-primary-500/50 hover:text-white transition-all">
210
- <i class="fab fa-linkedin mr-2"></i>
211
- LinkedIn
212
- </a>
213
- </div>
214
- </div>
 
215
  </div>
 
 
216
 
217
- <!-- Scroll Indicator -->
218
- <div class="absolute bottom-8 left-1/2 -translate-x-1/2 animate-bounce">
219
- <i class="fas fa-chevron-down text-slate-500"></i>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  </div>
221
- </section>
222
-
223
- <!-- Career Objective -->
224
- <section id="about" class="py-20 relative">
225
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
226
- <div class="grid md:grid-cols-2 gap-12 items-center">
227
- <div class="animate-slide-up">
228
- <h2 class="text-3xl font-bold text-white mb-6">
229
- <span class="text-primary-400">~/</span>career-objective
230
- </h2>
231
- <div class="space-y-4 text-slate-400">
232
- <p>
233
- Research-oriented AI Engineer with hands-on engineering capabilities. My focus areas include:
234
- </p>
235
- <ul class="space-y-3">
236
- <li class="flex items-start gap-3">
237
- <i class="fas fa-brain text-primary-400 mt-1"></i>
238
- <span><strong class="text-slate-200">Machine Learning</strong> β€” Deep understanding of algorithms and model architectures</span>
239
- </li>
240
- <li class="flex items-start gap-3">
241
- <i class="fas fa-language text-purple-400 mt-1"></i>
242
- <span><strong class="text-slate-200">Natural Language Processing</strong> β€” Text processing, embeddings, and transformers</span>
243
- </li>
244
- <li class="flex items-start gap-3">
245
- <i class="fas fa-robot text-pink-400 mt-1"></i>
246
- <span><strong class="text-slate-200">Large Language Models</strong> β€” Fine-tuning, evaluation, and production deployment</span>
247
- </li>
248
- </ul>
249
- <p class="pt-4 border-t border-slate-800">
250
- Seeking an internship to contribute to real AI projects while deepening expertise in LLM architecture and reasoning capabilities.
251
- </p>
252
- </div>
253
- </div>
254
- <div class="relative">
255
- <div class="code-block p-6 font-mono text-sm">
256
- <div class="flex items-center gap-2 mb-4 pb-4 border-b border-slate-800">
257
- <div class="w-3 h-3 rounded-full bg-red-500"></div>
258
- <div class="w-3 h-3 rounded-full bg-yellow-500"></div>
259
- <div class="w-3 h-3 rounded-full bg-green-500"></div>
260
- <span class="ml-2 text-slate-500">objective.py</span>
261
- </div>
262
- <pre class="text-slate-300 overflow-x-auto"><code><span class="text-purple-400">class</span> <span class="text-yellow-400">AIEngineer</span>:
263
  <span class="text-purple-400">def</span> <span class="text-blue-400">__init__</span>(self):
264
  self.focus = [<span class="text-green-400">"ML"</span>, <span class="text-green-400">"NLP"</span>, <span class="text-green-400">"LLMs"</span>]
265
  self.mindset = <span class="text-green-400">"research + engineering"</span>
@@ -271,439 +386,400 @@
271
  <span class="text-green-400">"deep_dive"</span>: <span class="green-400">"LLM architecture"</span>,
272
  <span class="text-green-400">"master"</span>: <span class="text-green-400">"reasoning capabilities"</span>
273
  }</code></pre>
274
- </div>
275
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
276
  </div>
 
 
277
  </div>
278
- </section>
279
-
280
- <!-- Education -->
281
- <section class="py-20 bg-dark-800/50">
282
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
283
- <h2 class="text-3xl font-bold text-white mb-10">
284
- <span class="text-primary-400">~/</span>education
285
- </h2>
286
- <div class="glass-card rounded-2xl p-8">
287
- <div class="flex flex-col md:flex-row md:items-start md:justify-between gap-6">
288
- <div class="flex-1">
289
- <div class="flex items-start gap-4">
290
- <div class="w-14 h-14 rounded-xl bg-gradient-to-br from-primary-500 to-purple-600 flex items-center justify-center flex-shrink-0">
291
- <i class="fas fa-university text-white text-xl"></i>
292
- </div>
293
- <div>
294
- <h3 class="text-xl font-bold text-white">Posts and Telecommunications Institute of Technology (PTIT)</h3>
295
- <p class="text-primary-400 font-medium">Engineer of Information Technology β€” High-Quality Program</p>
296
- <p class="text-slate-500 text-sm mt-1">Aug 2023 – Apr 2028 (Expected)</p>
297
- </div>
298
- </div>
299
- </div>
300
- <div class="text-right">
301
- <div class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-green-500/10 border border-green-500/20">
302
- <i class="fas fa-star text-green-400"></i>
303
- <span class="text-green-400 font-bold text-lg">3.86 / 4.00</span>
304
- </div>
305
- <p class="text-slate-500 text-sm mt-2">CGPA</p>
306
- </div>
307
- </div>
308
-
309
- <!-- Scholarships -->
310
- <div class="mt-8 pt-6 border-t border-slate-700">
311
- <h4 class="text-sm font-medium text-slate-400 uppercase tracking-wider mb-4">Scholarships</h4>
312
- <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
313
- <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
314
- <i class="fas fa-trophy text-yellow-400"></i>
315
- <div>
316
- <p class="text-sm font-medium text-slate-200">Fall 2023–2024</p>
317
- <p class="text-xs text-slate-500">Academic Excellence</p>
318
- </div>
319
- </div>
320
- <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
321
- <i class="fas fa-trophy text-yellow-400"></i>
322
- <div>
323
- <p class="text-sm font-medium text-slate-200">Spring 2023–2024</p>
324
- <p class="text-xs text-slate-500">Academic Excellence</p>
325
- </div>
326
- </div>
327
- <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
328
- <i class="fas fa-trophy text-yellow-400"></i>
329
- <div>
330
- <p class="text-sm font-medium text-slate-200">Spring 2024–2025</p>
331
- <p class="text-xs text-slate-500">Academic Excellence</p>
332
- </div>
333
- </div>
334
- <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
335
- <i class="fas fa-trophy text-yellow-400"></i>
336
- <div>
337
- <p class="text-sm font-medium text-slate-200">Fall 2024–2025</p>
338
- <p class="text-xs text-slate-500">Academic Excellence</p>
339
- </div>
340
- </div>
341
- </div>
342
- </div>
343
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
  </div>
345
- </section>
346
-
347
- <!-- Professional Experience -->
348
- <section id="experience" class="py-20">
349
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
350
- <h2 class="text-3xl font-bold text-white mb-10">
351
- <span class="text-primary-400">~/</span>experience
352
- </h2>
353
- <div class="relative">
354
- <!-- Timeline Line -->
355
- <div class="hidden md:block absolute left-8 top-0 bottom-0 w-0.5 timeline-line"></div>
356
-
357
- <div class="space-y-8">
358
- <div class="relative md:pl-20">
359
- <!-- Timeline Dot -->
360
- <div class="hidden md:flex absolute left-4 w-8 h-8 rounded-full bg-primary-500 items-center justify-center">
361
- <i class="fas fa-briefcase text-white text-sm"></i>
362
- </div>
363
-
364
- <div class="glass-card rounded-xl p-6 project-card">
365
- <div class="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4">
366
- <div>
367
- <h3 class="text-xl font-bold text-white">AI & Backend Developer</h3>
368
- <p class="text-primary-400">PTIT IEC β€” Part-time</p>
369
- </div>
370
- <span class="inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-primary-500/10 text-primary-400">
 
 
371
  Oct 2024 – Present
372
  </span>
373
- </div>
374
- <ul class="space-y-3 text-slate-400">
375
- <li class="flex items-start gap-3">
376
- <i class="fas fa-check-circle text-green-400 mt-1 text-sm"></i>
377
- <span>Participated in academic and startup lab projects involving applied AI and automation</span>
378
- </li>
379
- <li class="flex items-start gap-3">
380
- <i class="fas fa-check-circle text-green-400 mt-1 text-sm"></i>
381
- <span>Optimized and refactored legacy research code, focusing on <strong class="text-slate-200">runtime performance</strong> and <strong class="text-slate-200">maintainability</strong></span>
382
- </li>
383
- <li class="flex items-start gap-3">
384
- <i class="fas fa-check-circle text-green-400 mt-1 text-sm"></i>
385
- <span>Integrated custom LLM modules into backend systems to enhance context-aware response capabilities</span>
386
- </li>
387
- </ul>
388
- <div class="mt-4 pt-4 border-t border-slate-700">
389
- <p class="text-sm text-slate-500">
390
- <i class="fas fa-info-circle mr-2"></i>
391
- Not typo-fixing intern β€” real backend + AI integration work
392
- </p>
393
- </div>
394
- </div>
395
- </div>
396
- </div>
397
  </div>
 
398
  </div>
399
- </section>
400
-
401
- <!-- Projects -->
402
- <section id="projects" class="py-20 bg-dark-800/50">
403
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
404
- <h2 class="text-3xl font-bold text-white mb-4">
405
- <span class="text-primary-400">~/</span>projects
406
- </h2>
407
- <p class="text-slate-500 mb-10">Selected projects demonstrating research + production capabilities</p>
408
-
409
- <div class="grid lg:grid-cols-2 gap-8">
410
- <!-- Project 1: Code Vulnerability -->
411
- <div class="glass-card rounded-2xl p-6 project-card border-l-4 border-primary-500">
412
- <div class="flex items-start justify-between mb-4">
413
- <div>
414
- <h3 class="text-xl font-bold text-white">Code Vulnerability Detection with LLMs</h3>
415
- <p class="text-sm text-slate-500">Apr 2025 – Sep 2025</p>
416
- </div>
417
- <div class="flex gap-2">
418
- <span class="px-2 py-1 rounded text-xs bg-purple-500/20 text-purple-400">Leader</span>
419
- <span class="px-2 py-1 rounded text-xs bg-blue-500/20 text-blue-400">Researcher</span>
420
- </div>
421
- </div>
422
-
423
- <p class="text-slate-400 text-sm mb-4">Research + production pipeline for detecting and explaining security vulnerabilities in source code using LLMs.</p>
424
-
425
- <!-- Metrics -->
426
- <div class="grid grid-cols-2 gap-3 mb-4">
427
- <div class="metric-card p-3 rounded-lg">
428
- <p class="text-2xl font-bold text-green-400">0.80</p>
429
- <p class="text-xs text-slate-500">GraphCodeBERT Accuracy</p>
430
- </div>
431
- <div class="metric-card p-3 rounded-lg">
432
- <p class="text-2xl font-bold text-green-400">0.82</p>
433
- <p class="text-xs text-slate-500">F1-Score</p>
434
- </div>
435
- <div class="metric-card p-3 rounded-lg">
436
- <p class="text-2xl font-bold text-primary-400">78.7%</p>
437
- <p class="text-xs text-slate-500">Qwen2.5 Accuracy</p>
438
- </div>
439
- <div class="metric-card p-3 rounded-lg">
440
- <p class="text-2xl font-bold text-primary-400">64.3%</p>
441
- <p class="text-xs text-slate-500">Explanation Clarity</p>
442
- </div>
443
- </div>
444
-
445
- <!-- Tech Stack -->
446
- <div class="flex flex-wrap gap-2 mb-4">
447
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GPT-4o-mini</span>
448
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GraphCodeBERT</span>
449
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Qwen2.5-Coder-14B</span>
450
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">LoRA SFT</span>
451
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GGUF</span>
452
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Docker</span>
453
- </div>
454
-
455
- <details class="group">
456
- <summary class="cursor-pointer text-sm text-primary-400 hover:text-primary-300 flex items-center gap-2">
457
- <i class="fas fa-chevron-down transition-transform group-open:rotate-180"></i>
458
- Technical Details
459
- </summary>
460
- <ul class="mt-3 space-y-2 text-sm text-slate-400 pl-4">
461
- <li>β€’ Collected 30,000 code samples from DiverseVul (20k vulnerable, 10k non-vulnerable)</li>
462
- <li>β€’ Applied oversampling to balance dataset (20k–20k)</li>
463
- <li>β€’ Generated structured explanations via GPT-4o-mini API for classification and explanation tasks</li>
464
- <li>β€’ Fine-tuned GraphCodeBERT with LoRA SFT on Qwen2.5-Coder-14B</li>
465
- <li>β€’ Quantized to GGUF using llama.cpp, containerized with Docker</li>
466
- </ul>
467
- </details>
468
- </div>
469
 
470
- <!-- Project 2: RAG Pipeline -->
471
- <div class="glass-card rounded-2xl p-6 project-card border-l-4 border-purple-500">
472
- <div class="flex items-start justify-between mb-4">
473
- <div>
474
- <h3 class="text-xl font-bold text-white">Efficient RAG Pipeline</h3>
475
- <p class="text-sm text-slate-500">Jan 2026 – Present</p>
476
- </div>
477
- <span class="px-2 py-1 rounded text-xs bg-purple-500/20 text-purple-400">AI Engineer</span>
478
- </div>
479
-
480
- <p class="text-slate-400 text-sm mb-4">Production-oriented RAG system with custom model selection, hybrid retrieval, and comprehensive evaluation.</p>
481
-
482
- <!-- Metrics -->
483
- <div class="grid grid-cols-2 gap-3 mb-4">
484
- <div class="metric-card p-3 rounded-lg">
485
- <p class="text-2xl font-bold text-green-400">0.98</p>
486
- <p class="text-xs text-slate-500">RAGAS Faithfulness</p>
487
- </div>
488
- <div class="metric-card p-3 rounded-lg">
489
- <p class="text-2xl font-bold text-green-400">0.99</p>
490
- <p class="text-xs text-slate-500">Answer Relevance</p>
491
- </div>
492
- </div>
493
-
494
- <!-- Architecture Diagram -->
495
- <div class="code-block p-4 mb-4 text-xs font-mono">
496
- <p class="text-slate-500 mb-2"># RAG Architecture</p>
497
- <p><span class="text-purple-400">Input</span> β†’ <span class="text-yellow-400">Dynamic Chunking</span> β†’ <span class="text-blue-400">Hybrid Retrieval</span></p>
498
- <p class="pl-4 text-slate-400">β”œβ”€ Milvus (Vector)</p>
499
- <p class="pl-4 text-slate-400">β”œβ”€ Elasticsearch (Keyword)</p>
500
- <p class="pl-4 text-slate-400">└─ RRF Fusion</p>
501
- <p>β†’ <span class="text-green-400">GGUF Trio</span> (Embed/Rerank/Gen) β†’ <span class="text-purple-400">Output</span></p>
502
- </div>
503
-
504
- <!-- Tech Stack -->
505
- <div class="flex flex-wrap gap-2 mb-4">
506
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">llama.cpp</span>
507
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Milvus</span>
508
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Elasticsearch</span>
509
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">RRF</span>
510
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">RAGAS</span>
511
- <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GGUF</span>
512
- </div>
513
-
514
- <details class="group">
515
- <summary class="cursor-pointer text-sm text-purple-400 hover:text-purple-300 flex items-center gap-2">
516
- <i class="fas fa-chevron-down transition-transform group-open:rotate-180"></i>
517
- Technical Details
518
- </summary>
519
- <ul class="mt-3 space-y-2 text-sm text-slate-400 pl-4">
520
- <li>β€’ Hand-picked GGUF model trio: Embedding, Reranking, Generation</li>
521
- <li>β€’ Full llama.cpp inference stack</li>
522
- <li>β€’ Dynamic hierarchical chunking strategy</li>
523
- <li>β€’ Hybrid retrieval: Milvus (vector) + Elasticsearch (keyword)</li>
524
- <li>β€’ Reciprocal Rank Fusion for result combination</li>
525
- <li>β€’ Evaluated with RAGAS on AWS RAG documentation (Gemini 3 Pro)</li>
526
- </ul>
527
- </details>
528
- </div>
529
 
530
- <!-- Project 3: Tea Leaves System -->
531
- <div class="glass-card rounded-2xl p-6 project-card border-l-4 border-green-500 lg:col-span-2">
532
- <div class="flex flex-col md:flex-row md:items-start justify-between gap-4 mb-4">
533
- <div>
534
- <h3 class="text-xl font-bold text-white">Tea Leaves Intelligent System</h3>
535
- <p class="text-sm text-slate-500">Feb 2025 – May 2025</p>
536
- </div>
537
- <div class="flex gap-2">
538
- <span class="px-2 py-1 rounded text-xs bg-green-500/20 text-green-400">Leader</span>
539
- <span class="px-2 py-1 rounded text-xs bg-orange-500/20 text-orange-400">Team: 4</span>
540
- </div>
541
- </div>
542
-
543
- <div class="grid md:grid-cols-2 gap-6">
544
- <div>
545
- <p class="text-slate-400 text-sm mb-4">IoT architecture for real-time tea harvest management with enterprise-grade backend security.</p>
546
-
547
- <ul class="space-y-2 text-sm text-slate-400">
548
- <li class="flex items-start gap-2">
549
- <i class="fas fa-wifi text-green-400 mt-0.5"></i>
550
- <span>Real-time IoT data collection via MQTT</span>
551
- </li>
552
- <li class="flex items-start gap-2">
553
- <i class="fas fa-shield-alt text-green-400 mt-0.5"></i>
554
- <span>Spring Security + JWT authentication</span>
555
- </li>
556
- <li class="flex items-start gap-2">
557
- <i class="fas fa-weight text-green-400 mt-0.5"></i>
558
- <span>Automatic weight recording system</span>
559
- </li>
560
- <li class="flex items-start gap-2">
561
- <i class="fas fa-id-card text-green-400 mt-0.5"></i>
562
- <span>Farmer ID tracking integration</span>
563
- </li>
564
- </ul>
565
- </div>
566
-
567
- <div class="code-block p-4 font-mono text-xs">
568
- <p class="text-slate-500 mb-2"># Tech Stack</p>
569
- <p><span class="text-green-400">backend:</span></p>
570
- <p class="pl-2">- Spring Boot</p>
571
- <p class="pl-2">- Spring Security</p>
572
- <p class="pl-2">- JWT</p>
573
- <p><span class="text-green-400">iot:</span></p>
574
- <p class="pl-2">- MQTT</p>
575
- <p class="pl-2">- Real-time sensors</p>
576
- <p><span class="text-green-400">data:</span></p>
577
- <p class="pl-2">- MySQL</p>
578
- <p class="pl-2">- Docker</p>
579
- </div>
580
- </div>
581
-
582
- <div class="mt-4 pt-4 border-t border-slate-700">
583
- <p class="text-sm text-slate-500">
584
- <i class="fas fa-lightbulb text-yellow-400 mr-2"></i>
585
- Demonstrates system thinking beyond pure AI β€” enterprise backend + IoT integration
586
- </p>
587
- </div>
588
- </div>
589
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  </div>
591
- </section>
592
-
593
- <!-- Skills -->
594
- <section id="skills" class="py-20">
595
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
596
- <h2 class="text-3xl font-bold text-white mb-10">
597
- <span class="text-primary-400">~/</span>skills
598
- </h2>
599
-
600
- <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
601
- <!-- Programming Languages -->
602
- <div class="glass-card rounded-xl p-6">
603
- <div class="flex items-center gap-3 mb-4">
604
- <div class="w-10 h-10 rounded-lg bg-blue-500/20 flex items-center justify-center">
605
- <i class="fas fa-code text-blue-400"></i>
606
- </div>
607
- <h3 class="font-semibold text-white">Programming</h3>
608
- </div>
609
- <div class="flex flex-wrap gap-2">
610
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">Python</span>
611
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">C++</span>
612
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">Java</span>
613
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">SQL</span>
614
- </div>
615
- </div>
616
 
617
- <!-- LLM & AI -->
618
- <div class="glass-card rounded-xl p-6">
619
- <div class="flex items-center gap-3 mb-4">
620
- <div class="w-10 h-10 rounded-lg bg-purple-500/20 flex items-center justify-center">
621
- <i class="fas fa-brain text-purple-400"></i>
622
- </div>
623
- <h3 class="font-semibold text-white">LLM & AI</h3>
624
- </div>
625
- <div class="flex flex-wrap gap-2">
626
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">Transformers</span>
627
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">PyTorch</span>
628
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">Unsloth</span>
629
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">LLaMA.cpp</span>
630
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">Ollama</span>
631
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">LangChain</span>
632
- </div>
633
- </div>
634
 
635
- <!-- Frameworks -->
636
- <div class="glass-card rounded-xl p-6">
637
- <div class="flex items-center gap-3 mb-4">
638
- <div class="w-10 h-10 rounded-lg bg-green-500/20 flex items-center justify-center">
639
- <i class="fas fa-layer-group text-green-400"></i>
640
- </div>
641
- <h3 class="font-semibold text-white">Frameworks</h3>
642
- </div>
643
- <div class="flex flex-wrap gap-2">
644
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-green-500/50 hover:text-green-400">FastAPI</span>
645
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-green-500/50 hover:text-green-400">Spring Boot</span>
646
- </div>
647
- </div>
648
 
649
- <!-- Databases -->
650
- <div class="glass-card rounded-xl p-6">
651
- <div class="flex items-center gap-3 mb-4">
652
- <div class="w-10 h-10 rounded-lg bg-orange-500/20 flex items-center justify-center">
653
- <i class="fas fa-database text-orange-400"></i>
654
- </div>
655
- <h3 class="font-semibold text-white">Databases</h3>
656
- </div>
657
- <div class="flex flex-wrap gap-2">
658
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">MySQL</span>
659
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">PostgreSQL</span>
660
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">Milvus</span>
661
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">Elasticsearch</span>
662
- </div>
663
- </div>
664
 
665
- <!-- Tools -->
666
- <div class="glass-card rounded-xl p-6">
667
- <div class="flex items-center gap-3 mb-4">
668
- <div class="w-10 h-10 rounded-lg bg-cyan-500/20 flex items-center justify-center">
669
- <i class="fas fa-tools text-cyan-400"></i>
670
- </div>
671
- <h3 class="font-semibold text-white">Tools</h3>
672
- </div>
673
- <div class="flex flex-wrap gap-2">
674
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-cyan-500/50 hover:text-cyan-400">Git</span>
675
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-cyan-500/50 hover:text-cyan-400">Docker</span>
676
- <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-cyan-500/50 hover:text-cyan-400">Ubuntu</span>
677
- </div>
678
- </div>
679
 
680
- <!-- Languages -->
681
- <div class="glass-card rounded-xl p-6">
682
- <div class="flex items-center gap-3 mb-4">
683
- <div class="w-10 h-10 rounded-lg bg-pink-500/20 flex items-center justify-center">
684
- <i class="fas fa-globe text-pink-400"></i>
685
- </div>
686
- <h3 class="font-semibold text-white">Languages</h3>
687
- </div>
688
- <div class="space-y-2">
689
- <div class="flex justify-between items-center">
690
- <span class="text-slate-400">Vietnamese</span>
691
- <span class="text-sm text-pink-400">Native</span>
692
- </div>
693
- <div class="flex justify-between items-center">
694
- <span class="text-slate-400">English</span>
695
- <span class="text-sm text-pink-400">Conversational (IELTS 7.0)</span>
696
- </div>
697
- </div>
698
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
699
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
700
  </div>
701
- </section>
702
-
703
- <!-- Certifications -->
704
- <section class="py-20 bg-dark-800/50">
705
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
706
- <h2 class="text-3xl font-bold text-white mb-10">
707
- <span class="text-primary-400">~/</span>certifications
708
- </h2>
709
- <p class="text-slate-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <!DOCTYPE html>
2
  <html lang="en" class="scroll-smooth">
3
+
4
  <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Vu Hoang Anh | AI Engineer Portfolio</title>
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
10
+ <link rel="preconnect" href="https://fonts.googleapis.com">
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12
+ <link
13
+ href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap"
14
+ rel="stylesheet">
15
+ <script>
16
+ tailwind.config = {
17
  darkMode: 'class',
18
  theme: {
19
  extend: {
 
59
  }
60
  }
61
  }
62
+ </script>
63
+ <style>
64
+ .gradient-text {
65
+ background: linear-gradient(135deg, #38bdf8 0%, #818cf8 50%, #c084fc 100%);
66
+ -webkit-background-clip: text;
67
+ -webkit-text-fill-color: transparent;
68
+ background-clip: text;
69
+ }
70
+
71
+ .glass-card {
72
+ background: rgba(30, 41, 59, 0.7);
73
+ backdrop-filter: blur(12px);
74
+ border: 1px solid rgba(148, 163, 184, 0.1);
75
+ }
76
+
77
+ .code-block {
78
+ background: #0d1117;
79
+ border-radius: 0.5rem;
80
+ }
81
+
82
+ .skill-tag {
83
+ transition: all 0.3s ease;
84
+ }
85
+
86
+ .skill-tag:hover {
87
+ transform: translateY(-2px);
88
+ box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.3);
89
+ }
90
+
91
+ .timeline-line {
92
+ background: linear-gradient(to bottom, #38bdf8, #818cf8, transparent);
93
+ }
94
+
95
+ .project-card {
96
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
97
+ }
98
+
99
+ .project-card:hover {
100
+ transform: translateY(-8px);
101
+ }
102
+
103
+ .metric-card {
104
+ background: linear-gradient(145deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.9));
105
+ }
106
+
107
+ .cert-card {
108
+ transition: all 0.3s ease;
109
+ position: relative;
110
+ overflow: hidden;
111
+ }
112
+
113
+ .cert-card::before {
114
+ content: '';
115
+ position: absolute;
116
+ top: 0;
117
+ left: -100%;
118
+ width: 100%;
119
+ height: 100%;
120
+ background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.1), transparent);
121
+ transition: left 0.5s ease;
122
+ }
123
+
124
+ .cert-card:hover::before {
125
+ left: 100%;
126
+ }
127
+
128
+ .cert-card:hover {
129
+ transform: translateY(-4px);
130
+ border-color: rgba(56, 189, 248, 0.3);
131
+ }
132
+
133
+ .cert-badge {
134
+ background: linear-gradient(135deg, #38bdf8 0%, #818cf8 100%);
135
+ -webkit-background-clip: text;
136
+ -webkit-text-fill-color: transparent;
137
+ background-clip: text;
138
+ }
139
+
140
+ /* Custom scrollbar */
141
+ ::-webkit-scrollbar {
142
+ width: 8px;
143
+ }
144
+
145
+ ::-webkit-scrollbar-track {
146
+ background: #0f172a;
147
+ }
148
+
149
+ ::-webkit-scrollbar-thumb {
150
+ background: #475569;
151
+ border-radius: 4px;
152
+ }
153
+
154
+ ::-webkit-scrollbar-thumb:hover {
155
+ background: #64748b;
156
+ }
157
+
158
+ .typing-cursor::after {
159
+ content: '|';
160
+ animation: blink 1s step-end infinite;
161
+ }
162
+
163
+ @keyframes blink {
164
+ 50% {
165
+ opacity: 0;
166
+ }
167
+ }
168
+
169
+ .cert-grid {
170
+ display: grid;
171
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
172
+ gap: 1.5rem;
173
+ }
174
+
175
+ @media (max-width: 640px) {
176
+ .cert-grid {
177
+ grid-template-columns: 1fr;
178
+ }
179
+ }
180
+
181
+ .verify-btn {
182
+ position: relative;
183
+ overflow: hidden;
184
+ }
185
+
186
+ .verify-btn::after {
187
+ content: '';
188
+ position: absolute;
189
+ top: 50%;
190
+ left: 50%;
191
+ width: 0;
192
+ height: 0;
193
+ background: rgba(255, 255, 255, 0.1);
194
+ border-radius: 50%;
195
+ transform: translate(-50%, -50%);
196
+ transition: width 0.3s ease, height 0.3s ease;
197
+ }
198
+
199
+ .verify-btn:hover::after {
200
+ width: 100%;
201
+ height: 100%;
202
+ }
203
+ </style>
204
  </head>
205
+
206
  <body class="bg-dark-900 text-slate-300 font-sans antialiased selection:bg-primary-500 selection:text-white">
207
+ <!-- Built with anycoder -->
208
+ <div class="fixed top-20 right-4 z-40">
209
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="group flex items-center gap-2 px-3 py-2 rounded-lg bg-dark-800/90 border border-slate-700/50 hover:border-primary-500/50 transition-all text-xs font-medium text-slate-400 hover:text-primary-400 backdrop-blur-sm">
210
+ <i class="fas fa-code text-primary-400"></i>
211
+ <span>Built with anycoder</span>
212
+ </a>
213
+ </div>
214
+
215
+ <!-- Navigation -->
216
+ <nav class="fixed top-0 left-0 right-0 z-50 glass-card border-b border-slate-800/50">
217
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
218
+ <div class="flex justify-between items-center h-16">
219
+ <div class="flex items-center space-x-3">
220
+ <div
221
+ class="w-10 h-10 rounded-lg bg-gradient-to-br from-primary-500 to-purple-600 flex items-center justify-center">
222
+ <span class="text-white font-bold text-lg">VA</span>
223
+ </div>
224
+ <span class="font-mono font-semibold text-slate-100 hidden sm:block">vu.hoang.anh</span>
225
+ </div>
226
+ <div class="hidden md:flex items-center space-x-8">
227
+ <a href="#about" class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">About</a>
228
+ <a href="#experience"
229
+ class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Experience</a>
230
+ <a href="#projects"
231
+ class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Projects</a>
232
+ <a href="#skills"
233
+ class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Skills</a>
234
+ <a href="#certifications"
235
+ class="text-sm font-medium text-slate-400 hover:text-primary-400 transition-colors">Certifications</a>
236
+ <a href="mailto:anhvh189@gmail.com"
237
+ class="px-4 py-2 rounded-lg bg-primary-600 hover:bg-primary-500 text-white text-sm font-medium transition-colors">
238
+ Contact
239
+ </a>
240
+ </div>
241
+ <button id="mobile-menu-btn" class="md:hidden text-slate-400 hover:text-white">
242
  <i class="fas fa-bars text-xl"></i>
243
  </button>
244
+ </div>
245
+ </div>
246
+ <!-- Mobile Menu -->
247
+ <div id="mobile-menu" class="hidden md:hidden glass-card border-t border-slate-800">
248
+ <div class="px-4 py-3 space-y-2">
249
+ <a href="#about" class="block py-2 text-slate-400 hover:text-primary-400">About</a>
250
+ <a href="#experience" class="block py-2 text-slate-400 hover:text-primary-400">Experience</a>
251
+ <a href="#projects" class="block py-2 text-slate-400 hover:text-primary-400">Projects</a>
252
+ <a href="#skills" class="block py-2 text-slate-400 hover:text-primary-400">Skills</a>
253
+ <a href="#certifications" class="block py-2 text-slate-400 hover:text-primary-400">Certifications</a>
254
+ </div>
255
+ </div>
256
+ </nav>
257
+
258
+ <!-- Hero Section -->
259
+ <section class="relative min-h-screen flex items-center justify-center pt-16 overflow-hidden">
260
+ <!-- Background Effects -->
261
+ <div class="absolute inset-0 overflow-hidden">
262
+ <div class="absolute -top-40 -right-40 w-80 h-80 bg-primary-500/20 rounded-full blur-3xl animate-pulse-slow">
263
+ </div>
264
+ <div class="absolute -bottom-40 -left-40 w-96 h-96 bg-purple-500/20 rounded-full blur-3xl animate-pulse-slow"
265
+ style="animation-delay: 1s;"></div>
266
+ <div
267
+ class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-blue-500/10 rounded-full blur-3xl">
268
+ </div>
269
+ </div>
270
+
271
+ <!-- Grid Pattern -->
272
+ <div
273
+ class="absolute inset-0 bg-[linear-gradient(rgba(30,41,59,0.3)_1px,transparent_1px),linear-gradient(90deg,rgba(30,41,59,0.3)_1px,transparent_1px)] bg-[size:4rem_4rem] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_50%,#000_70%,transparent_100%)]">
274
+ </div>
275
+
276
+ <div class="relative z-10 max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
277
+ <div class="animate-fade-in">
278
+ <div
279
+ class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-500/10 border border-primary-500/20 text-primary-400 text-sm font-mono mb-6">
280
+ <span class="w-2 h-2 rounded-full bg-primary-400 animate-pulse"></span>
281
+ Available for Internship
282
  </div>
283
+ <h1 class="text-4xl sm:text-5xl md:text-7xl font-bold text-white mb-6 tracking-tight">
284
+ <span class="gradient-text">Vu Hoang Anh</span>
285
+ </h1>
286
+ <div class="text-xl sm:text-2xl md:text-3xl text-slate-400 mb-4 font-mono">
287
+ <span id="typing-text" class="typing-cursor"></span>
 
 
 
288
  </div>
289
+ <p class="text-lg text-slate-500 max-w-2xl mx-auto mb-8">
290
+ AI Engineer Intern specializing in Machine Learning, NLP, and Large Language Models.
291
+ Focused on fine-tuning, evaluation, and production-scale deployment.
292
+ </p>
293
+
294
+ <!-- Quick Stats -->
295
+ <div class="flex flex-wrap justify-center gap-4 mb-10">
296
+ <div class="flex items-center gap-2 px-4 py-2 rounded-lg bg-dark-800 border border-slate-700">
297
+ <i class="fas fa-map-marker-alt text-primary-400"></i>
298
+ <span class="text-sm">Hanoi, Vietnam</span>
299
+ </div>
300
+ <div class="flex items-center gap-2 px-4 py-2 rounded-lg bg-dark-800 border border-slate-700">
301
+ <i class="fas fa-graduation-cap text-primary-400"></i>
302
+ <span class="text-sm">GPA 3.86/4.00</span>
303
+ </div>
304
+ <div class="flex items-center gap-2 px-4 py-2 rounded-lg bg-dark-800 border border-slate-700">
305
+ <i class="fas fa-award text-primary-400"></i>
306
+ <span class="text-sm">4Γ— Scholarship</span>
307
+ </div>
308
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
 
310
+ <!-- CTA Buttons -->
311
+ <div class="flex flex-wrap justify-center gap-4">
312
+ <a href="mailto:anhvh189@gmail.com"
313
+ class="group px-6 py-3 rounded-lg bg-gradient-to-r from-primary-600 to-purple-600 text-white font-medium hover:shadow-lg hover:shadow-primary-500/25 transition-all">
314
+ <i class="fas fa-envelope mr-2"></i>
315
+ Get In Touch
316
+ </a>
317
+ <a href="https://github.com/vamcrizer" target="_blank"
318
+ class="group px-6 py-3 rounded-lg bg-dark-800 border border-slate-700 text-slate-300 hover:border-primary-500/50 hover:text-white transition-all">
319
+ <i class="fab fa-github mr-2"></i>
320
+ GitHub
321
+ </a>
322
+ <a href="https://linkedin.com/in/hoang-anh-vu-477a64288" target="_blank"
323
+ class="group px-6 py-3 rounded-lg bg-dark-800 border border-slate-700 text-slate-300 hover:border-primary-500/50 hover:text-white transition-all">
324
+ <i class="fab fa-linkedin mr-2"></i>
325
+ LinkedIn
326
+ </a>
327
  </div>
328
+ </div>
329
+ </div>
330
 
331
+ <!-- Scroll Indicator -->
332
+ <div class="absolute bottom-8 left-1/2 -translate-x-1/2 animate-bounce">
333
+ <i class="fas fa-chevron-down text-slate-500"></i>
334
+ </div>
335
+ </section>
336
+
337
+ <!-- Career Objective -->
338
+ <section id="about" class="py-20 relative">
339
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
340
+ <div class="grid md:grid-cols-2 gap-12 items-center">
341
+ <div class="animate-slide-up">
342
+ <h2 class="text-3xl font-bold text-white mb-6">
343
+ <span class="text-primary-400">~/</span>career-objective
344
+ </h2>
345
+ <div class="space-y-4 text-slate-400">
346
+ <p>
347
+ Research-oriented AI Engineer with hands-on engineering capabilities. My focus areas include:
348
+ </p>
349
+ <ul class="space-y-3">
350
+ <li class="flex items-start gap-3">
351
+ <i class="fas fa-brain text-primary-400 mt-1"></i>
352
+ <span><strong class="text-slate-200">Machine Learning</strong> β€” Deep understanding of algorithms and model architectures</span>
353
+ </li>
354
+ <li class="flex items-start gap-3">
355
+ <i class="fas fa-language text-purple-400 mt-1"></i>
356
+ <span><strong class="text-slate-200">Natural Language Processing</strong> β€” Text processing, embeddings, and transformers</span>
357
+ </li>
358
+ <li class="flex items-start gap-3">
359
+ <i class="fas fa-robot text-pink-400 mt-1"></i>
360
+ <span><strong class="text-slate-200">Large Language Models</strong> β€” Fine-tuning, evaluation, and production deployment</span>
361
+ </li>
362
+ </ul>
363
+ <p class="pt-4 border-t border-slate-800">
364
+ Seeking an internship to contribute to real AI projects while deepening expertise in LLM architecture and
365
+ reasoning capabilities.
366
+ </p>
367
+ </div>
368
  </div>
369
+ <div class="relative">
370
+ <div class="code-block p-6 font-mono text-sm">
371
+ <div class="flex items-center gap-2 mb-4 pb-4 border-b border-slate-800">
372
+ <div class="w-3 h-3 rounded-full bg-red-500"></div>
373
+ <div class="w-3 h-3 rounded-full bg-yellow-500"></div>
374
+ <div class="w-3 h-3 rounded-full bg-green-500"></div>
375
+ <span class="ml-2 text-slate-500">objective.py</span>
376
+ </div>
377
+ <pre class="text-slate-300 overflow-x-auto"><code><span class="text-purple-400">class</span> <span class="text-yellow-400">AIEngineer</span>:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  <span class="text-purple-400">def</span> <span class="text-blue-400">__init__</span>(self):
379
  self.focus = [<span class="text-green-400">"ML"</span>, <span class="text-green-400">"NLP"</span>, <span class="text-green-400">"LLMs"</span>]
380
  self.mindset = <span class="text-green-400">"research + engineering"</span>
 
386
  <span class="text-green-400">"deep_dive"</span>: <span class="green-400">"LLM architecture"</span>,
387
  <span class="text-green-400">"master"</span>: <span class="text-green-400">"reasoning capabilities"</span>
388
  }</code></pre>
389
+ </div>
390
+ </div>
391
+ </div>
392
+ </div>
393
+ </section>
394
+
395
+ <!-- Education -->
396
+ <section class="py-20 bg-dark-800/50">
397
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
398
+ <h2 class="text-3xl font-bold text-white mb-10">
399
+ <span class="text-primary-400">~/</span>education
400
+ </h2>
401
+ <div class="glass-card rounded-2xl p-8">
402
+ <div class="flex flex-col md:flex-row md:items-start md:justify-between gap-6">
403
+ <div class="flex-1">
404
+ <div class="flex items-start gap-4">
405
+ <div
406
+ class="w-14 h-14 rounded-xl bg-gradient-to-br from-primary-500 to-purple-600 flex items-center justify-center flex-shrink-0">
407
+ <i class="fas fa-university text-white text-xl"></i>
408
+ </div>
409
+ <div>
410
+ <h3 class="text-xl font-bold text-white">Posts and Telecommunications Institute of Technology (PTIT)
411
+ </h3>
412
+ <p class="text-primary-400 font-medium">Engineer of Information Technology β€” High-Quality Program</p>
413
+ <p class="text-slate-500 text-sm mt-1">Aug 2023 – Apr 2028 (Expected)</p>
414
+ </div>
415
+ </div>
416
+ </div>
417
+ <div class="text-right">
418
+ <div class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-green-500/10 border border-green-500/20">
419
+ <i class="fas fa-star text-green-400"></i>
420
+ <span class="text-green-400 font-bold text-lg">3.86 / 4.00</span>
421
  </div>
422
+ <p class="text-slate-500 text-sm mt-2">CGPA</p>
423
+ </div>
424
  </div>
425
+
426
+ <!-- Scholarships -->
427
+ <div class="mt-8 pt-6 border-t border-slate-700">
428
+ <h4 class="text-sm font-medium text-slate-400 uppercase tracking-wider mb-4">Scholarships</h4>
429
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
430
+ <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
431
+ <i class="fas fa-trophy text-yellow-400"></i>
432
+ <div>
433
+ <p class="text-sm font-medium text-slate-200">Fall 2023–2024</p>
434
+ <p class="text-xs text-slate-500">Academic Excellence</p>
435
+ </div>
436
+ </div>
437
+ <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
438
+ <i class="fas fa-trophy text-yellow-400"></i>
439
+ <div>
440
+ <p class="text-sm font-medium text-slate-200">Spring 2023–2024</p>
441
+ <p class="text-xs text-slate-500">Academic Excellence</p>
442
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
  </div>
444
+ <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
445
+ <i class="fas fa-trophy text-yellow-400"></i>
446
+ <div>
447
+ <p class="text-sm font-medium text-slate-200">Spring 2024–2025</p>
448
+ <p class="text-xs text-slate-500">Academic Excellence</p>
449
+ </div>
450
+ </div>
451
+ <div class="flex items-center gap-3 p-3 rounded-lg bg-dark-900/50">
452
+ <i class="fas fa-trophy text-yellow-400"></i>
453
+ <div>
454
+ <p class="text-sm font-medium text-slate-200">Fall 2024–2025</p>
455
+ <p class="text-xs text-slate-500">Academic Excellence</p>
456
+ </div>
457
+ </div>
458
+ </div>
459
  </div>
460
+ </div>
461
+ </div>
462
+ </section>
463
+
464
+ <!-- Professional Experience -->
465
+ <section id="experience" class="py-20">
466
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
467
+ <h2 class="text-3xl font-bold text-white mb-10">
468
+ <span class="text-primary-400">~/</span>experience
469
+ </h2>
470
+ <div class="relative">
471
+ <!-- Timeline Line -->
472
+ <div class="hidden md:block absolute left-8 top-0 bottom-0 w-0.5 timeline-line"></div>
473
+
474
+ <div class="space-y-8">
475
+ <div class="relative md:pl-20">
476
+ <!-- Timeline Dot -->
477
+ <div class="hidden md:flex absolute left-4 w-8 h-8 rounded-full bg-primary-500 items-center justify-center">
478
+ <i class="fas fa-briefcase text-white text-sm"></i>
479
+ </div>
480
+
481
+ <div class="glass-card rounded-xl p-6 project-card">
482
+ <div class="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4">
483
+ <div>
484
+ <h3 class="text-xl font-bold text-white">AI & Backend Developer</h3>
485
+ <p class="text-primary-400">PTIT IEC β€” Part-time</p>
486
+ </div>
487
+ <span class="inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-primary-500/10 text-primary-400">
488
  Oct 2024 – Present
489
  </span>
490
+ </div>
491
+ <ul class="space-y-3 text-slate-400">
492
+ <li class="flex items-start gap-3">
493
+ <i class="fas fa-check-circle text-green-400 mt-1 text-sm"></i>
494
+ <span>Participated in academic and startup lab projects involving applied AI and automation</span>
495
+ </li>
496
+ <li class="flex items-start gap-3">
497
+ <i class="fas fa-check-circle text-green-400 mt-1 text-sm"></i>
498
+ <span>Optimized and refactored legacy research code, focusing on <strong class="text-slate-200">runtime performance</strong> and <strong class="text-slate-200">maintainability</strong></span>
499
+ </li>
500
+ <li class="flex items-start gap-3">
501
+ <i class="fas fa-check-circle text-green-400 mt-1 text-sm"></i>
502
+ <span>Integrated custom LLM modules into backend systems to enhance context-aware response capabilities</span>
503
+ </li>
504
+ </ul>
505
+ <div class="mt-4 pt-4 border-t border-slate-700">
506
+ <p class="text-sm text-slate-500">
507
+ <i class="fas fa-info-circle mr-2"></i>
508
+ Not typo-fixing intern β€” real backend + AI integration work
509
+ </p>
510
+ </div>
 
 
 
511
  </div>
512
+ </div>
513
  </div>
514
+ </div>
515
+ </div>
516
+ </section>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
517
 
518
+ <!-- Projects -->
519
+ <section id="projects" class="py-20 bg-dark-800/50">
520
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
521
+ <h2 class="text-3xl font-bold text-white mb-4">
522
+ <span class="text-primary-400">~/</span>projects
523
+ </h2>
524
+ <p class="text-slate-500 mb-10">Selected projects demonstrating research + production capabilities</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
 
526
+ <div class="grid lg:grid-cols-2 gap-8">
527
+ <!-- Project 1: Code Vulnerability -->
528
+ <div class="glass-card rounded-2xl p-6 project-card border-l-4 border-primary-500">
529
+ <div class="flex items-start justify-between mb-4">
530
+ <div>
531
+ <h3 class="text-xl font-bold text-white">Code Vulnerability Detection with LLMs</h3>
532
+ <p class="text-sm text-slate-500">Apr 2025 – Sep 2025</p>
533
+ </div>
534
+ <div class="flex gap-2">
535
+ <span class="px-2 py-1 rounded text-xs bg-purple-500/20 text-purple-400">Leader</span>
536
+ <span class="px-2 py-1 rounded text-xs bg-blue-500/20 text-blue-400">Researcher</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
537
  </div>
538
+ </div>
539
+
540
+ <p class="text-slate-400 text-sm mb-4">Research + production pipeline for detecting and explaining security
541
+ vulnerabilities in source code using LLMs.</p>
542
+
543
+ <!-- Metrics -->
544
+ <div class="grid grid-cols-2 gap-3 mb-4">
545
+ <div class="metric-card p-3 rounded-lg">
546
+ <p class="text-2xl font-bold text-green-400">0.80</p>
547
+ <p class="text-xs text-slate-500">GraphCodeBERT Accuracy</p>
548
+ </div>
549
+ <div class="metric-card p-3 rounded-lg">
550
+ <p class="text-2xl font-bold text-green-400">0.82</p>
551
+ <p class="text-xs text-slate-500">F1-Score</p>
552
+ </div>
553
+ <div class="metric-card p-3 rounded-lg">
554
+ <p class="text-2xl font-bold text-primary-400">78.7%</p>
555
+ <p class="text-xs text-slate-500">Qwen2.5 Accuracy</p>
556
+ </div>
557
+ <div class="metric-card p-3 rounded-lg">
558
+ <p class="text-2xl font-bold text-primary-400">64.3%</p>
559
+ <p class="text-xs text-slate-500">Explanation Clarity</p>
560
+ </div>
561
+ </div>
562
+
563
+ <!-- Tech Stack -->
564
+ <div class="flex flex-wrap gap-2 mb-4">
565
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GPT-4o-mini</span>
566
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GraphCodeBERT</span>
567
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Qwen2.5-Coder-14B</span>
568
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">LoRA SFT</span>
569
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GGUF</span>
570
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Docker</span>
571
+ </div>
572
+
573
+ <details class="group">
574
+ <summary class="cursor-pointer text-sm text-primary-400 hover:text-primary-300 flex items-center gap-2">
575
+ <i class="fas fa-chevron-down transition-transform group-open:rotate-180"></i>
576
+ Technical Details
577
+ </summary>
578
+ <ul class="mt-3 space-y-2 text-sm text-slate-400 pl-4">
579
+ <li>β€’ Collected 30,000 code samples from DiverseVul (20k vulnerable, 10k non-vulnerable)</li>
580
+ <li>β€’ Applied oversampling to balance dataset (20k–20k)</li>
581
+ <li>β€’ Generated structured explanations via GPT-4o-mini API for classification and explanation tasks</li>
582
+ <li>β€’ Fine-tuned GraphCodeBERT with LoRA SFT on Qwen2.5-Coder-14B</li>
583
+ <li>β€’ Quantized to GGUF using llama.cpp, containerized with Docker</li>
584
+ </ul>
585
+ </details>
586
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
587
 
588
+ <!-- Project 2: RAG Pipeline -->
589
+ <div class="glass-card rounded-2xl p-6 project-card border-l-4 border-purple-500">
590
+ <div class="flex items-start justify-between mb-4">
591
+ <div>
592
+ <h3 class="text-xl font-bold text-white">Efficient RAG Pipeline</h3>
593
+ <p class="text-sm text-slate-500">Jan 2026 – Present</p>
594
+ </div>
595
+ <span class="px-2 py-1 rounded text-xs bg-purple-500/20 text-purple-400">AI Engineer</span>
596
+ </div>
 
 
 
 
 
 
 
 
597
 
598
+ <p class="text-slate-400 text-sm mb-4">Production-oriented RAG system with custom model selection, hybrid
599
+ retrieval, and comprehensive evaluation.</p>
 
 
 
 
 
 
 
 
 
 
 
600
 
601
+ <!-- Metrics -->
602
+ <div class="grid grid-cols-2 gap-3 mb-4">
603
+ <div class="metric-card p-3 rounded-lg">
604
+ <p class="text-2xl font-bold text-green-400">0.98</p>
605
+ <p class="text-xs text-slate-500">RAGAS Faithfulness</p>
606
+ </div>
607
+ <div class="metric-card p-3 rounded-lg">
608
+ <p class="text-2xl font-bold text-green-400">0.99</p>
609
+ <p class="text-xs text-slate-500">Answer Relevance</p>
610
+ </div>
611
+ </div>
 
 
 
 
612
 
613
+ <!-- Architecture Diagram -->
614
+ <div class="code-block p-4 mb-4 text-xs font-mono">
615
+ <p class="text-slate-500 mb-2"># RAG Architecture</p>
616
+ <p><span class="text-purple-400">Input</span> β†’ <span class="text-yellow-400">Dynamic Chunking</span> β†’
617
+ <span class="text-blue-400">Hybrid Retrieval</span>
618
+ </p>
619
+ <p class="pl-4 text-slate-400">β”œβ”€ Milvus (Vector)</p>
620
+ <p class="pl-4 text-slate-400">β”œβ”€ Elasticsearch (Keyword)</p>
621
+ <p class="pl-4 text-slate-400">└─ RRF Fusion</p>
622
+ <p>β†’ <span class="text-green-400">GGUF Trio</span> (Embed/Rerank/Gen) β†’
623
+ <span class="text-purple-400">Output</span>
624
+ </p>
625
+ </div>
 
626
 
627
+ <!-- Tech Stack -->
628
+ <div class="flex flex-wrap gap-2 mb-4">
629
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">llama.cpp</span>
630
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Milvus</span>
631
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">Elasticsearch</span>
632
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">RRF</span>
633
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">RAGAS</span>
634
+ <span class="px-2 py-1 rounded-md bg-dark-900 text-xs text-slate-400">GGUF</span>
635
+ </div>
636
+
637
+ <details class="group">
638
+ <summary class="cursor-pointer text-sm text-purple-400 hover:text-purple-300 flex items-center gap-2">
639
+ <i class="fas fa-chevron-down transition-transform group-open:rotate-180"></i>
640
+ Technical Details
641
+ </summary>
642
+ <ul class="mt-3 space-y-2 text-sm text-slate-400 pl-4">
643
+ <li>β€’ Hand-picked GGUF model trio: Embedding, Reranking, Generation</li>
644
+ <li>β€’ Full llama.cpp inference stack</li>
645
+ <li>β€’ Dynamic hierarchical chunking strategy</li>
646
+ <li>β€’ Hybrid retrieval: Milvus (vector) + Elasticsearch (keyword)</li>
647
+ <li>β€’ Reciprocal Rank Fusion for result combination</li>
648
+ <li>β€’ Evaluated with RAGAS on AWS RAG documentation (Gemini 3 Pro)</li>
649
+ </ul>
650
+ </details>
651
+ </div>
652
+
653
+ <!-- Project 3: Tea Leaves System -->
654
+ <div class="glass-card rounded-2xl p-6 project-card border-l-4 border-green-500 lg:col-span-2">
655
+ <div class="flex flex-col md:flex-row md:items-start justify-between gap-4 mb-4">
656
+ <div>
657
+ <h3 class="text-xl font-bold text-white">Tea Leaves Intelligent System</h3>
658
+ <p class="text-sm text-slate-500">Feb 2025 – May 2025</p>
659
+ </div>
660
+ <div class="flex gap-2">
661
+ <span class="px-2 py-1 rounded text-xs bg-green-500/20 text-green-400">Leader</span>
662
+ <span class="px-2 py-1 rounded text-xs bg-orange-500/20 text-orange-400">Team: 4</span>
663
+ </div>
664
+ </div>
665
+
666
+ <div class="grid md:grid-cols-2 gap-6">
667
+ <div>
668
+ <p class="text-slate-400 text-sm mb-4">IoT architecture for real-time tea harvest management with
669
+ enterprise-grade backend security.</p>
670
+
671
+ <ul class="space-y-2 text-sm text-slate-400">
672
+ <li class="flex items-start gap-2">
673
+ <i class="fas fa-wifi text-green-400 mt-0.5"></i>
674
+ <span>Real-time IoT data collection via MQTT</span>
675
+ </li>
676
+ <li class="flex items-start gap-2">
677
+ <i class="fas fa-shield-alt text-green-400 mt-0.5"></i>
678
+ <span>Spring Security + JWT authentication</span>
679
+ </li>
680
+ <li class="flex items-start gap-2">
681
+ <i class="fas fa-weight text-green-400 mt-0.5"></i>
682
+ <span>Automatic weight recording system</span>
683
+ </li>
684
+ <li class="flex items-start gap-2">
685
+ <i class="fas fa-id-card text-green-400 mt-0.5"></i>
686
+ <span>Farmer ID tracking integration</span>
687
+ </li>
688
+ </ul>
689
  </div>
690
+
691
+ <div class="code-block p-4 font-mono text-xs">
692
+ <p class="text-slate-500 mb-2"># Tech Stack</p>
693
+ <p><span class="text-green-400">backend:</span></p>
694
+ <p class="pl-2">- Spring Boot</p>
695
+ <p class="pl-2">- Spring Security</p>
696
+ <p class="pl-2">- JWT</p>
697
+ <p><span class="text-green-400">iot:</span></p>
698
+ <p class="pl-2">- MQTT</p>
699
+ <p class="pl-2">- Real-time sensors</p>
700
+ <p><span class="text-green-400">data:</span></p>
701
+ <p class="pl-2">- MySQL</p>
702
+ <p class="pl-2">- Docker</p>
703
+ </div>
704
+ </div>
705
+
706
+ <div class="mt-4 pt-4 border-t border-slate-700">
707
+ <p class="text-sm text-slate-500">
708
+ <i class="fas fa-lightbulb text-yellow-400 mr-2"></i>
709
+ Demonstrates system thinking beyond pure AI β€” enterprise backend + IoT integration
710
+ </p>
711
+ </div>
712
+ </div>
713
+ </div>
714
+ </div>
715
+ </section>
716
+
717
+ <!-- Skills -->
718
+ <section id="skills" class="py-20">
719
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
720
+ <h2 class="text-3xl font-bold text-white mb-10">
721
+ <span class="text-primary-400">~/</span>skills
722
+ </h2>
723
+
724
+ <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
725
+ <!-- Programming Languages -->
726
+ <div class="glass-card rounded-xl p-6">
727
+ <div class="flex items-center gap-3 mb-4">
728
+ <div class="w-10 h-10 rounded-lg bg-blue-500/20 flex items-center justify-center">
729
+ <i class="fas fa-code text-blue-400"></i>
730
+ </div>
731
+ <h3 class="font-semibold text-white">Programming</h3>
732
+ </div>
733
+ <div class="flex flex-wrap gap-2">
734
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">Python</span>
735
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">C++</span>
736
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">Java</span>
737
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-blue-500/50 hover:text-blue-400">SQL</span>
738
+ </div>
739
  </div>
740
+
741
+ <!-- LLM & AI -->
742
+ <div class="glass-card rounded-xl p-6">
743
+ <div class="flex items-center gap-3 mb-4">
744
+ <div class="w-10 h-10 rounded-lg bg-purple-500/20 flex items-center justify-center">
745
+ <i class="fas fa-brain text-purple-400"></i>
746
+ </div>
747
+ <h3 class="font-semibold text-white">LLM & AI</h3>
748
+ </div>
749
+ <div class="flex flex-wrap gap-2">
750
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">Transformers</span>
751
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">PyTorch</span>
752
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">Unsloth</span>
753
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">LLaMA.cpp</span>
754
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">Ollama</span>
755
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-purple-500/50 hover:text-purple-400">LangChain</span>
756
+ </div>
757
+ </div>
758
+
759
+ <!-- Frameworks -->
760
+ <div class="glass-card rounded-xl p-6">
761
+ <div class="flex items-center gap-3 mb-4">
762
+ <div class="w-10 h-10 rounded-lg bg-green-500/20 flex items-center justify-center">
763
+ <i class="fas fa-layer-group text-green-400"></i>
764
+ </div>
765
+ <h3 class="font-semibold text-white">Frameworks</h3>
766
+ </div>
767
+ <div class="flex flex-wrap gap-2">
768
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-green-500/50 hover:text-green-400">FastAPI</span>
769
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-green-500/50 hover:text-green-400">Spring Boot</span>
770
+ </div>
771
+ </div>
772
+
773
+ <!-- Databases -->
774
+ <div class="glass-card rounded-xl p-6">
775
+ <div class="flex items-center gap-3 mb-4">
776
+ <div class="w-10 h-10 rounded-lg bg-orange-500/20 flex items-center justify-center">
777
+ <i class="fas fa-database text-orange-400"></i>
778
+ </div>
779
+ <h3 class="font-semibold text-white">Databases</h3>
780
+ </div>
781
+ <div class="flex flex-wrap gap-2">
782
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">MySQL</span>
783
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">PostgreSQL</span>
784
+ <span class="skill-tag px-3 py-1.5 rounded-lg bg-dark-900 border border-slate-700 text-sm text-slate-300 hover:border-orange-500/50 hover:text-orange-400">Milvus</span>
785
+ <span class="skill-tag px-3