feat: populate CV with real data and fix Docker build
- Replace placeholder CV data with real profile across cv.json and backend seed - Fix Docker build: npm ci → npm install --legacy-peer-deps --ignore-scripts (works around stale lockfile peer dep conflict and iltorb native addon failure on Node 25)
This commit is contained in:
@@ -3,7 +3,7 @@ FROM node:25-alpine as build
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm ci
|
||||
RUN npm install --legacy-peer-deps --ignore-scripts
|
||||
|
||||
COPY . .
|
||||
RUN npm run build
|
||||
|
||||
@@ -26,17 +26,153 @@ export async function initDB() {
|
||||
data: JSON.stringify({
|
||||
personal: {
|
||||
name: "Tuan-Dat Tran",
|
||||
title: "Junior DevOps Engineer",
|
||||
intro: "Passionierter DevOps Engineer mit Fokus auf Cloud-Infrastruktur.",
|
||||
email: "tuan-dat.tran@example.com",
|
||||
github: "https://github.com/tuan-dat-tran",
|
||||
linkedin: "https://linkedin.com/in/tuan-dat-tran",
|
||||
location: "Deutschland"
|
||||
title: "DevOps Engineer",
|
||||
intro: "DevOps Engineer and Homelab Enthusiast based in Essen, Germany. Primary owner of a production aviation SaaS platform on Azure AKS, with a research background in P4 programmable networks and a co-authored IEEE publication.",
|
||||
email: "tuan-dat.tran@dextradata.com",
|
||||
github: "https://github.com/TuDatTr",
|
||||
linkedin: "https://www.linkedin.com/in/tudattr/",
|
||||
location: "Essen, Germany"
|
||||
},
|
||||
experience: [],
|
||||
skills: {},
|
||||
education: [],
|
||||
projects: []
|
||||
experience: [
|
||||
{
|
||||
id: 1,
|
||||
role: "DevOps Engineer",
|
||||
company: "DextraData GmbH",
|
||||
period: "2025 – present",
|
||||
type: "Full-time",
|
||||
description: "Primary owner of the Logipad aviation SaaS platform and secondary owner of the GRASP GRC platform, both running on Azure AKS and Rancher-managed Kubernetes clusters.",
|
||||
highlights: [
|
||||
"Drives GitOps adoption with ArgoCD across production Kubernetes clusters",
|
||||
"Manages CI/CD pipelines with Jenkins and Bitbucket Pipelines",
|
||||
"Leads incident response for production outages",
|
||||
"Implemented Azure Container Registry mirroring to resolve Docker Hub rate limits",
|
||||
"Built internal AI tooling with LiteLLM and Ollama",
|
||||
"Promoted from Junior DevOps Engineer in January 2026"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
role: "Research Assistant",
|
||||
company: "NCS Group, Universität Duisburg-Essen",
|
||||
period: "2021 – 2024",
|
||||
type: "Part-time",
|
||||
description: "Hands-on P4 and programmable data plane research on Intel Tofino ASICs and BMv2, culminating in a co-authored publication at IEEE LCN 2023 (Reverse Path Congestion Marking).",
|
||||
highlights: [
|
||||
"Co-authored RPM paper published at IEEE LCN 2023",
|
||||
"Built a Dockerized federated LSTM system with custom client-selection strategies for 5G network research",
|
||||
"Implemented low-latency DASH video streaming on Kubernetes and WebRTC SVC simulcast",
|
||||
"Managed lab infrastructure: Ansible-automated servers, 100G NIC testbeds (Intel E810, Netronome)",
|
||||
"Administered AWS accounts, PartDB inventory system, and the group website"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
role: "Student Mentor",
|
||||
company: "Universität Duisburg-Essen",
|
||||
period: "2021 – 2022",
|
||||
type: "Volunteer",
|
||||
description: "Introduced groups of ~20 freshmen to their new academic environment at the start of each semester, providing organizational and technical guidance throughout their first year in the computer science programme.",
|
||||
highlights: [
|
||||
"Guided new students through academic orientation each semester",
|
||||
"Provided technical and organizational support throughout the first year"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
role: "Software Engineer",
|
||||
company: "gefeba Engineering GmbH",
|
||||
period: "2018 – 2020",
|
||||
type: "Part-time",
|
||||
description: "Worked on the company's main product — a frame-based data exchange system for monitoring industrial machinery — and developed a real-time log visualization application.",
|
||||
highlights: [
|
||||
"Developed features for a frame-based industrial data exchange system",
|
||||
"Built a real-time log visualization application for industrial machinery",
|
||||
"Stack: C#, Angular, Bootstrap, Entity Framework"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
role: "Student Council Member",
|
||||
company: "Universität Duisburg-Essen",
|
||||
period: "2016 – 2019",
|
||||
type: "Volunteer",
|
||||
description: "Participated in faculty committees and organized social events. Main responsibilities included managing the faculty's IT infrastructure and providing support to fellow students.",
|
||||
highlights: [
|
||||
"Managed faculty IT infrastructure (Linux, Networking)",
|
||||
"Organized social events and participated in faculty committees",
|
||||
"Provided subject-specific and organizational support to fellow students"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
role: "Software Engineer",
|
||||
company: "gefeba Engineering GmbH",
|
||||
period: "2013 – 2015",
|
||||
type: "Part-time",
|
||||
description: "Joined after a school internship. Worked on internal ERP projects, designed a mail traffic management tool, and contributed to the internal master data management tool.",
|
||||
highlights: [
|
||||
"Developed internal ERP project features",
|
||||
"Designed a tool for managing project-related mail traffic",
|
||||
"Contributed to internal master data management tooling",
|
||||
"Stack: C#, HTML, CSS, JavaScript"
|
||||
]
|
||||
}
|
||||
],
|
||||
skills: {
|
||||
"Container & Orchestration": ["Kubernetes", "Docker", "Helm"],
|
||||
"CI/CD & GitOps": ["ArgoCD", "Jenkins", "Bitbucket Pipelines", "Git"],
|
||||
"Cloud": ["Azure", "Azure AKS"],
|
||||
"Infrastructure as Code": ["Ansible"],
|
||||
"Observability": ["ELK Stack"],
|
||||
"Programming": ["Rust", "Python", "Bash", "P4"],
|
||||
"Research": ["Intel Tofino", "BMv2", "DPDK"]
|
||||
},
|
||||
education: [
|
||||
{
|
||||
id: 1,
|
||||
degree: "B.Sc. Systems Engineering",
|
||||
institution: "Universität Duisburg-Essen",
|
||||
period: "2015 – present",
|
||||
status: "Bachelor thesis ongoing"
|
||||
}
|
||||
],
|
||||
projects: [
|
||||
{
|
||||
id: 1,
|
||||
name: "Ethereum Smart Contract Fuzzer",
|
||||
description: "A fuzzer for Ethereum smart contracts built as part of the bachelor thesis project.",
|
||||
url: "#",
|
||||
tech: ["Rust"]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "Homelab",
|
||||
description: "Ansible-managed homelab serving as a platform for learning and experimenting with new technologies through automated provisioning and configuration management.",
|
||||
url: "https://git.tudattr.dev",
|
||||
tech: ["Ansible", "Kubernetes"]
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: ".dotfiles",
|
||||
description: "Configuration files for daily-use tools providing a reproducible baseline for any personal ArchLinux system, including NeoVim (LazyVim), Zellij, and k9s setups.",
|
||||
url: "https://github.com/TuDatTr",
|
||||
tech: ["Shell", "NeoVim", "ArchLinux"]
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: "tudattr.dev",
|
||||
description: "Full-stack WebAssembly personal website built with the Rust-based Dioxus framework and Tailwind CSS.",
|
||||
url: "https://www.tudattr.dev",
|
||||
tech: ["Rust", "Dioxus", "Tailwind CSS"]
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
name: "mtg-builder",
|
||||
description: "CLI Magic: The Gathering (Commander/EDH) deck-builder and collection manager using the Scryfall API, with exponential backoff retry logic.",
|
||||
url: "https://git.tudattr.dev/tudattr/mtg-builder",
|
||||
tech: ["Rust"]
|
||||
}
|
||||
]
|
||||
})
|
||||
});
|
||||
console.log('Initialized database with default CV data');
|
||||
|
||||
158
src/lib/cv.json
158
src/lib/cv.json
@@ -1,73 +1,151 @@
|
||||
{
|
||||
"personal": {
|
||||
"name": "Tuan-Dat Tran",
|
||||
"title": "Junior DevOps Engineer",
|
||||
"intro": "Passionierter DevOps Engineer mit Fokus auf Cloud-Infrastruktur, Container-Orchestrierung und automatisierte Deployment-Pipelines.",
|
||||
"email": "tuan-dat.tran@example.com",
|
||||
"github": "https://github.com/tuan-dat-tran",
|
||||
"linkedin": "https://linkedin.com/in/tuan-dat-tran",
|
||||
"location": "Deutschland"
|
||||
"title": "DevOps Engineer",
|
||||
"intro": "DevOps Engineer and Homelab Enthusiast based in Essen, Germany. Primary owner of a production aviation SaaS platform on Azure AKS, with a research background in P4 programmable networks and a co-authored IEEE publication.",
|
||||
"email": "tuan-dat.tran@dextradata.com",
|
||||
"github": "https://github.com/TuDatTr",
|
||||
"linkedin": "https://www.linkedin.com/in/tudattr/",
|
||||
"location": "Essen, Germany"
|
||||
},
|
||||
"experience": [
|
||||
{
|
||||
"id": 1,
|
||||
"role": "Junior DevOps Engineer",
|
||||
"company": "Unternehmen",
|
||||
"period": "Seit 2025",
|
||||
"type": "Vollzeit",
|
||||
"description": "Verantwortlich für CI/CD Pipelines, Container-Orchestrierung und Cloud-Infrastruktur auf Azure.",
|
||||
"role": "DevOps Engineer",
|
||||
"company": "DextraData GmbH",
|
||||
"period": "2025 – present",
|
||||
"type": "Full-time",
|
||||
"description": "Primary owner of the Logipad aviation SaaS platform and secondary owner of the GRASP GRC platform, both running on Azure AKS and Rancher-managed Kubernetes clusters.",
|
||||
"highlights": [
|
||||
"Automatisierte Deployments mit Jenkins und Bitbucket Pipelines",
|
||||
"Kubernetes Cluster Management mit Helm und ArgoCD",
|
||||
"Infrastructure as Code mit Azure Resource Manager"
|
||||
"Drives GitOps adoption with ArgoCD across production Kubernetes clusters",
|
||||
"Manages CI/CD pipelines with Jenkins and Bitbucket Pipelines",
|
||||
"Leads incident response for production outages",
|
||||
"Implemented Azure Container Registry mirroring to resolve Docker Hub rate limits",
|
||||
"Built internal AI tooling with LiteLLM and Ollama",
|
||||
"Promoted from Junior DevOps Engineer in January 2026"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"role": "Software Entwickler",
|
||||
"company": "Verschiedene Unternehmen",
|
||||
"period": "2021 - 2025",
|
||||
"type": "Teilzeit / Werkstudent / SHK",
|
||||
"description": "Entwicklung und Maintenance von Softwarelösungen in verschiedenen Rollen.",
|
||||
"role": "Research Assistant",
|
||||
"company": "NCS Group, Universität Duisburg-Essen",
|
||||
"period": "2021 – 2024",
|
||||
"type": "Part-time",
|
||||
"description": "Hands-on P4 and programmable data plane research on Intel Tofino ASICs and BMv2, culminating in a co-authored publication at IEEE LCN 2023 (Reverse Path Congestion Marking).",
|
||||
"highlights": [
|
||||
"Backend-Entwicklung mit Python",
|
||||
"Linux System Administration",
|
||||
"Git Version Control und Release Engineering"
|
||||
"Co-authored RPM paper published at IEEE LCN 2023",
|
||||
"Built a Dockerized federated LSTM system with custom client-selection strategies for 5G network research",
|
||||
"Implemented low-latency DASH video streaming on Kubernetes and WebRTC SVC simulcast",
|
||||
"Managed lab infrastructure: Ansible-automated servers, 100G NIC testbeds (Intel E810, Netronome)",
|
||||
"Administered AWS accounts, PartDB inventory system, and the group website"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"role": "Student Mentor",
|
||||
"company": "Universität Duisburg-Essen",
|
||||
"period": "2021 – 2022",
|
||||
"type": "Volunteer",
|
||||
"description": "Introduced groups of ~20 freshmen to their new academic environment at the start of each semester, providing organizational and technical guidance throughout their first year in the computer science programme.",
|
||||
"highlights": [
|
||||
"Guided new students through academic orientation each semester",
|
||||
"Provided technical and organizational support throughout the first year"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"role": "Software Engineer",
|
||||
"company": "gefeba Engineering GmbH",
|
||||
"period": "2018 – 2020",
|
||||
"type": "Part-time",
|
||||
"description": "Worked on the company's main product — a frame-based data exchange system for monitoring industrial machinery — and developed a real-time log visualization application.",
|
||||
"highlights": [
|
||||
"Developed features for a frame-based industrial data exchange system",
|
||||
"Built a real-time log visualization application for industrial machinery",
|
||||
"Stack: C#, Angular, Bootstrap, Entity Framework"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"role": "Student Council Member",
|
||||
"company": "Universität Duisburg-Essen",
|
||||
"period": "2016 – 2019",
|
||||
"type": "Volunteer",
|
||||
"description": "Participated in faculty committees and organized social events. Main responsibilities included managing the faculty's IT infrastructure and providing support to fellow students.",
|
||||
"highlights": [
|
||||
"Managed faculty IT infrastructure (Linux, Networking)",
|
||||
"Organized social events and participated in faculty committees",
|
||||
"Provided subject-specific and organizational support to fellow students"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"role": "Software Engineer",
|
||||
"company": "gefeba Engineering GmbH",
|
||||
"period": "2013 – 2015",
|
||||
"type": "Part-time",
|
||||
"description": "Joined after a school internship. Worked on internal ERP projects, designed a mail traffic management tool, and contributed to the internal master data management tool.",
|
||||
"highlights": [
|
||||
"Developed internal ERP project features",
|
||||
"Designed a tool for managing project-related mail traffic",
|
||||
"Contributed to internal master data management tooling",
|
||||
"Stack: C#, HTML, CSS, JavaScript"
|
||||
]
|
||||
}
|
||||
],
|
||||
"skills": {
|
||||
"Container & Orchestration": ["Docker", "Kubernetes", "Helm"],
|
||||
"CI/CD & GitOps": ["Jenkins", "Bitbucket", "ArgoCD", "Git"],
|
||||
"Cloud": ["Azure"],
|
||||
"Infrastructure as Code": ["Azure Resource Manager"],
|
||||
"Release Engineering": ["Release Engineering"],
|
||||
"Operating Systems": ["Linux Administration"],
|
||||
"Programming": ["Python", "Bash", "Rust"]
|
||||
"Container & Orchestration": ["Kubernetes", "Docker", "Helm"],
|
||||
"CI/CD & GitOps": ["ArgoCD", "Jenkins", "Bitbucket Pipelines", "Git"],
|
||||
"Cloud": ["Azure", "Azure AKS"],
|
||||
"Infrastructure as Code": ["Ansible"],
|
||||
"Observability": ["ELK Stack"],
|
||||
"Programming": ["Rust", "Python", "Bash", "P4"],
|
||||
"Research": ["Intel Tofino", "BMv2", "DPDK"]
|
||||
},
|
||||
"education": [
|
||||
{
|
||||
"id": 1,
|
||||
"degree": "Bachelor Informatik",
|
||||
"institution": "Universität",
|
||||
"period": "Laufend",
|
||||
"status": "Bachelorarbeit offen"
|
||||
"degree": "B.Sc. Systems Engineering",
|
||||
"institution": "Universität Duisburg-Essen",
|
||||
"period": "2015 – present",
|
||||
"status": "Bachelor thesis ongoing"
|
||||
}
|
||||
],
|
||||
"projects": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Projekt 1",
|
||||
"description": "Beschreibung folgt",
|
||||
"name": "Ethereum Smart Contract Fuzzer",
|
||||
"description": "A fuzzer for Ethereum smart contracts built as part of the bachelor thesis project.",
|
||||
"url": "#",
|
||||
"tech": ["Docker", "Kubernetes", "ArgoCD"]
|
||||
"tech": ["Rust"]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Projekt 2",
|
||||
"description": "Beschreibung folgt",
|
||||
"url": "#",
|
||||
"tech": ["Azure", "ARM", "Jenkins"]
|
||||
"name": "Homelab",
|
||||
"description": "Ansible-managed homelab serving as a platform for learning and experimenting with new technologies through automated provisioning and configuration management.",
|
||||
"url": "https://git.tudattr.dev",
|
||||
"tech": ["Ansible", "Kubernetes"]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": ".dotfiles",
|
||||
"description": "Configuration files for daily-use tools providing a reproducible baseline for any personal ArchLinux system, including NeoVim (LazyVim), Zellij, and k9s setups.",
|
||||
"url": "https://github.com/TuDatTr",
|
||||
"tech": ["Shell", "NeoVim", "ArchLinux"]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "tudattr.dev",
|
||||
"description": "Full-stack WebAssembly personal website built with the Rust-based Dioxus framework and Tailwind CSS.",
|
||||
"url": "https://www.tudattr.dev",
|
||||
"tech": ["Rust", "Dioxus", "Tailwind CSS"]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "mtg-builder",
|
||||
"description": "CLI Magic: The Gathering (Commander/EDH) deck-builder and collection manager using the Scryfall API, with exponential backoff retry logic.",
|
||||
"url": "https://git.tudattr.dev/tudattr/mtg-builder",
|
||||
"tech": ["Rust"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user