-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
609 lines (532 loc) · 50.5 KB
/
index.html
File metadata and controls
609 lines (532 loc) · 50.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
<!DOCTYPE html>
<html lang="en" class="scroll-smooth">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Shalin Vachheta — ML & AI Engineer</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
--bg-color: #050505;
--card-bg: rgba(20, 20, 20, 0.60);
--accent: #22d3ee;
}
body {
font-family: 'Outfit', sans-serif;
background: var(--bg-color);
color: #e5e5e5;
overflow-x: hidden;
}
.noise-overlay {
position: fixed; inset: 0; pointer-events: none; z-index: 50; opacity: 0.04;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}
.bg-grid {
background-size: 48px 48px;
background-image: linear-gradient(to right, rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,0.03) 1px, transparent 1px);
mask-image: linear-gradient(to bottom, black 15%, transparent 92%);
}
.reveal {
opacity: 0; transform: translateY(28px);
transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active { opacity: 1; transform: translateY(0); }
.spotlight-card {
position: relative;
background-color: var(--card-bg);
border: 1px solid rgba(255,255,255,0.08);
overflow: hidden;
transition: transform 0.35s ease, border-color 0.3s ease, box-shadow 0.3s ease;
height: 100%;
display: flex;
flex-direction: column;
border-radius: 1.25rem;
backdrop-filter: blur(8px);
}
.spotlight-card:hover {
border-color: rgba(34,211,238,0.38);
transform: translateY(-4px);
box-shadow: 0 20px 40px -15px rgba(34,211,238,0.12);
}
.spotlight-card::before {
content: "";
position: absolute; inset: 0;
background: radial-gradient(700px circle at var(--mouse-x) var(--mouse-y), rgba(255,255,255,0.06), transparent 42%);
z-index: 1; opacity: 0; transition: opacity 0.4s ease; pointer-events: none;
}
.spotlight-group:hover .spotlight-card::before { opacity: 1; }
.card-content { position: relative; z-index: 2; display: flex; flex-direction: column; height: 100%; }
.cat-line { flex-grow: 1; height: 1px; background: linear-gradient(90deg, #22d3ee, transparent); opacity: 0.30; }
.font-mono { font-family: 'JetBrains Mono', monospace; }
.lang-btn { cursor: pointer; opacity: 0.55; transition: 0.25s; }
.lang-btn.active { opacity: 1; color: #22d3ee; font-weight: 700; }
.git-icon { transition: fill 0.3s; fill: #9ca3af; }
.spotlight-card:hover .git-icon { fill: white; }
.marquee-container {
overflow: hidden; white-space: nowrap; position: relative;
mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}
.marquee-content { display: inline-block; animation: marquee 42s linear infinite; }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #050505; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 999px; }
</style>
</head>
<body class="antialiased selection:bg-cyan-400 selection:text-black">
<div class="noise-overlay"></div>
<div class="fixed inset-0 z-0 bg-grid pointer-events-none"></div>
<nav class="fixed top-0 w-full z-40 border-b border-white/5 bg-[#050505]/80 backdrop-blur-xl">
<div class="max-w-7xl mx-auto px-6 h-20 flex items-center justify-between">
<a href="#" class="text-xl font-bold tracking-tight text-white">SV<span class="text-cyan-400">.</span></a>
<div class="hidden md:flex items-center space-x-10 text-sm font-medium text-gray-400">
<a href="#about" class="hover:text-white transition" id="nav-about">About</a>
<a href="#experience" class="hover:text-white transition" id="nav-exp">Journey</a>
<a href="#projects" class="hover:text-white transition" id="nav-work">Projects</a>
<a href="#skills" class="hover:text-white transition" id="nav-skills">Skills</a>
<div class="flex items-center gap-2 border-l border-white/10 pl-6">
<span onclick="setLanguage('en')" id="btn-en" class="lang-btn active">EN</span>
<span class="text-gray-600">/</span>
<span onclick="setLanguage('de')" id="btn-de" class="lang-btn">DE</span>
</div>
</div>
<a href="mailto:shalin2010vachheta@gmail.com?subject=Portfolio Inquiry" class="text-xs font-bold bg-white hover:bg-cyan-400 hover:text-black transition text-black px-5 py-2.5 rounded-full" id="nav-contact">CONTACT</a>
</div>
</nav>
<main class="relative z-10 pt-32 pb-20 px-6 max-w-7xl mx-auto space-y-24">
<section id="about" class="reveal">
<div class="flex flex-col-reverse lg:flex-row items-center gap-12 lg:gap-20">
<div class="flex-1 space-y-6">
<div class="inline-flex items-center gap-3 px-4 py-1.5 rounded-full bg-cyan-500/5 border border-cyan-500/10 text-cyan-400 text-xs font-mono font-medium">
<span class="relative flex h-2 w-2">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-cyan-400 opacity-75"></span>
<span class="relative inline-flex rounded-full h-2 w-2 bg-cyan-500"></span>
</span>
<span id="hero-badge">OPEN TO WORK • AI / ML / GENAI / MLOPS • 2026</span>
</div>
<h1 class="text-5xl md:text-7xl lg:text-8xl font-bold tracking-tighter leading-[0.95] text-white">
ML & AI <br>
<span class="text-transparent bg-clip-text bg-gradient-to-r from-cyan-400 to-blue-600">Engineer.</span>
</h1>
<p class="text-lg md:text-xl text-gray-400 max-w-3xl leading-relaxed font-light" id="hero-text">
I am <strong class="text-white">Shalin Vachheta</strong>, an M.Sc. Mechatronics student at the University of Siegen focused on building practical AI systems. My work spans <strong class="text-white">LLMs, RAG, Deep Learning, and offline-first MLOps</strong> — from model development and evaluation to deployment, monitoring, and reproducible ML pipelines.
</p>
<div class="flex items-center gap-6 pt-4 flex-wrap">
<a href="https://github.com/ShalinVachheta017" target="_blank" class="text-gray-400 hover:text-white transition transform hover:scale-110">
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</a>
<a href="https://linkedin.com/in/shalin-vachheta/" target="_blank" class="text-gray-400 hover:text-white transition transform hover:scale-110">
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg>
</a>
</div>
</div>
<div class="relative w-64 h-64 md:w-80 md:h-80 lg:w-[400px] lg:h-[400px] flex-shrink-0 group">
<div class="absolute inset-0 bg-gradient-to-tr from-cyan-500 to-blue-600 rounded-full blur-[60px] opacity-20 group-hover:opacity-40 transition duration-700"></div>
<img src="shalin-bridge.jpg" alt="Profile" class="relative w-full h-full object-cover rounded-2xl grayscale hover:grayscale-0 transition duration-700 shadow-2xl ring-1 ring-white/10">
</div>
</div>
</section>
<section id="experience" class="reveal">
<h2 class="text-2xl font-bold mb-10 flex items-center gap-3" id="exp-title"><span class="text-cyan-400">//</span> Career Journey</h2>
<div class="border-l border-gray-800 ml-4 space-y-12 spotlight-group" onmousemove="handleMouseMove(event)">
<div class="relative pl-10">
<span class="absolute -left-[6px] top-2 h-3 w-3 rounded-full bg-cyan-400 shadow-[0_0_15px_rgba(34,211,238,0.5)]"></span>
<div class="spotlight-card p-8 md:p-10 w-full">
<div class="card-content grid md:grid-cols-4 gap-8">
<div class="md:col-span-1 border-r border-white/5 pr-4">
<span class="text-xs font-mono text-cyan-400 mb-2 block">DEC 2025 - PRESENT</span>
<h3 class="text-2xl font-bold text-white" id="job-title-1">Master Thesis</h3>
<p class="text-gray-500 text-sm mt-1">University of Siegen</p>
</div>
<div class="md:col-span-3">
<h4 class="text-xl font-bold text-gray-200 mb-4">MLOps Pipeline for Continuous Mental-Health Monitoring</h4>
<div class="text-gray-400 text-base leading-relaxed" id="job-desc-1">
<ul class="list-disc list-inside space-y-2">
<li>Architecting a production-grade, offline-first MLOps pipeline for wearable IMU time-series (ACC/GYRO) for anxiety detection.</li>
<li>Utilizing DVC and MLflow for robust reproducibility, dataset/model versioning, and tracking artifact lineage.</li>
<li>Designing privacy-first deployments using containerized inference, FastAPI services, and structured artifact management.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="relative pl-10">
<span class="absolute -left-[6px] top-2 h-3 w-3 rounded-full bg-gray-700 border border-gray-600"></span>
<div class="spotlight-card p-8 md:p-10 w-full">
<div class="card-content grid md:grid-cols-4 gap-8">
<div class="md:col-span-1 border-r border-white/5 pr-4">
<span class="text-xs font-mono text-gray-500 mb-2 block">MAY 2024 - MAY 2025</span>
<h3 class="text-2xl font-bold text-gray-300" id="job-title-2">Student Research Assistant</h3>
<p class="text-gray-500 text-sm mt-1">University of Siegen</p>
</div>
<div class="md:col-span-3">
<h4 class="text-xl font-bold text-gray-300 mb-4">Sequence-to-Sequence Event Forecasting</h4>
<div class="text-gray-400 text-base leading-relaxed" id="job-desc-2">
<ul class="list-disc list-inside space-y-2">
<li>Developed a BiLSTM Seq2Seq forecasting model for multivariate simulator event streams.</li>
<li>Improved performance by 25% over the baseline, gaining an additional 15% via Optuna-based hyperparameter optimization.</li>
<li>Implemented mask-aware evaluation, reliable logging, and checkpointing for processing variable-length sequences.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="projects" class="reveal space-y-20">
<div class="spotlight-group" onmousemove="handleMouseMove(event)">
<div class="flex items-center gap-4 mb-6">
<h2 class="text-xl font-bold text-white whitespace-nowrap" id="cat-1">Featured MLOps & Systems</h2>
<div class="cat-line"></div>
</div>
<div class="grid grid-cols-1 gap-6">
<a href="https://github.com/ShalinVachheta017/Vehicle-Insurance-DataPipeline-MLops-" target="_blank" class="spotlight-card p-6 group lg:w-2/3">
<div class="card-content">
<div class="flex items-start justify-between gap-4 mb-4">
<h3 class="text-xl font-bold text-white group-hover:text-cyan-400 transition" id="proj-title-ins">Vehicle Insurance Data Pipeline</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-gray-400 text-sm leading-relaxed mb-6 flex-grow" id="proj-desc-ins">
<ul class="list-disc list-inside space-y-1">
<li>Engineered an end-to-end ML pipeline for insurance response prediction trained on 762k+ records.</li>
<li>Achieved a 91.8% F1-score with modular pipeline stages, config-driven checks, and artifact traceability.</li>
<li>Deployed via CI/CD pipelines as a containerized FastAPI service on cloud infrastructure.</li>
</ul>
</div>
<div class="flex flex-wrap gap-2 text-[10px] font-mono text-cyan-300/80 mt-auto">
<span>#scikit-learn</span><span>#MongoDB</span><span>#AWS</span><span>#Docker</span><span>#GitHubActions</span><span>#FastAPI</span>
</div>
</div>
</a>
</div>
</div>
<div class="spotlight-group" onmousemove="handleMouseMove(event)">
<div class="flex items-center gap-4 mb-6">
<h2 class="text-xl font-bold text-white whitespace-nowrap" id="cat-2">GenAI, LLMs & Retrieval</h2>
<div class="cat-line"></div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<a href="https://github.com/ShalinVachheta017/Multilingual-RAG-System-" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-purple-400 transition" id="proj-title-rag">RAG Chatbot — Multilingual Document Intelligence</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-rag">
<ul class="list-disc list-inside space-y-1">
<li>Developed a multilingual RAG pipeline for scalable tender-document analysis.</li>
<li>Implemented metadata mapping, deduplication, and embedding-based retrieval.</li>
<li>Enhanced response accuracy with contextual re-ranking for enterprise workflows.</li>
</ul>
</div>
<span class="text-[10px] text-purple-400/80 font-mono mt-auto block">Qdrant • Ollama • Embeddings • Re-ranking • Streamlit</span>
</div>
</a>
<a href="https://github.com/ShalinVachheta017/GEN-AI-Llama-3.1-based-Cold-Email-Generator-" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-purple-400 transition" id="proj-title-email">LLM-Based AI Email Generator</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-email">
<ul class="list-disc list-inside space-y-1">
<li>Built a context-aware email drafting system using Llama 3.1 and LangChain.</li>
<li>Structured persona and company inputs into reusable, semantic prompt templates.</li>
<li>Delivered a controllable generation workflow via a streamlined Streamlit interface.</li>
</ul>
</div>
<span class="text-[10px] text-purple-400/80 font-mono mt-auto block">LangChain • Llama 3.1 • ChromaDB • Streamlit</span>
</div>
</a>
<a href="https://github.com/ShalinVachheta017/Text_Summarization-Project" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-purple-400 transition" id="proj-title-pegasus">PEGASUS Summarization</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-pegasus">
<ul class="list-disc list-inside space-y-1">
<li>Fine-tuned Google PEGASUS on 16k+ SAMSum samples for abstractive summarization.</li>
<li>Evaluated model performance using ROUGE metrics within a reproducible pipeline.</li>
<li>Packaged and deployed the final model as a modular FastAPI inference endpoint.</li>
</ul>
</div>
<span class="text-[10px] text-purple-400/80 font-mono mt-auto block">Hugging Face • PEGASUS • ROUGE • FastAPI • Docker</span>
</div>
</a>
<a href="https://github.com/ShalinVachheta017/Translation-Transformer-Model" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-purple-400 transition" id="proj-title-transformer">Transformer From Scratch</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-transformer">
<ul class="list-disc list-inside space-y-1">
<li>Implemented the core 'Attention Is All You Need' architecture in PyTorch.</li>
<li>Built multi-head attention, positional encoding, and residual connections.</li>
<li>Enabled sequence modeling experiments with masking and beam search integration.</li>
</ul>
</div>
<span class="text-[10px] text-purple-400/80 font-mono mt-auto block">PyTorch • Attention • BLEU • Beam Search</span>
</div>
</a>
</div>
</div>
<div class="spotlight-group" onmousemove="handleMouseMove(event)">
<div class="flex items-center gap-4 mb-6">
<h2 class="text-xl font-bold text-white whitespace-nowrap" id="cat-3">Research & Deep Learning</h2>
<div class="cat-line"></div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<a href="https://github.com/ShalinVachheta017/sequence-2-sequence-Event-Prediction" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-green-400 transition" id="proj-title-seq2seq">Seq2Seq Event Forecasting</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-seq2seq">
<ul class="list-disc list-inside space-y-1">
<li>Engineered a BiLSTM encoder-decoder for multivariate simulator event streams.</li>
<li>Optimized hyperparameters using Optuna to improve baseline performance by 25%.</li>
<li>Integrated mask-aware evaluation and reliable checkpointing for robust research.</li>
</ul>
</div>
<span class="text-[10px] text-green-400/80 font-mono mt-auto block">PyTorch • BiLSTM • Seq2Seq • Optuna</span>
</div>
</a>
<a href="https://github.com/ShalinVachheta017/Microscopic-Image-Segmentation" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-green-400 transition" id="proj-title-unet">Microscopic Denoising & Segmentation</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-unet">
<ul class="list-disc list-inside space-y-1">
<li>Designed a dual-branch U-Net pipeline for fluorescence microscopy analysis.</li>
<li>Achieved simultaneous image denoising and precise semantic segmentation.</li>
<li>Implemented robust preprocessing, hybrid loss functions, and method benchmarking.</li>
</ul>
</div>
<span class="text-[10px] text-green-400/80 font-mono mt-auto block">U-Net • OpenCV • Dice Loss • Benchmarking</span>
</div>
</a>
</div>
</div>
<div class="spotlight-group" onmousemove="handleMouseMove(event)">
<div class="flex items-center gap-4 mb-6">
<h2 class="text-xl font-bold text-white whitespace-nowrap" id="cat-4">Data Analytics & Classical ML</h2>
<div class="cat-line"></div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="spotlight-card p-6">
<div class="card-content">
<h3 class="text-lg font-bold text-white mb-4" id="proj-title-churn">Retention Analytics — Churn Insights</h3>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-churn">
<ul class="list-disc list-inside space-y-1">
<li>Executed end-to-end churn analytics on 10k+ customer records.</li>
<li>Trained Random Forest classifiers reaching ~89% accuracy with feature analysis.</li>
<li>Delivered actionable, business-facing retention recommendations.</li>
</ul>
</div>
<span class="text-[10px] text-blue-400/80 font-mono mt-auto block">Pandas • Random Forest • EDA • Business Analytics</span>
</div>
</div>
<a href="https://github.com/ShalinVachheta017/Student-Performance-Prediction" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-blue-400 transition" id="proj-title-student">Predictive Modeling & Decision Support</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-student">
<ul class="list-disc list-inside space-y-1">
<li>Constructed a complete ML workflow spanning feature engineering to evaluation.</li>
<li>Trained and compared multiple models, achieving an R² of 0.87 with XGBoost.</li>
<li>Deployed the optimal regression model as a containerized Flask API service.</li>
</ul>
</div>
<span class="text-[10px] text-blue-400/80 font-mono mt-auto block">scikit-learn • XGBoost • Flask • Docker</span>
</div>
</a>
<a href="https://github.com/ShalinVachheta017/Vehicle-Sales-Data-Analysis" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-blue-400 transition" id="proj-title-sales">US Vehicle Sales Forecasting & Insights</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-sales">
<ul class="list-disc list-inside space-y-1">
<li>Analyzed 558k+ vehicle sales records with large-scale data preprocessing.</li>
<li>Engineered temporal and vehicle-level features to uncover pricing elasticity.</li>
<li>Developed 10+ EDA visualizations to highlight seasonal market behavior.</li>
</ul>
</div>
<span class="text-[10px] text-blue-400/80 font-mono mt-auto block">Pandas • NumPy • Matplotlib • Seaborn</span>
</div>
</a>
<a href="https://github.com/ShalinVachheta017/Sports-Analysis-" target="_blank" class="spotlight-card p-6 group">
<div class="card-content">
<div class="flex justify-between items-start mb-4 gap-3">
<h3 class="text-lg font-bold text-white group-hover:text-blue-400 transition" id="proj-title-ipl">IPL Match Outcome Analysis</h3>
<svg class="w-5 h-5 git-icon" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.108-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.91 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
</div>
<div class="text-sm text-gray-400 mb-6 flex-grow" id="proj-desc-ipl">
<ul class="list-disc list-inside space-y-1">
<li>Conducted exploratory analytics on 700+ professional cricket matches.</li>
<li>Studied the impact of toss strategy, venue effects, and team performance.</li>
<li>Utilized Pandas and NumPy to uncover historical outcome patterns.</li>
</ul>
</div>
<span class="text-[10px] text-blue-400/80 font-mono mt-auto block">Pandas • NumPy • EDA • Visualization</span>
</div>
</a>
</div>
</div>
</section>
<section id="skills" class="reveal py-10">
<div class="marquee-container">
<div class="marquee-content text-gray-800 text-3xl font-bold flex items-center">
<span class="mx-6">Python</span><span class="mx-6">SQL</span><span class="mx-6">PyTorch</span><span class="mx-6">TensorFlow</span><span class="mx-6">scikit-learn</span><span class="mx-6">MLflow</span><span class="mx-6">DVC</span><span class="mx-6">Docker</span><span class="mx-6">FastAPI</span><span class="mx-6">LangChain</span><span class="mx-6">Transformers</span><span class="mx-6">RAG</span><span class="mx-6">Qdrant</span><span class="mx-6">Ollama</span><span class="mx-6">GitHub Actions</span><span class="mx-6">Python</span><span class="mx-6">SQL</span><span class="mx-6">PyTorch</span><span class="mx-6">TensorFlow</span><span class="mx-6">scikit-learn</span><span class="mx-6">MLflow</span><span class="mx-6">DVC</span><span class="mx-6">Docker</span>
</div>
</div>
</section>
<footer class="text-center text-gray-600 text-sm pb-10 border-t border-white/5 pt-10">
<p>© 2026 Shalin Vachheta.</p>
<a href="mailto:shalin2010vachheta@gmail.com" class="mt-2 block text-xs font-mono text-gray-700 hover:text-cyan-400 transition">shalin2010vachheta@gmail.com</a>
</footer>
</main>
<script>
const translations = {
en: {
navAbout: 'About', navExp: 'Journey', navWork: 'Projects', navSkills: 'Skills', navContact: 'CONTACT',
heroBadge: 'OPEN TO WORK • AI / ML / GENAI / MLOPS • 2026',
heroText: "I am <strong class='text-white'>Shalin Vachheta</strong>, an M.Sc. Mechatronics student at the University of Siegen focused on building practical AI systems. My work spans <strong class='text-white'>LLMs, RAG, Deep Learning, and offline-first MLOps</strong> — from model development and evaluation to deployment, monitoring, and reproducible ML pipelines.",
expTitle: "<span class='text-cyan-400'>//</span> Career Journey",
jobTitle1: 'Master Thesis',
jobTitle2: 'Student Research Assistant',
jobDesc1: "<ul class='list-disc list-inside space-y-2'><li>Architecting a production-grade, offline-first MLOps pipeline for wearable IMU time-series (ACC/GYRO) for anxiety detection.</li><li>Utilizing DVC and MLflow for robust reproducibility, dataset/model versioning, and tracking artifact lineage.</li><li>Designing privacy-first deployments using containerized inference, FastAPI services, and structured artifact management.</li></ul>",
jobDesc2: "<ul class='list-disc list-inside space-y-2'><li>Developed a BiLSTM Seq2Seq forecasting model for multivariate simulator event streams.</li><li>Improved performance by 25% over the baseline, gaining an additional 15% via Optuna-based hyperparameter optimization.</li><li>Implemented mask-aware evaluation, reliable logging, and checkpointing for processing variable-length sequences.</li></ul>",
cat1: 'Featured MLOps & Systems', cat2: 'GenAI, LLMs & Retrieval', cat3: 'Research, Deep Learning & Applied AI', cat4: 'Data Analytics & Classical ML',
projTitleIns: 'Vehicle Insurance Data Pipeline',
projDescIns: "<ul class='list-disc list-inside space-y-1'><li>Engineered an end-to-end ML pipeline for insurance response prediction trained on 762k+ records.</li><li>Achieved a 91.8% F1-score with modular pipeline stages, config-driven checks, and artifact traceability.</li><li>Deployed via CI/CD pipelines as a containerized FastAPI service on cloud infrastructure.</li></ul>",
projTitleRag: 'RAG Chatbot — Multilingual Document Intelligence',
projDescRag: "<ul class='list-disc list-inside space-y-1'><li>Developed a multilingual RAG pipeline for scalable tender-document analysis.</li><li>Implemented metadata mapping, deduplication, and embedding-based retrieval.</li><li>Enhanced response accuracy with contextual re-ranking for enterprise workflows.</li></ul>",
projTitleEmail: 'LLM-Based AI Email Generator',
projDescEmail: "<ul class='list-disc list-inside space-y-1'><li>Built a context-aware email drafting system using Llama 3.1 and LangChain.</li><li>Structured persona and company inputs into reusable, semantic prompt templates.</li><li>Delivered a controllable generation workflow via a streamlined Streamlit interface.</li></ul>",
projTitlePegasus: 'PEGASUS Summarization',
projDescPegasus: "<ul class='list-disc list-inside space-y-1'><li>Fine-tuned Google PEGASUS on 16k+ SAMSum samples for abstractive summarization.</li><li>Evaluated model performance using ROUGE metrics within a reproducible pipeline.</li><li>Packaged and deployed the final model as a modular FastAPI inference endpoint.</li></ul>",
projTitleTransformer: 'Transformer From Scratch',
projDescTransformer: "<ul class='list-disc list-inside space-y-1'><li>Implemented the core 'Attention Is All You Need' architecture in PyTorch.</li><li>Built multi-head attention, positional encoding, and residual connections.</li><li>Enabled sequence modeling experiments with masking and beam search integration.</li></ul>",
projTitleSeq2Seq: 'Seq2Seq Event Forecasting',
projDescSeq2Seq: "<ul class='list-disc list-inside space-y-1'><li>Engineered a BiLSTM encoder-decoder for multivariate simulator event streams.</li><li>Optimized hyperparameters using Optuna to improve baseline performance by 25%.</li><li>Integrated mask-aware evaluation and reliable checkpointing for robust research.</li></ul>",
projTitleUnet: 'Microscopic Denoising & Segmentation',
projDescUnet: "<ul class='list-disc list-inside space-y-1'><li>Designed a dual-branch U-Net pipeline for fluorescence microscopy analysis.</li><li>Achieved simultaneous image denoising and precise semantic segmentation.</li><li>Implemented robust preprocessing, hybrid loss functions, and method benchmarking.</li></ul>",
projTitleChurn: 'Retention Analytics — Churn Insights',
projDescChurn: "<ul class='list-disc list-inside space-y-1'><li>Executed end-to-end churn analytics on 10k+ customer records.</li><li>Trained Random Forest classifiers reaching ~89% accuracy with feature analysis.</li><li>Delivered actionable, business-facing retention recommendations.</li></ul>",
projTitleStudent: 'Predictive Modeling & Decision Support',
projDescStudent: "<ul class='list-disc list-inside space-y-1'><li>Constructed a complete ML workflow spanning feature engineering to evaluation.</li><li>Trained and compared multiple models, achieving an R² of 0.87 with XGBoost.</li><li>Deployed the optimal regression model as a containerized Flask API service.</li></ul>",
projTitleSales: 'US Vehicle Sales Forecasting & Insights',
projDescSales: "<ul class='list-disc list-inside space-y-1'><li>Analyzed 558k+ vehicle sales records with large-scale data preprocessing.</li><li>Engineered temporal and vehicle-level features to uncover pricing elasticity.</li><li>Developed 10+ EDA visualizations to highlight seasonal market behavior.</li></ul>",
projTitleIpl: 'IPL Match Outcome Analysis',
projDescIpl: "<ul class='list-disc list-inside space-y-1'><li>Conducted exploratory analytics on 700+ professional cricket matches.</li><li>Studied the impact of toss strategy, venue effects, and team performance.</li><li>Utilized Pandas and NumPy to uncover historical outcome patterns.</li></ul>"
},
de: {
navAbout: 'Über mich', navExp: 'Werdegang', navWork: 'Projekte', navSkills: 'Skills', navContact: 'KONTAKT',
heroBadge: 'OFFEN FÜR STELLEN • AI / ML / GENAI / MLOPS • 2026',
heroText: "Ich bin <strong class='text-white'>Shalin Vachheta</strong>, M.Sc.-Student der Mechatronik an der Universität Siegen. Ich entwickle praxisnahe KI-Systeme in den Bereichen <strong class='text-white'>LLMs, RAG, Deep Learning und Offline-First MLOps</strong> — von Modellentwicklung und Evaluation bis Deployment, Monitoring und reproduzierbaren ML-Pipelines.",
expTitle: "<span class='text-cyan-400'>//</span> Werdegang",
jobTitle1: 'Masterarbeit',
jobTitle2: 'Wissenschaftliche Hilfskraft',
jobDesc1: "<ul class='list-disc list-inside space-y-2'><li>Entwicklung einer produktionsnahen, offline-first MLOps-Pipeline für Wearable-IMU-Zeitreihen zur Angsterkennung.</li><li>Einsatz von DVC und MLflow für Reproduzierbarkeit, Daten-/Modellversionierung und Artefakt-Nachverfolgung.</li><li>Privacy-first Deployment mit containerisierter Inferenz, FastAPI-Services und strukturierter Artefaktverwaltung.</li></ul>",
jobDesc2: "<ul class='list-disc list-inside space-y-2'><li>Entwicklung eines BiLSTM-Seq2Seq-Modells für multivariate Simulator-Eventströme.</li><li>25% Leistungssteigerung gegenüber der Baseline sowie weiteren 15% durch Optuna-basiertes Hyperparameter-Tuning.</li><li>Implementierung von mask-aware Evaluation, Logging und Checkpointing für variable Sequenzlängen.</li></ul>",
cat1: 'MLOps & Systeme', cat2: 'GenAI, LLMs & Retrieval', cat3: 'Forschung, Deep Learning & Applied AI', cat4: 'Datenanalyse & Klassisches ML',
projTitleIns: 'Vehicle Insurance Data Pipeline',
projDescIns: "<ul class='list-disc list-inside space-y-1'><li>Entwicklung einer End-to-End-ML-Pipeline zur Vorhersage von Kundeninteresse mit 762k+ Datensätzen.</li><li>Erreichte 91,8% F1-Score mit modularen Stufen und Nachverfolgbarkeit.</li><li>Bereitstellung über CI/CD als containerisierter FastAPI-Service in der Cloud.</li></ul>",
projTitleRag: 'RAG Chatbot — Mehrsprachige Dokumentenintelligenz',
projDescRag: "<ul class='list-disc list-inside space-y-1'><li>Entwicklung einer mehrsprachigen RAG-Pipeline zur skalierbaren Analyse von Ausschreibungen.</li><li>Implementierung von Metadaten-Mapping und Embedding-basiertem Retrieval.</li><li>Verbesserte Antwortgenauigkeit mit kontextbezogenem Re-Ranking.</li></ul>",
projTitleEmail: 'LLM-Based AI Email Generator',
projDescEmail: "<ul class='list-disc list-inside space-y-1'><li>Erstellung eines kontextbezogenen E-Mail-Systems mit Llama 3.1 und LangChain.</li><li>Strukturierung von Eingaben in wiederverwendbare semantische Prompts.</li><li>Steuerbarer Generierungs-Workflow via Streamlit-Interface.</li></ul>",
projTitlePegasus: 'PEGASUS Summarization',
projDescPegasus: "<ul class='list-disc list-inside space-y-1'><li>Feinabstimmung von Google PEGASUS auf 16k+ SAMSum-Samples zur abstrakten Zusammenfassung.</li><li>Evaluierung der Modellleistung mit ROUGE in einer reproduzierbaren Pipeline.</li><li>Bereitstellung des finalen Modells als modularer FastAPI-Inferenz-Endpunkt.</li></ul>",
projTitleTransformer: 'Transformer From Scratch',
projDescTransformer: "<ul class='list-disc list-inside space-y-1'><li>Implementierung der 'Attention Is All You Need'-Architektur in PyTorch.</li><li>Erstellung von Multi-Head-Attention und Positional Encoding.</li><li>Sequenzmodellierungs-Experimente mit Beam-Search-Integration.</li></ul>",
projTitleSeq2Seq: 'Seq2Seq Event Forecasting',
projDescSeq2Seq: "<ul class='list-disc list-inside space-y-1'><li>Entwicklung eines BiLSTM-Encoder-Decoders für multivariate Simulator-Eventströme.</li><li>Hyperparameter-Optimierung mit Optuna zur Leistungssteigerung um 25%.</li><li>Mask-aware Evaluation und zuverlässiges Checkpointing für die Forschung.</li></ul>",
projTitleUnet: 'Microscopic Denoising & Segmentation',
projDescUnet: "<ul class='list-disc list-inside space-y-1'><li>Dual-Branch U-Net Pipeline für die Analyse von Fluoreszenzmikroskopie.</li><li>Gleichzeitiges Denoising und präzise semantische Segmentierung.</li><li>Robuste Vorverarbeitung und Benchmarking von Methoden.</li></ul>",
projTitleChurn: 'Retention Analytics — Churn Insights',
projDescChurn: "<ul class='list-disc list-inside space-y-1'><li>End-to-End Churn-Analyse mit 10k+ Kundendatensätzen.</li><li>Training von Random Forest Klassifikatoren (~89% Genauigkeit) mit Feature-Analyse.</li><li>Geschäftsorientierte Handlungsempfehlungen zur Kundenbindung.</li></ul>",
projTitleStudent: 'Predictive Modeling & Decision Support',
projDescStudent: "<ul class='list-disc list-inside space-y-1'><li>Vollständiger ML-Workflow von Feature Engineering bis zur Evaluation.</li><li>Training und Vergleich mehrerer Modelle (R² = 0,87 mit XGBoost).</li><li>Bereitstellung des Modells als containerisierter Flask API-Service.</li></ul>",
projTitleSales: 'US Vehicle Sales Forecasting & Insights',
projDescSales: "<ul class='list-disc list-inside space-y-1'><li>Analyse von 558k+ Fahrzeugverkaufsdatensätzen mit umfangreicher Vorverarbeitung.</li><li>Entwicklung zeitlicher Merkmale zur Aufdeckung von Preiselastizität.</li><li>10+ EDA-Visualisierungen zur Hervorhebung saisonalen Marktverhaltens.</li></ul>",
projTitleIpl: 'IPL Match Outcome Analysis',
projDescIpl: "<ul class='list-disc list-inside space-y-1'><li>Explorative Analysen von 700+ professionellen Cricket-Matches.</li><li>Untersuchung von Toss-Strategien, Spielorteinflüssen und Teamleistung.</li><li>Nutzung von Pandas und NumPy zur Aufdeckung historischer Ergebnismuster.</li></ul>"
}
};
function setLanguage(lang) {
const t = translations[lang];
document.getElementById('btn-en').classList.toggle('active', lang === 'en');
document.getElementById('btn-de').classList.toggle('active', lang === 'de');
document.getElementById('nav-about').innerText = t.navAbout;
document.getElementById('nav-exp').innerText = t.navExp;
document.getElementById('nav-work').innerText = t.navWork;
document.getElementById('nav-skills').innerText = t.navSkills;
document.getElementById('nav-contact').innerText = t.navContact;
document.getElementById('hero-badge').innerText = t.heroBadge;
document.getElementById('hero-text').innerHTML = t.heroText;
document.getElementById('exp-title').innerHTML = t.expTitle;
document.getElementById('job-title-1').innerText = t.jobTitle1;
document.getElementById('job-title-2').innerText = t.jobTitle2;
document.getElementById('job-desc-1').innerHTML = t.jobDesc1;
document.getElementById('job-desc-2').innerHTML = t.jobDesc2;
document.getElementById('cat-1').innerText = t.cat1;
document.getElementById('cat-2').innerText = t.cat2;
document.getElementById('cat-3').innerText = t.cat3;
document.getElementById('cat-4').innerText = t.cat4;
document.getElementById('proj-title-ins').innerText = t.projTitleIns;
document.getElementById('proj-desc-ins').innerHTML = t.projDescIns;
document.getElementById('proj-title-rag').innerText = t.projTitleRag;
document.getElementById('proj-desc-rag').innerHTML = t.projDescRag;
document.getElementById('proj-title-email').innerText = t.projTitleEmail;
document.getElementById('proj-desc-email').innerHTML = t.projDescEmail;
document.getElementById('proj-title-pegasus').innerText = t.projTitlePegasus;
document.getElementById('proj-desc-pegasus').innerHTML = t.projDescPegasus;
document.getElementById('proj-title-transformer').innerText = t.projTitleTransformer;
document.getElementById('proj-desc-transformer').innerHTML = t.projDescTransformer;
document.getElementById('proj-title-seq2seq').innerText = t.projTitleSeq2Seq;
document.getElementById('proj-desc-seq2seq').innerHTML = t.projDescSeq2Seq;
document.getElementById('proj-title-unet').innerText = t.projTitleUnet;
document.getElementById('proj-desc-unet').innerHTML = t.projDescUnet;
document.getElementById('proj-title-churn').innerText = t.projTitleChurn;
document.getElementById('proj-desc-churn').innerHTML = t.projDescChurn;
document.getElementById('proj-title-student').innerText = t.projTitleStudent;
document.getElementById('proj-desc-student').innerHTML = t.projDescStudent;
document.getElementById('proj-title-sales').innerText = t.projTitleSales;
document.getElementById('proj-desc-sales').innerHTML = t.projDescSales;
document.getElementById('proj-title-ipl').innerText = t.projTitleIpl;
document.getElementById('proj-desc-ipl').innerHTML = t.projDescIpl;
}
function handleMouseMove(e) {
const cards = document.getElementsByClassName('spotlight-card');
for (const card of cards) {
const rect = card.getBoundingClientRect();
card.style.setProperty('--mouse-x', `${e.clientX - rect.left}px`);
card.style.setProperty('--mouse-y', `${e.clientY - rect.top}px`);
}
}
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) entry.target.classList.add('active');
});
}, { threshold: 0.1 });
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
// Initialize default language on load
setLanguage('en');
</script>
</body>
</html>