Update profile to AI Solution Architect role and add AI/ML skills

Reflect career progression from Technical Product Owner to AI Solution
Architect & Technical Architect (since June 2024). Add AI & ML skill
category (LangChain, RAG, Agentic Systems, MCP Server). Pin dependency
versions, clean up config, move favicon, and add new PDF assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 15:19:33 +01:00
co-authored by Claude Opus 4.6
parent 70caf7567b
commit 4a5155eb1e
10 changed files with 141 additions and 90 deletions
+45 -14
View File
@@ -15,17 +15,36 @@ interface Job {
const jobs: Job[] = [
{
id: 'job1',
title: 'Technischer Product Owner',
company: 'IT im Bereich Finanzen und Banken',
location: 'Regulatory & Risk, Nürnberg',
period: 'Juni 2021 - heute',
description: 'Technischer Product Owner in einem Nürnberger Unternehmen, welches die komplette Banken IT steuert.',
title: 'AI Solution Architect & Technical Architect',
company: 'Sopra Financial Technology GmbH',
location: 'Managed Application & Cloud Service, Nürnberg',
period: 'Juni 2024 - heute',
description: 'Konzeption und Implementierung von Enterprise-AI-Lösungen für regulierte Fintech-Produkte im Bereich Antifinancial Crime (AFC) und Compliance. Architektonische Begleitung mit Fokus auf Cloud-Native-Architekturen.',
responsibilities: [
'Sicherstellung des Betriebs',
'Planung und Priorisierung der Ressourcen & Aufgaben',
'Technische Kommunikation und Architektur',
'Migration der Infrastruktur K8s on prem & Cloud',
'Aufbau neuer Services',
'Architektonische Konzeption von KI-Initiativen im regulierten Bankenumfeld (BaFin/KRITIS)',
'Design und Implementierung von AI Agentic Systemen für AFC-Compliance',
'Aufbau skalierbarer RAG-basierter Knowledge-Management-Architekturen mit Vector Databases',
'Implementierung von LangChain/LangGraph-basierten Workflows in Python',
'Integration von MCP-Servern für erweiterte AI-Funktionalitäten',
'Design skalierbarer Cloud-Infrastrukturen auf Azure- und AWS-Basis',
'Infrastructure-as-Code mit Terraform und Ansible',
'Technische Konzepte und Architekturdokumentation für Kundenangebote',
],
},
{
id: 'job1b',
title: 'Technical Architect & Technical Product Owner',
company: 'Sopra Financial Technology GmbH',
location: 'Regulatory & Risk, Nürnberg',
period: 'Juni 2021 - Juni 2024',
description: 'Verantwortung für Betrieb und Weiterentwicklung der Fintech-Produkte Abacus360, Okular und zeb.Trading im Bankenmeldewesen. Sicherstellung des störungsfreien Betriebs unter Einhaltung strenger SLA und regulatorischer Vorgaben.',
responsibilities: [
'Technische Projektleitung der Kubernetes-Migration ohne Ausfallzeiten',
'Steuerung internationaler Teams inkl. Nearshore-Partner (Polen)',
'Anforderungsmanagement und Priorisierung technischer Features',
'Sicherstellung der technischen und regulatorischen Compliance',
'Ressourcen- und Budgetplanung, Reporting an Management',
'Aktive Teilnahme am Cost-Savings-Programm',
],
},
{
@@ -202,14 +221,26 @@ export default function Experience() {
<div className="mt-8 pt-6 border-t border-gray-200">
<div className="flex flex-wrap gap-2">
{activeJob === 0 && (
<>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">LangChain / LangGraph</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">RAG & Vector DB</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">AI Agentic Systems</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">MCP Server</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Azure / AWS</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Terraform</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Python</span>
</>
)}
{activeJob === 1 && (
<>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Kubernetes</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Cloud Migration</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Systemarchitektur</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Financial IT</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Compliance</span>
</>
)}
{activeJob === 1 && (
{activeJob === 2 && (
<>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Kubernetes</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Mobile Apps</span>
@@ -217,7 +248,7 @@ export default function Experience() {
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Digitalisierung</span>
</>
)}
{activeJob === 2 && (
{activeJob === 3 && (
<>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">E-Commerce</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Laravel</span>
@@ -226,7 +257,7 @@ export default function Experience() {
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Team Leadership</span>
</>
)}
{activeJob === 3 && (
{activeJob === 4 && (
<>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Joomla</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">E-Mail Marketing</span>
@@ -236,7 +267,7 @@ export default function Experience() {
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">Print Design</span>
</>
)}
{activeJob === 4 && (
{activeJob === 5 && (
<>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">HTML/CSS/JS</span>
<span className="px-3 py-1 bg-primary/10 text-primary text-xs font-semibold rounded-full">CMS Development</span>
+32 -26
View File
@@ -36,22 +36,23 @@ export default function Intro() {
];
const skills = [
'AI Solution Architecture',
'LangChain / LangGraph',
'RAG & Vector Databases',
'Technical Architecture',
'Kubernetes & Cloud',
'Product Owner',
'Technical Project Manager',
'Python',
'Laravel',
'Vue.js',
'PHP',
'JavaScript',
'MySQL',
'MSSQL',
'Systemarchitektur',
'User Experience',
'Team Leadership',
'Compliance',
'Compliance & Regulatorik',
];
const timeline = [
{ year: '2021 - heute', company: 'Sopra Financial Technology GmbH', role: 'Technical Product Owner' },
{ year: '2024 - heute', company: 'Sopra Financial Technology GmbH', role: 'AI Solution Architect & Technical Architect' },
{ year: '2021 - 2024', company: 'Sopra Financial Technology GmbH', role: 'Technical Product Owner Bankenmeldewesen' },
{ year: '2019 - 2020', company: 'APPsolute Mobility', role: 'Product Owner & Technical Project Manager' },
{ year: '2014 - 2019', company: 'SCC Fahrzeugtechnik GmbH', role: 'Leiter IT Abteilung' },
{ year: '2010 - 2014', company: 'Trustec Energy GmbH', role: 'Marketing Manager' },
@@ -158,31 +159,36 @@ export default function Intro() {
<p>
Bei der{' '}
<strong className="text-text font-semibold">Sopra Financial Technology GmbH</strong> bin
ich seit 2021 als{' '}
<strong className="text-text font-semibold">Technical Product Owner</strong> im
Bereich Regulatory & Risk tätig. Ich verantworte{' '}
<strong className="text-text font-semibold">Sopra Financial Technology GmbH</strong> war
ich seit 2021 zunächst als{' '}
<strong className="text-text font-semibold">Technical Product Owner</strong> im
Bereich Regulatory & Risk tätig. Ich verantwortete{' '}
<strong className="text-text font-semibold">3 Fintech-Produkte</strong> im{' '}
<strong className="text-text font-semibold">Bankenmeldewesen</strong> und stelle
deren reibungslosen Betrieb unter strikten{' '}
<strong className="text-text font-semibold">regulatorischen Vorgaben</strong> sicher.
<strong className="text-text font-semibold">Bankenmeldewesen</strong> (Abacus360, Okular, zeb.Trading) und
leitete u.a. die erfolgreiche{' '}
<strong className="text-text font-semibold">Kubernetes-Migration ohne Ausfallzeiten</strong>{' '}
unter strikten regulatorischen Vorgaben.
</p>
<p>
Zu meinen Kernaufgaben gehören die{' '}
Seit Juni 2024 bin ich als{' '}
<strong className="text-text font-semibold">AI Solution Architect</strong> und{' '}
<strong className="text-text font-semibold">Technical Architect</strong> tätig.
Ich konzipiere und begleite die unternehmensweite{' '}
<strong className="text-text font-semibold">KI-Initiative im regulierten Bankenumfeld</strong>
von{' '}
<strong className="text-text font-semibold">
technische Projektleitung komplexer Migrationen
AI Agentic Systems und RAG-basierten Knowledge-Management-Architekturen
</strong>{' '}
(z.B. Kubernetes-Migration ohne Ausfallzeiten), die Steuerung{' '}
bis hin zu{' '}
<strong className="text-text font-semibold">
internationaler Teams (inkl. Nearshore)
</strong>, Code Reviews sowie die aktive Teilnahme an{' '}
<strong className="text-text font-semibold">Cost-Savings-Programmen</strong>.
Darüber hinaus arbeite ich in den Bereichen{' '}
<strong className="text-text font-semibold">
Managed Application & Cloud Service
</strong>, wo ich neue Produkte architektonisch begleite und bei
Bieterverfahren meine Expertise einbringe.
LangChain/LangGraph-Workflows
</strong>{' '}
und der Integration von MCP-Servern. Gleichzeitig verantworte ich als Technical Architect
Cloud-Native-Architekturen auf{' '}
<strong className="text-text font-semibold">Azure und AWS</strong> mit{' '}
<strong className="text-text font-semibold">Kubernetes, Terraform und Ansible</strong>{' '}
und unterstütze bei Bieterverfahren mit technischer Expertise.
</p>
<p className="pt-4 border-t border-gray-200">
+23 -14
View File
@@ -9,32 +9,40 @@ interface Skill {
}
const skillsData: Skill[] = [
// AI & ML
{ name: 'LangChain / LangGraph', level: 4, category: 'AI & ML' },
{ name: 'RAG & Vector Databases', level: 4, category: 'AI & ML' },
{ name: 'LLMs (Ollama, LM Studio, Claude)', level: 4, category: 'AI & ML' },
{ name: 'AI Agentic Systems', level: 4, category: 'AI & ML' },
{ name: 'MCP Server Integration', level: 3, category: 'AI & ML' },
{ name: 'Prompt Engineering', level: 4, category: 'AI & ML' },
// Programmiersprachen
{ name: 'Python', level: 4, category: 'Programmiersprachen' },
{ name: 'PHP & FW Laravel', level: 4, category: 'Programmiersprachen' },
{ name: 'Python & Perl', level: 4, category: 'Programmiersprachen' },
{ name: 'JavaScript', level: 4, category: 'Programmiersprachen' },
{ name: 'Node.js', level: 3, category: 'Programmiersprachen' },
{ name: 'Vue.js / Next.js', level: 4, category: 'Programmiersprachen' },
{ name: 'HTML', level: 5, category: 'Programmiersprachen' },
{ name: 'CSS & Frameworks', level: 5, category: 'Programmiersprachen' },
{ name: 'Sass', level: 4, category: 'Programmiersprachen' },
// Datenbanken
{ name: 'SQL (MS/DB2/Oracle)', level: 4, category: 'Datenbanken' },
{ name: 'MySQL, MariaDB, Postgres', level: 4, category: 'Datenbanken' },
{ name: 'ChromaDB / Vector DBs', level: 3, category: 'Datenbanken' },
{ name: 'Redis', level: 4, category: 'Datenbanken' },
{ name: 'MongoDB', level: 3, category: 'Datenbanken' },
{ name: 'CouchDB', level: 3, category: 'Datenbanken' },
{ name: 'Firebase', level: 1, category: 'Datenbanken' },
// DevOps
{ name: 'Linux Bash Scripting', level: 4, category: 'DevOps' },
{ name: 'Git / SVN', level: 4, category: 'DevOps' },
{ name: 'Docker / Kubernetes', level: 3, category: 'DevOps' },
{ name: 'AWS', level: 3, category: 'DevOps' },
{ name: 'CI/CD Pipelines', level: 4, category: 'DevOps' },
{ name: 'Draw.io Architektur', level: 4, category: 'DevOps' },
// DevOps & Cloud
{ name: 'Linux Bash Scripting', level: 4, category: 'DevOps & Cloud' },
{ name: 'Git / SVN', level: 4, category: 'DevOps & Cloud' },
{ name: 'Docker / Kubernetes', level: 4, category: 'DevOps & Cloud' },
{ name: 'Terraform / Ansible', level: 3, category: 'DevOps & Cloud' },
{ name: 'AWS / Azure', level: 3, category: 'DevOps & Cloud' },
{ name: 'CI/CD Pipelines', level: 4, category: 'DevOps & Cloud' },
// Grafik & Design
{ name: 'Adobe Suite (u.a. PS/XD)', level: 4, category: 'Grafik & Design' },
{ name: 'Affinity', level: 4, category: 'Grafik & Design' },
@@ -42,14 +50,15 @@ const skillsData: Skill[] = [
];
const categories = [
'AI & ML',
'Programmiersprachen',
'Datenbanken',
'DevOps',
'DevOps & Cloud',
'Grafik & Design',
];
export default function Skills() {
const [activeCategory, setActiveCategory] = useState<string>('Programmiersprachen');
const [activeCategory, setActiveCategory] = useState<string>('AI & ML');
const [isVisible, setIsVisible] = useState(false);
const ref = useRef<HTMLElement>(null);
+2 -2
View File
@@ -1,9 +1,9 @@
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
output: 'export', // Statischer Export aktivieren
output: 'export',
images: {
unoptimized: true, // Next.js Image Optimierung deaktivieren (für statischen Export nötig)
unoptimized: true,
},
};
+13 -22
View File
@@ -15,13 +15,13 @@
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/node": "20.19.33",
"@types/react": "19.2.13",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.5.4",
"tailwindcss": "^4",
"typescript": "^5"
"typescript": "5.9.3"
}
},
"node_modules/@alloc/quick-lru": {
@@ -1291,9 +1291,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "20.19.19",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.19.tgz",
"integrity": "sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==",
"version": "20.19.33",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz",
"integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1301,14 +1301,13 @@
}
},
"node_modules/@types/react": {
"version": "19.1.16",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.16.tgz",
"integrity": "sha512-WBM/nDbEZmDUORKnh5i1bTnAz6vTohUf9b8esSMu+b24+srbaxa04UbJgWx78CVfNXA20sNu0odEIluZDFdCog==",
"version": "19.2.13",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz",
"integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"csstype": "^3.0.2"
"csstype": "^3.2.2"
}
},
"node_modules/@types/react-dom": {
@@ -1367,7 +1366,6 @@
"integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.45.0",
"@typescript-eslint/types": "8.45.0",
@@ -1885,7 +1883,6 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2353,9 +2350,9 @@
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"dev": true,
"license": "MIT"
},
@@ -2736,7 +2733,6 @@
"integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -2911,7 +2907,6 @@
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.9",
@@ -5034,7 +5029,6 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5044,7 +5038,6 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
"license": "MIT",
"peer": true,
"dependencies": {
"scheduler": "^0.26.0"
},
@@ -5738,7 +5731,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -5888,7 +5880,6 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
+8 -8
View File
@@ -10,19 +10,19 @@
"copy-assets": "bash copy-assets.sh"
},
"dependencies": {
"next": "15.5.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"next": "15.5.4"
"react-dom": "19.1.0"
},
"devDependencies": {
"typescript": "^5",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4",
"tailwindcss": "^4",
"@types/node": "20.19.33",
"@types/react": "19.2.13",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.5.4",
"@eslint/eslintrc": "^3"
"tailwindcss": "^4",
"typescript": "5.9.3"
}
}

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

+18 -4
View File
@@ -1,7 +1,11 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@@ -19,9 +23,19 @@
}
],
"paths": {
"@/*": ["./*"]
"@/*": [
"./*"
]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"include": [
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"next-env.d.ts",
"./.next/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}