Showing source for: https://dozent.net/
Duration: 0.226375s
Server: Apache
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="alternate icon" href="/favicon.ico">
<link rel="preload" href="/fonts/inter-latin.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/inter-latin-ext.woff2" as="font" type="font/woff2" crossorigin>
<title>SQL Server, PostgreSQL & KI: Wissenstransfer | dozent.net</title>
<link rel="canonical" href="https://dozent.net/">
<meta property="og:title" content="SQL Server, PostgreSQL & KI: Wissenstransfer | dozent.net">
<meta property="og:description" content="Entwicklung, Beratung und Schulung für datengetriebene Software: SQL Server, SSRS/SSAS, PostgreSQL, Programmierung und KI – vor Ort oder remote.">
<meta property="og:image" content="https://dozent.net/og/33/card-de-6a8ab236963e9480.png?v=10f9c263">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Wissenstransfer: Entwicklung, Beratung und Schulung">
<meta property="og:url" content="https://dozent.net/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="dozent.net">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="SQL Server, PostgreSQL & KI: Wissenstransfer | dozent.net">
<meta name="twitter:description" content="Entwicklung, Beratung und Schulung für datengetriebene Software: SQL Server, SSRS/SSAS, PostgreSQL, Programmierung und KI – vor Ort oder remote.">
<meta name="twitter:image" content="https://dozent.net/og/33/card-de-6a8ab236963e9480.png?v=10f9c263">
<meta name="twitter:image:alt" content="Wissenstransfer: Entwicklung, Beratung und Schulung">
<meta name="twitter:url" content="https://dozent.net/">
<meta name="description" content="Entwicklung, Beratung und Schulung für datengetriebene Software: SQL Server, SSRS/SSAS, PostgreSQL, Programmierung und KI – vor Ort oder remote.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="3aa0e10a84f92765ee426cd39c1984bf5a5c0ea79dd7ef3fab95dba3e0356e05">
<meta name="geo.region" content="DE-NW">
<meta name="geo.placename" content="Leverkusen, Köln">
<meta name="geo.position" content="51.0378;7.0275">
<meta name="ICBM" content="51.0378, 7.0275">
<script>
(function() {
try {
var localTheme = localStorage.getItem('theme');
var themeToSet = localTheme;
if (!localTheme) {
themeToSet = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
document.documentElement.setAttribute('data-theme', themeToSet);
} catch (e) {}
})();
</script>
<script>
(function() {
try {
var serverMode = null;
var mode = serverMode || localStorage.getItem('displayMode') || 'normal';
if (mode !== 'normal' && mode !== 'mini') mode = 'normal';
document.documentElement.setAttribute('data-display-mode', mode);
if (serverMode) localStorage.setItem('displayMode', serverMode);
} catch (e) {}
})();
</script>
<style id="page-loader-css">.synapse-loader {
width: 160px;
height: 160px;
position: relative;
display: grid;
place-items: center;
filter: drop-shadow(0 0 10px #00eaff);
}
.core {
width: 35px;
height: 35px;
border-radius: 50%;
background: radial-gradient(circle, #00eaff, #0066ff);
box-shadow: 0 0 25px #00eaff, 0 0 50px #0099ff;
animation: pulse 1.8s infinite ease-in-out;
}
.particle {
width: 12px;
height: 12px;
background: #00eaff;
border-radius: 50%;
position: absolute;
box-shadow: 0 0 15px #00eaff;
}
.p1 { animation: orbit1 2.8s linear infinite; }
.p2 { animation: orbit2 3.2s linear infinite; }
.p3 { animation: orbit3 3.6s linear infinite; }
.p4 { animation: orbit4 4.0s linear infinite; }
.p5 { animation: orbit5 4.4s linear infinite; }
.ring {
position: absolute;
width: 100%;
height: 100%;
border: 2px dashed rgba(0, 200, 255, 0.5);
border-radius: 50%;
animation: rotate 10s linear infinite;
box-shadow: 0 0 18px #00eaff60;
}
/* Animations */
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.25); }
100% { transform: scale(1); }
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
/* Orbital particle paths – neural style */
@keyframes orbit1 {
0% { transform: rotate(0deg) translateX(60px) rotate(0deg); }
100% { transform: rotate(360deg) translateX(60px) rotate(-360deg); }
}
@keyframes orbit2 {
0% { transform: rotate(0deg) translateY(60px) rotate(0deg); }
100% { transform: rotate(360deg) translateY(60px) rotate(-360deg); }
}
@keyframes orbit3 {
0% { transform: rotate(0deg) translateX(-60px) rotate(0deg); }
100% { transform: rotate(360deg) translateX(-60px) rotate(-360deg); }
}
@keyframes orbit4 {
0% { transform: rotate(0deg) translateY(-60px) rotate(0deg); }
100% { transform: rotate(360deg) translateY(-60px) rotate(-360deg); }
}
@keyframes orbit5 {
0% { transform: rotate(0deg) translateX(40px) translateY(40px) rotate(0deg); }
100% { transform: rotate(360deg) translateX(40px) translateY(40px) rotate(-360deg); }
}</style>
<link rel="stylesheet" href="/css/base.css?v=1791916438">
<link rel="stylesheet" href="/css/databula.css?v=1792166091">
<link rel="stylesheet" href="/css/landing.css?v=1791916438">
<link rel="stylesheet" href="/css/sidebar.css?v=1787585028">
<link rel="stylesheet" href="/css/website.css?v=1791787683">
<link rel="stylesheet" href="/css/cms-form.css?v=1786691115">
<link rel="stylesheet" href="/css/prism.css?v=1790593728">
<link rel="stylesheet" href="/css/site-dozent.css?v=1784108157">
<template id="page-loader-tpl"><div class="synapse-loader">
<div class="core"></div>
<div class="particle p1"></div>
<div class="particle p2"></div>
<div class="particle p3"></div>
<div class="particle p4"></div>
<div class="particle p5"></div>
<div class="ring"></div>
</div></template>
<script>window.APP={"isMember":false,"siteName":"dozent.net","showLoginBanner":false,"gaMeasurementId":null,"registerUrl":"/register","loginUrl":"/login","checkoutUrl":"/checkout","featuresUrl":"/funktionen-im-ueberblick","privacyUrl":null};</script>
<script>window.MI_ICONS={"skip_previous":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M220-240v-480h80v480h-80Zm520 0L380-480l360-240v480Zm-80-240Zm0 90v-180l-136 90 136 90Z\"/></svg>","navigate_before":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/></svg>","navigate_next":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/></svg>","skip_next":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M660-240v-480h80v480h-80Zm-440 0v-480l360 240-360 240Zm80-240Zm0 90 136-90-136-90v180Z\"/></svg>","arrow_upward":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z\"/></svg>","arrow_downward":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M440-800v487L216-537l-56 57 320 320 320-320-56-57-224 224v-487h-80Z\"/></svg>","trending_up":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"m136-240-56-56 296-298 160 160 208-206H640v-80h240v240h-80v-104L536-320 376-480 136-240Z\"/></svg>","subdirectory_arrow_right":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"m560-120-57-57 144-143H200v-480h80v400h367L503-544l56-57 241 241-240 240Z\"/></svg>","swap_vert":"<svg class=\"icon-svg\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M320-440v-287L217-624l-57-56 200-200 200 200-57 56-103-103v287h-80ZM600-80 400-280l57-56 103 103v-287h80v287l103-103 57 56L600-80Z\"/></svg>"};</script>
<script>window.MI_I18N=[];window.MI_LOCALE="de-DE";window.MI_T=function(de,vars){let s=(window.MI_I18N&&window.MI_I18N[de])||de;if(vars)for(const k in vars)if(Object.prototype.hasOwnProperty.call(vars,k))s=s.split("{"+k+"}").join(vars[k]);return s;};</script>
<script src="/js/jquery-4.0.0.min.js?v=1772047017"></script>
<script src="/js/jquery.ui.msgbox.js?v=1779294232"></script>
<script src="/js/databula.js?v=1792146218"></script>
<script src="/js/code.js?v=1792146217"></script>
<script src="/js/tooltip.js?v=1790919877"></script>
<script src="/js/share.js?v=1781887419"></script>
<script src="/js/disclaimer-dismiss.js?v=1785921709"></script>
<script src="/js/prism/prism-core.min.js?v=1776235346"></script>
<script src="/js/prism/prism-markup.min.js?v=1776235346"></script>
<script src="/js/prism/prism-clike.min.js?v=1776235347"></script>
<script src="/js/prism/prism-css.min.js?v=1776235346"></script>
<script src="/js/prism/prism-javascript.min.js?v=1776235347"></script>
<script src="/js/prism/prism-bash.min.js?v=1776235347"></script>
<script src="/js/prism/prism-sql.min.js?v=1776235347"></script>
<script src="/js/prism/prism-markup-templating.min.js?v=1776235347"></script>
<script src="/js/prism/prism-php.min.js?v=1776235347"></script>
<script src="/js/prism/prism-ini.min.js?v=1776235348"></script>
<script src="/js/prism/prism-json.min.js?v=1776235348"></script>
<script src="/js/prism/prism-diff.min.js?v=1776235348"></script>
<script src="/js/prism/prism-init.js?v=1776239709"></script>
<script src="/js/article-figures.js?v=1786731809"></script>
<script type="application/ld+json">[{"@context":"https://schema.org","@graph":[{"@type":"Article","headline":"Wissenstransfer: Entwicklung, Beratung und Schulung","description":"IT-Beratung: Datenanalyse, Reporting, Entwicklung, Consulting und Seminare.","author":{"name":"Frank Glück","@type":"Person","@id":"https://dozent.net/#person"},"datePublished":"2026-03-22T19:22:00+01:00","dateModified":"2026-10-14T16:48:50+02:00","url":"https://dozent.net/","image":"https://dozent.net/img/dozent-preview.png","publisher":{"name":"dozent.net","@type":"Organization","@id":"https://dozent.net/#organization"}},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Was heißt Wissenstransfer konkret?","acceptedAnswer":{"@type":"Answer","text":"Dass euer Team nach der Zusammenarbeit selbst weiterkommt. Beim Mitentwickeln stehen Entscheidungen und Begründungen im Repository, bei der Beratung sind Empfehlungen so begründet, dass ihr sie nachprüfen könnt, und bei Schulungen arbeitet ihr möglichst an euren eigenen Systemen."}},{"@type":"Question","name":"Muss ich mich zwischen Entwicklung, Beratung und Schulung entscheiden?","acceptedAnswer":{"@type":"Answer","text":"Nein. Viele Vorhaben beginnen mit einer Analyse, gehen in gemeinsame Umsetzung über und enden mit einem Workshop für das Team. Was sinnvoll ist, klären wir im ersten Gespräch."}},{"@type":"Question","name":"Mit welchen Technologien arbeitest du?","acceptedAnswer":{"@type":"Answer","text":"Mit relationalen Datenbanken – vor allem Microsoft SQL Server und PostgreSQL, dazu Oracle und weitere Systeme bei Migrationen –, mit dem Berichtswesen in SQL Server Reporting Services und Analysis Services, mit Programmiersprachen von T-SQL und PL/pgSQL über PHP und JavaScript bis C und C++ sowie mit KI in der Softwareentwicklung (Claude Code, lokale Modelle mit Ollama)."}},{"@type":"Question","name":"Findet die Zusammenarbeit vor Ort oder remote statt?","acceptedAnswer":{"@type":"Answer","text":"Beides ist möglich: remote oder bei euch vor Ort, im Raum Köln/Leverkusen und bundesweit."}},{"@type":"Question","name":"Wie fängt eine Zusammenarbeit an?","acceptedAnswer":{"@type":"Answer","text":"Mit einem Gespräch über euer Vorhaben. Danach bekommt ihr einen Vorschlag, wie ich unterstützen kann. Die Anfrage ist unverbindlich und kostenlos. Worum geht es bei euch?\n Erzählt mir kurz von eurem Vorhaben – ich melde mich mit einem Vorschlag, wie ich unterstützen kann.\n \n Vorhaben besprechen"}}]}]},{"@context":"https://schema.org","@type":"WebSite","@id":"https://dozent.net/#website","name":"dozent.net","url":"https://dozent.net/","inLanguage":"de","alternateName":"Glück IT","publisher":{"@id":"https://dozent.net/#organization"}},{"@context":"https://schema.org","@graph":[{"@type":"Person","@id":"https://dozent.net/#person","name":"Frank Glück","jobTitle":"IT-Dozent, Software-Architekt & Datenbank-Spezialist","description":"Freiberuflicher IT-Trainer und Senior Software-Architekt: Softwareentwicklung seit 1986 (erste kommerzielle Projekte mit 14 Jahren) und über 30 Jahre Erfahrung in IT-Schulung und Datenbank-Optimierung (SQL Server, PostgreSQL), heute auch mit Schwerpunkt KI.","url":"https://dozent.net/profil","sameAs":"https://github.com/fglueck","knowsAbout":["PostgreSQL Administration & Performance Tuning","Microsoft SQL Server & T-SQL","Relationales Datenbankdesign & Migration","PHP & Moderne Web-Architektur","Künstliche Intelligenz in der Softwareentwicklung & Lokale LLMs"],"address":{"@type":"PostalAddress","streetAddress":"Mülhausener Straße 4a","addressLocality":"Leverkusen","postalCode":"51375","addressRegion":"Nordrhein-Westfalen","addressCountry":"DE"},"worksFor":{"@type":"EducationalOrganization","@id":"https://dozent.net/#organization"}},{"@type":"EducationalOrganization","@id":"https://dozent.net/#organization","name":"dozent.net — Frank Glück IT-Schulungen","url":"https://dozent.net","logo":"https://dozent.net/img/dozent-preview.png","alternateName":"Glück IT","legalName":"Glück IT","email":"[email protected]","telephone":"+49 214 23088806","address":{"@type":"PostalAddress","streetAddress":"Mülhausener Straße 4a","addressLocality":"Leverkusen","postalCode":"51375","addressRegion":"Nordrhein-Westfalen","addressCountry":"DE"},"geo":{"@type":"GeoCoordinates","latitude":51.0378,"longitude":7.0275},"areaServed":[{"@type":"AdministrativeArea","name":"Deutschland"},{"@type":"AdministrativeArea","name":"Österreich"},{"@type":"AdministrativeArea","name":"Schweiz"},{"@type":"AdministrativeArea","name":"Nordrhein-Westfalen"},{"@type":"AdministrativeArea","name":"Köln"},{"@type":"AdministrativeArea","name":"Leverkusen"}],"sameAs":["https://github.com/glueck-it","https://glueck.it"],"founder":{"@id":"https://dozent.net/#person"}}]}]</script>
<script type="application/json" id="app-shortcuts-data">[{"group":"Allgemein","shortcuts":[{"keys":["F1"],"label":"Diese Tastenkombinations-Übersicht"},{"keys":["Esc"],"label":"Dialog \/ Menü schließen"}]}]</script>
</head>
<body>
<header class="site-header noprint">
<div class="site-header-inner">
<a href="/" class="site-header-brand">dozent.net</a>
<nav class="site-header-nav">
<a href="https://ibou.net/" class="site-header-nav-item">ibou.net</a><a href="https://inside-filings.com/" class="site-header-nav-item">Inside-Filings</a><a href="https://skilltest.de/" class="site-header-nav-item">Skilltest</a>
</nav>
<div class="site-header-actions">
<a href="/kontakt/kontakt" class="btn btn--primary">Projekt anfragen</a>
<details class="info-menu noprint" name="header-menu">
<summary class="btn info-menu-toggle" title="Information & Rechtliches: Impressum, Datenschutz, Kontakt" aria-label="Information & Rechtliches: Impressum, Datenschutz, Kontakt">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
<span class="info-menu-label">Info</span>
</summary>
<nav class="info-menu-panel">
<a href="/informationen/agb" class="info-menu-link">AGB</a>
<a href="/informationen/impressum" class="info-menu-link">Impressum</a>
<a href="/kontakt/kontakt" class="info-menu-link">Kontakt</a>
<a href="/informationen/datenschutz" class="info-menu-link">Datenschutzerklärung</a>
</nav>
</details>
<button type="button" class="share-launch" data-share-open
data-tooltip="Diese Seite teilen" aria-label="Diese Seite teilen" aria-haspopup="dialog">
<svg class="icon-svg" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M720-80q-50 0-85-35t-35-85q0-7 1-14.5t3-13.5L322-392q-17 15-38 23.5t-44 8.5q-50 0-85-35t-35-85q0-50 35-85t85-35q23 0 44 8.5t38 23.5l282-164q-2-6-3-13.5t-1-14.5q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35q-23 0-44-8.5T658-672L376-508q2 6 3 13.5t1 14.5q0 7-1 14.5t-3 13.5l282 164q17-15 38-23.5t44-8.5q50 0 85 35t35 85q0 50-35 85t-85 35Z"/></svg>
</button>
<button type="button" class="btn" id="btn-display-mode" onclick="app.toggleDisplayMode()" title="Ansicht Normal/Kompakt umschalten" aria-label="Anzeige-Modus umschalten">
<span class="display-mode-icon"></span>
</button>
<button type="button" class="btn" id="btn-theme-toggle" onclick="app.toggleTheme()" title="Design umschalten" aria-label="Design umschalten">
<span class="theme-icon"></span>
<span class="theme-text"></span>
</button>
</div>
</div>
</header>
<div id="share-modal" class="app-modal" hidden>
<div class="app-modal__backdrop" data-modal-close></div>
<div class="app-modal__dialog" role="dialog" aria-modal="true" aria-label="Diese Seite teilen">
<div class="app-modal__header">
<h3 class="app-modal__title">Diese Seite teilen</h3>
<button type="button" class="btn share-modal-close" data-modal-close aria-label="Schließen"><svg class="icon-svg" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></button>
</div>
<div class="app-modal__body">
<div class="share-targets">
<button type="button" class="share-target share-target--whatsapp" data-share-target="whatsapp">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.9 9.9 0 0 0 4.79 1.22h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.82 9.82 0 0 0 12.04 2Zm0 1.67c2.2 0 4.27.86 5.82 2.42a8.2 8.2 0 0 1 2.42 5.82c0 4.54-3.7 8.23-8.24 8.23-1.48 0-2.93-.4-4.19-1.15l-.3-.18-3.12.82.83-3.04-.2-.31a8.18 8.18 0 0 1-1.26-4.38c0-4.54 3.7-8.23 8.24-8.23Zm-3.2 4.43c-.15 0-.4.06-.61.28-.21.22-.8.79-.8 1.92s.82 2.23.94 2.38c.11.15 1.61 2.46 3.9 3.45.54.23.97.37 1.3.48.55.17 1.05.15 1.44.09.44-.07 1.35-.55 1.54-1.08.19-.53.19-.99.13-1.08-.06-.09-.21-.15-.44-.26-.23-.11-1.35-.67-1.56-.74-.21-.08-.36-.11-.51.11-.15.22-.59.74-.72.89-.13.15-.27.17-.5.06-.23-.11-.96-.35-1.83-1.13-.68-.6-1.13-1.35-1.27-1.57-.13-.22-.01-.34.1-.45.1-.1.23-.27.34-.4.11-.13.15-.22.23-.37.08-.15.04-.28-.02-.4-.06-.11-.51-1.24-.7-1.69-.18-.44-.37-.38-.51-.39h-.43Z"/></svg><span>WhatsApp</span>
</button><button type="button" class="share-target share-target--x" data-share-target="x">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.66l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117l11.966 15.644Z"/></svg><span>X</span>
</button><button type="button" class="share-target share-target--facebook" data-share-target="facebook">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M24 12.07C24 5.4 18.63 0 12 0S0 5.4 0 12.07c0 6.03 4.39 11.03 10.13 11.93v-8.44H7.08v-3.49h3.05V9.41c0-3.02 1.79-4.69 4.53-4.69 1.31 0 2.69.24 2.69.24v2.97h-1.52c-1.49 0-1.96.93-1.96 1.89v2.25h3.33l-.53 3.49h-2.8V24C19.61 23.1 24 18.1 24 12.07Z"/></svg><span>Facebook</span>
</button><button type="button" class="share-target share-target--linkedin" data-share-target="linkedin">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.13 1.45-2.13 2.94v5.67H9.35V9h3.42v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 0 1-2.07-2.06c0-1.14.93-2.07 2.07-2.07 1.14 0 2.06.93 2.06 2.07 0 1.14-.92 2.06-2.06 2.06Zm1.78 13.02H3.56V9h3.56v11.45ZM22.22 0H1.77C.79 0 0 .77 0 1.73v20.54C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.73V1.73C24 .77 23.2 0 22.22 0Z"/></svg><span>LinkedIn</span>
</button><button type="button" class="share-target share-target--telegram" data-share-target="telegram">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M11.94 2C6.46 2 2 6.46 2 11.94c0 5.48 4.46 9.94 9.94 9.94s9.94-4.46 9.94-9.94C21.88 6.46 17.42 2 11.94 2Zm4.6 6.84-1.54 7.25c-.11.52-.42.64-.86.4l-2.37-1.75-1.14 1.1c-.13.13-.24.24-.48.24l.17-2.42 4.4-3.98c.19-.17-.04-.27-.3-.1l-5.43 3.42-2.34-.73c-.51-.16-.52-.51.11-.76l9.14-3.52c.42-.16.79.1.65.76Z"/></svg><span>Telegram</span>
</button><button type="button" class="share-target share-target--reddit" data-share-target="reddit">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M22 12.07c0-1.2-.97-2.17-2.17-2.17-.58 0-1.1.23-1.49.6-1.46-1-3.45-1.64-5.66-1.72l.96-4.53 3.15.67a1.55 1.55 0 1 0 .17-.95l-3.5-.74a.4.4 0 0 0-.47.31l-1.07 5.04c-2.24.07-4.26.71-5.74 1.72a2.15 2.15 0 0 0-1.49-.6A2.17 2.17 0 0 0 2 12.07c0 .85.49 1.59 1.2 1.94-.03.19-.05.39-.05.6 0 3.04 3.54 5.5 7.9 5.5s7.9-2.46 7.9-5.5c0-.2-.02-.4-.05-.59A2.16 2.16 0 0 0 22 12.07ZM8.07 13.6a1.55 1.55 0 1 1 3.1 0 1.55 1.55 0 0 1-3.1 0Zm6.66 3.32c-.81.81-2.36.87-2.81.87-.46 0-2.01-.06-2.82-.87a.3.3 0 0 1 .43-.43c.51.51 1.6.7 2.39.7.79 0 1.88-.19 2.39-.7a.3.3 0 0 1 .43 0c.12.12.12.31-.01.43Zm-.27-1.77a1.55 1.55 0 1 1 0-3.1 1.55 1.55 0 0 1 0 3.1Z"/></svg><span>Reddit</span>
</button><button type="button" class="share-target share-target--email" data-share-target="email">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M3 4h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Zm17 4.24-7.4 5.18a1 1 0 0 1-1.2 0L4 8.24V18h16V8.24ZM4.5 6 12 11.25 19.5 6h-15Z"/></svg><span>E-Mail</span>
</button>
</div>
<div class="share-copy-row">
<input type="text" class="share-copy-url" id="share-copy-url" readonly aria-label="Adresse dieser Seite">
<button type="button" class="btn btn--primary share-copy-btn" data-share-target="copy">
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M3.9 12a3.1 3.1 0 0 1 3.1-3.1h4V7H7a5 5 0 0 0 0 10h4v-1.9H7A3.1 3.1 0 0 1 3.9 12ZM8 13h8v-2H8v2Zm9-6h-4v1.9h4a3.1 3.1 0 0 1 0 6.2h-4V17h4a5 5 0 0 0 0-10Z"/></svg><span>Link kopieren</span>
</button>
</div>
</div>
</div>
</div>
<div class="app-shell app-shell--cms" data-layout="cms">
<aside class="app-sidebar" id="app-sidebar">
<div class="sidebar-header">
<a href="/" class="sidebar-logo">dozent.net</a>
<button class="sidebar-close noprint" onclick="app.toggleSidebar()" title="Sidebar schließen" aria-label="Sidebar schließen">×</button>
</div>
<button type="button" class="sidebar-collapse-btn sidebar-collapse-btn--cms noprint" onclick="app.toggleSidebar()" title="Navigation ein- oder ausklappen" aria-label="Navigation ein- oder ausklappen" aria-controls="app-sidebar" aria-expanded="true">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="16" height="16" aria-hidden="true">
<polyline points="11 17 6 12 11 7"></polyline>
<polyline points="18 17 13 12 18 7"></polyline>
</svg>
</button>
<nav class="sidebar-nav">
<a href="/schulung-datenbank-ki" class="sidebar-item sidebar-item--single active" aria-current="page" data-tooltip="Startseite"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg></span><span>Wissenstransfer: Entwicklung, Beratung und Schulung</span></a>
<a href="/coaching" class="sidebar-item sidebar-item--single" data-tooltip="Coaching am Arbeitsplatz in Köln/Leverkusen oder remote: Individuelle Begleitung für Fach- und Führungskräfte — Stärken-Analyse, Zielklärung, Umsetzung."><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M0-240v-63q0-43 44-70t116-27q13 0 25 .5t23 2.5q-14 21-21 44t-7 48v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-26-6.5-49T754-397q11-2 22.5-2.5t23.5-.5q72 0 116 26.5t44 70.5v63H780ZM480-480q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47ZM160-440q-33 0-56.5-23.5T80-520q0-34 23.5-57t56.5-23q34 0 57 23t23 57q0 33-23 56.5T160-440Zm640 0q-33 0-56.5-23.5T720-520q0-34 23.5-57t56.5-23q34 0 57 23t23 57q0 33-23 56.5T800-440ZM480-560q33 0 56.5-23.5T560-640q0-33-23.5-56.5T480-720q-33 0-56.5 23.5T400-640q0 33 23.5 56.5T480-560Z"/></svg></span><span>Coaching</span></a>
<div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/projekt" class="sidebar-category-link" onclick="event.stopPropagation();"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M140-120q-24 0-42-18t-18-42v-480q0-24 18-42t42-18h180v-100q0-24 18-42t42-18h200q24 0 42 18t18 42v100h180q24 0 42 18t18 42v480q0 24-18 42t-42 18H140Zm240-600h200v-100H380v100Zm440 349H571v60H391v-60H140v191h680v-191Zm-369 0h60v-60h-60v60Zm-311-60h251v-60h180v60h249v-229H140v229Zm340 30Z"/></svg></span><span>Projekt</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-18-items" aria-label="Unterpunkte von Projekt auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-18-items">
<a href="/projekt/projektunterstuetzung" class="sidebar-item" data-tooltip="Projektunterstützung vom Full-Stack-Experten: Architektur-Analyse, Datenbank-Optimierung, Code-Refactoring und CI/CD — messbare Ergebnisse statt Legacy-Frust."><span>Projektunterstützung</span></a>
<a href="/projekt/consulting-rheinland" class="sidebar-item" data-tooltip="Senior-Consulting & Hands-on-Entwicklung im Rheinland: Datenbank-Migrationen, Performance-Tuning und KI-Datenextraktion mit relationaler Aufbereitung vor Ort."><span>Datenbank-Consulting & IT-Projekte im Rheinland (Köln · Leverkusen · Düsseldorf)</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare" class="sidebar-category-link" onclick="event.stopPropagation();"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M480-120 200-272v-240L40-600l440-240 440 240v320h-80v-276l-80 44v240L480-120Zm0-332 274-148-274-148-274 148 274 148Zm0 241 200-108v-151L480-360 280-470v151l200 108Zm0-241Zm0 90Zm0 0Z"/></svg></span><span>Seminare</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-11-items" aria-label="Unterpunkte von Seminare auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-11-items">
<div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/datenbank" class="sidebar-category-link" onclick="event.stopPropagation();"><span>Datenbank</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-21-items" aria-label="Unterpunkte von Datenbank auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-21-items">
<a href="/seminare/datenbank/datenbankanalysen-mit-ki" class="sidebar-item" data-tooltip="3-Tage-Seminar: SQL von Grund auf lernen und mit KI komplexe Abfragen schreiben, optimieren und zwischen Datenbanken migrieren — ohne Vorkenntnisse."><span>Datenbankanalysen mit KI – SQL-Seminar mit AI</span></a>
<a href="/seminare/datenbank/datenbankuebergreifendes-performance-tuning" class="sidebar-item" data-tooltip="Performance-Optimierung relationaler Datenbanken, unabhängig vom eingesetzten RDBMS"><span>Datenbankübergreifendes Performance-Tuning</span></a>
<a href="/seminare/datenbank/relationales-datenbank-design" class="sidebar-item" data-tooltip="Strukturierte und zukunftssichere Modellierung relationaler Datenbanken"><span>Relationales Datenbank Design</span></a>
<a href="/seminare/datenbank/sql-grundlagen" class="sidebar-item" data-tooltip="Einführung in die Grundlagen von SQL - SQL lesen, verstehen und anwenden stehen im Fokus"><span>SQL Grundlagen</span></a>
<a href="/seminare/datenbank/sql-fortgeschritten" class="sidebar-item" data-tooltip="Fokussiert sich auf komplexe Abfragen, Window Functions, rekursive CTEs, Datenumbau und tiefgreifende Performance-Optimierung."><span>SQL Fortgeschritten</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/sql-server" class="sidebar-category-link" onclick="event.stopPropagation();"><span>SQL Server</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-14-items" aria-label="Unterpunkte von SQL Server auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-14-items">
<a href="/seminare/datenbank/datenbankanalysen-mit-ki" class="sidebar-item" data-tooltip="3-Tage-Seminar: SQL von Grund auf lernen und mit KI komplexe Abfragen schreiben, optimieren und zwischen Datenbanken migrieren — ohne Vorkenntnisse."><span>Datenbankanalysen mit KI – SQL-Seminar mit AI</span></a>
<a href="/seminare/datenbank/datenbankuebergreifendes-performance-tuning" class="sidebar-item" data-tooltip="Performance-Optimierung relationaler Datenbanken, unabhängig vom eingesetzten RDBMS"><span>Datenbankübergreifendes Performance-Tuning</span></a>
<a href="/seminare/datenbank/sql-grundlagen" class="sidebar-item" data-tooltip="Einführung in die Grundlagen von SQL - SQL lesen, verstehen und anwenden stehen im Fokus"><span>SQL Grundlagen</span></a>
<a href="/seminare/datenbank/sql-fortgeschritten" class="sidebar-item" data-tooltip="Fokussiert sich auf komplexe Abfragen, Window Functions, rekursive CTEs, Datenumbau und tiefgreifende Performance-Optimierung."><span>SQL Fortgeschritten</span></a>
<a href="/seminare/sql-server/t-sql-programmierung" class="sidebar-item" data-tooltip="TransactSQL"><span>SQL Server T-SQL Programmierung</span></a>
<a href="/seminare/sql-server/sql-server-analysis-services-molap" class="sidebar-item" data-tooltip="Fokus auf die praktische Entwicklung multidimensionaler Datenmodelle (Cubes), Design von Dimensionen/Measures und MDX-Programmierung."><span>SQL Server Analysis Services (SSAS) – MOLAP Cube-Entwicklung</span></a>
<a href="/seminare/sql-server/sql-server-reporting-services-seitenbasierte-berichte" class="sidebar-item" data-tooltip="Vermittelt die Erstellung, Strukturierung und Verwaltung professioneller, seitenbasierter Berichte inkl. Datenanbindung, Visualisierung und Automatisierung."><span>SQL Server Reporting Services - Seitenbasierte Berichte</span></a>
<a href="/seminare/sql-server/ki-vibecoding-fuer-sql-und-datenbanken" class="sidebar-item" data-tooltip="Für SQL-erfahrene Datenbankentwickler: tiefgehende Analysen, Tuning, Schema-Entwurf und KI-Agenten mit VibeCoding und MCP-Servern."><span>KI & VibeCoding für SQL und Datenbanken</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/programmieren" class="sidebar-category-link" onclick="event.stopPropagation();"><span>Programmieren</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-13-items" aria-label="Unterpunkte von Programmieren auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-13-items">
<a href="/seminare/datenbank/datenbankanalysen-mit-ki" class="sidebar-item" data-tooltip="3-Tage-Seminar: SQL von Grund auf lernen und mit KI komplexe Abfragen schreiben, optimieren und zwischen Datenbanken migrieren — ohne Vorkenntnisse."><span>Datenbankanalysen mit KI – SQL-Seminar mit AI</span></a>
<a href="/seminare/datenbank/sql-fortgeschritten" class="sidebar-item" data-tooltip="Fokussiert sich auf komplexe Abfragen, Window Functions, rekursive CTEs, Datenumbau und tiefgreifende Performance-Optimierung."><span>SQL Fortgeschritten</span></a>
<a href="/seminare/datenbank/sql-grundlagen" class="sidebar-item" data-tooltip="Einführung in die Grundlagen von SQL - SQL lesen, verstehen und anwenden stehen im Fokus"><span>SQL Grundlagen</span></a>
<div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/programmieren/web-grundlagen" class="sidebar-category-link" onclick="event.stopPropagation();"><span>Web-Grundlagen</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-116-items" aria-label="Unterpunkte von Web-Grundlagen auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-116-items">
<a href="/seminare/programmieren/web-grundlagen/html5-struktur-und-semantik" class="sidebar-item" data-tooltip="Sauberer und moderner Aufbau von Webseiten mit HTML5"><span>HTML5 Struktur und Semantik</span></a>
<a href="/seminare/programmieren/web-grundlagen/css3-grundlagen-und-modernes-webdesign" class="sidebar-item" data-tooltip="Gestaltung von Webseiten mit Cascading Style Sheets (CSS)"><span>CSS3 Grundlagen und modernes Webdesign</span></a>
<a href="/seminare/programmieren/web-grundlagen/javascript-grundlagen" class="sidebar-item" data-tooltip="Behandelt die Basics der clientseitigen Webentwicklung, DOM-Manipulation, Event-Handling und asynchrone Basis-Konzepte."><span>JavaScript Grundlagen</span></a>
<a href="/seminare/programmieren/web-grundlagen/javascript-advanced-moderne-architektur-es6" class="sidebar-item" data-tooltip="Vertieft JS-Konzepte, Event Loop, Design Patterns, asynchrone Architektur und modernes Tooling."><span>JavaScript Advanced (Moderne Architektur & ES6+)</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/programmieren/php" class="sidebar-category-link" onclick="event.stopPropagation();"><span>PHP</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-117-items" aria-label="Unterpunkte von PHP auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-117-items">
<a href="/seminare/programmieren/php/php-programmierung-grundlagen" class="sidebar-item" data-tooltip="Vermittelt fundamentale Konzepte der serverseitigen Webentwicklung, Syntax, Formularverarbeitung und den sicheren Umgang mit Benutzereingaben."><span>PHP Programmierung Grundlagen</span></a>
<a href="/seminare/programmieren/php/php-oop-fortgeschrittene-technologien" class="sidebar-item" data-tooltip="Vertieft objektorientierte Programmierung, Software-Architektur (SOLID), Design Patterns und moderne PHP 8.x Features."><span>PHP OOP Fortgeschrittene Technologien</span></a>
<a href="/seminare/programmieren/php/php-professionelles-programmieren-mit-ki" class="sidebar-item" data-tooltip="Zeigt, wie du KI als Funktion in der eigenen PHP-Anwendung integrierst — Schwerpunkt Claude (Anthropic-API) und Ollama lokal, hinter einer gemeinsamen Schnittstelle, inklusive RAG und Agenten."><span>KI-Funktionen in PHP-Anwendungen entwickeln – mit Claude, Ollama und RAG</span></a>
<a href="/seminare/programmieren/php/ki-vibecoding-fuer-php-entwickler" class="sidebar-item" data-tooltip="Zeigt, wie du KI-Agenten wie Claude Code beim PHP-Programmieren einsetzt — vom VibeCoding zur professionellen Arbeitsweise mit Tests als Leitplanke, Audits auf Korrektheit, Sicherheit, Performance un…"><span>KI & VibeCoding für PHP-Entwickler</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/programmieren/c-cpp" class="sidebar-category-link" onclick="event.stopPropagation();"><span>C und C++</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-118-items" aria-label="Unterpunkte von C und C++ auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-118-items">
<a href="/seminare/programmieren/c-cpp/c-programmieren-einfuehrung" class="sidebar-item" data-tooltip="Bietet einen Einstieg in die prozedurale, hardwarenahe Programmierung, manuelles Speichermanagement (Pointer) und C-Datenstrukturen."><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
<!-- C logo: blue hexagon with C letter -->
<defs>
<linearGradient id="cg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#659AD2"/>
<stop offset="100%" stop-color="#004482"/>
</linearGradient>
</defs>
<polygon points="32,2 58,17 58,47 32,62 6,47 6,17" fill="url(#cg)" stroke="#003366" stroke-width="1.5"/>
<text x="32" y="42" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-weight="bold" font-size="30" fill="white">C</text>
</svg></span><span>C Programmieren Einführung</span></a>
<a href="/seminare/programmieren/c-cpp/c-programmieren-grundlagen" class="sidebar-item" data-tooltip="Vermittelt C++ Syntax, Speicherverwaltung (Zeiger/Referenzen) und objektorientierte Programmierung bis zu Vererbung und Operatorüberladung."><span>C++ Programmieren Grundlagen</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/programmieren/ki-programmierung" class="sidebar-category-link" onclick="event.stopPropagation();"><span>KI</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-119-items" aria-label="Unterpunkte von KI auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-119-items">
<a href="/seminare/programmieren/ki-programmierung/programmieren-mit-ki-claude-code" class="sidebar-item" data-tooltip="Ein Praxistag für Entwicklerteams: Claude Code als Agent in VS Code einrichten, die hauseigene KI anbinden und dieselben Aufgaben mit beiden lösen (der Vergleich setzt einen KI-Server voraus) – gemes…"><span>Programmieren mit KI – Claude Code und lokale KI: Einstieg für Softwareentwickler</span></a>
<a href="/seminare/programmieren/ki-programmierung/professionelle-softwareentwicklung-mit-ki-agenten" class="sidebar-item" data-tooltip="Drei Tage für Entwicklerteams, die KI-Agenten wie Claude Code über den Prototyp hinaus einsetzen wollen: Anforderungen und Pläne vor dem Code, Tests als Abnahme, mechanische Leitplanken statt Ermahnu…"><span>Professionelle Softwareentwicklung mit KI-Agenten – vom VibeCoding zum verlässlichen Prozess</span></a>
<a href="/seminare/programmieren/ki-programmierung/mcp-server-php-entwickeln" class="sidebar-item" data-tooltip="Zwei Tage für PHP-Entwickler, die KI-Agenten wie Claude Code oder Antigravity an eigene Daten und Funktionen anbinden wollen: das Protokoll verstehen, mit dem offiziellen PHP-SDK Tools, Resources und…"><span>Eigener MCP-Server mit PHP – KI-Agenten mit eigenen Daten verbinden</span></a>
<a href="/seminare/programmieren/ki-programmierung/programmieren-mit-ki-java" class="sidebar-item" data-tooltip="Der Workshop für Java-Teams: Claude Code mit Maven oder Gradle und JUnit einsetzen, die typischen KI-Fehler in Java erkennen und mit Tests abfangen, Claude und die hauseigene KI am selben Java-Projek…"><span>Programmieren mit KI für Java-Entwickler – Claude Code und lokale KI im Workshop</span></a>
<a href="/seminare/programmieren/ki-programmierung/lokale-ki-datenextraktion" class="sidebar-item" data-tooltip="Zweitägiges Praxisseminar: eine lokale KI-Umgebung einrichten und zuverlässig strukturierte Daten aus Texten extrahieren — mit Regeln gegen erfundene Angaben, ohne Cloud-Abo-Bindung."><span>Lokale KI für Datenanalyse & Datenextraktion — Seminar</span></a>
<a href="/seminare/programmieren/ki-programmierung/lokale-ki-programmieren" class="sidebar-item" data-tooltip="Zweitägiges dozent.net-Seminar: einen KI-Coding-Assistenten komplett lokal mit Ollama und Co. betreiben — ohne Übermittlung an Cloud-Anbieter und das Betriebsgeheimnis wahrend."><span>Programmieren mit lokaler KI: Dein Code bleibt im Haus</span></a>
<a href="/seminare/programmieren/ki-programmierung/ki-integration-php-architektur" class="sidebar-item" data-tooltip="Dreitägiges Praxisseminar: eine anbieter-unabhängige KI-Anbindung in PHP entwerfen — austauschbare Provider, Nebenläufigkeit ohne Blockade und Ergebnisse, die geprüft statt blind übernommen werden."><span>KI in PHP integrieren — Architektur für mehrere Anbieter (Seminar)</span></a>
<a href="/seminare/programmieren/ki-programmierung/webanwendungen-entwickeln-mit-claude-und-anderen-ki-agenten" class="sidebar-item" data-tooltip="In 2 Tagen lernst du, wie du mit Claude Code, GitHub Copilot und anderen KI-Agenten effizient Webanwendungen entwickelst — von Frontend über Backend bis Deployment."><span>Webanwendungen entwickeln mit Claude und anderen KI-Agenten</span></a>
</div>
</div>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/postgresql" class="sidebar-category-link" onclick="event.stopPropagation();"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
<!-- PostgreSQL elephant head icon -->
<defs>
<linearGradient id="pg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#336791"/>
<stop offset="100%" stop-color="#264d6b"/>
</linearGradient>
</defs>
<!-- Head shape -->
<path d="M32 4C18 4 10 14 10 26c0 8 3 14 8 18l2 12c0.5 2 2 4 5 4h2c2 0 3-1 3-3l1-8c1 0.3 2 0.5 3 0.5s2-0.2 3-0.5l1 8c0 2 1 3 3 3h2c3 0 4.5-2 5-4l2-12c5-4 8-10 8-18C58 14 46 4 32 4z" fill="url(#pg)" stroke="#1a3d5c" stroke-width="1.5"/>
<!-- Trunk/nose -->
<path d="M38 34c0 0 4 2 4 6s-2 8-2 8" stroke="#1a3d5c" stroke-width="2" stroke-linecap="round" fill="none"/>
<!-- Eye left -->
<circle cx="25" cy="22" r="3.5" fill="white"/>
<circle cx="25.5" cy="21.5" r="1.5" fill="#1a3d5c"/>
<!-- Eye right -->
<circle cx="39" cy="22" r="3.5" fill="white"/>
<circle cx="39.5" cy="21.5" r="1.5" fill="#1a3d5c"/>
<!-- Ear left -->
<path d="M14 16c-3-2-5 0-5 3s2 5 4 5" stroke="#1a3d5c" stroke-width="1.5" fill="#336791"/>
<!-- Ear right -->
<path d="M50 16c3-2 5 0 5 3s-2 5-4 5" stroke="#1a3d5c" stroke-width="1.5" fill="#336791"/>
</svg></span><span>PostgreSQL</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-12-items" aria-label="Unterpunkte von PostgreSQL auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-12-items">
<a href="/seminare/postgresql/plpgsql-programmierung" class="sidebar-item" data-tooltip="Zweitägiges PL/pgSQL-Seminar für Entwickler und DBAs, optional mit Praxistag."><span>PL/pgSQL-Programmierung — Seminar für Datenbankentwickler</span></a>
<a href="/seminare/postgresql/postgresql-performance-tuning" class="sidebar-item" data-tooltip="Dreitägiges PostgreSQL-Tuning-Seminar: Planer, MVCC und Autovacuum, Indextypen, Konfiguration."><span>PostgreSQL Performance-Tuning — Seminar für DBAs und Entwickler</span></a>
<a href="/seminare/datenbank/datenbankuebergreifendes-performance-tuning" class="sidebar-item" data-tooltip="Performance-Optimierung relationaler Datenbanken, unabhängig vom eingesetzten RDBMS"><span>Datenbankübergreifendes Performance-Tuning</span></a>
<a href="/seminare/datenbank/sql-grundlagen" class="sidebar-item" data-tooltip="Einführung in die Grundlagen von SQL - SQL lesen, verstehen und anwenden stehen im Fokus"><span>SQL Grundlagen</span></a>
<a href="/seminare/datenbank/sql-fortgeschritten" class="sidebar-item" data-tooltip="Fokussiert sich auf komplexe Abfragen, Window Functions, rekursive CTEs, Datenumbau und tiefgreifende Performance-Optimierung."><span>SQL Fortgeschritten</span></a>
<a href="/seminare/postgresql/postgresql-administration" class="sidebar-item" data-tooltip="PostgreSQL Backup, Recovery, Konfiguration, Performanz, Monitoring, Erweiterungen"><span>PostgreSQL Administration</span></a>
<a href="/seminare/sql-server/ki-vibecoding-fuer-sql-und-datenbanken" class="sidebar-item" data-tooltip="Für SQL-erfahrene Datenbankentwickler: tiefgehende Analysen, Tuning, Schema-Entwurf und KI-Agenten mit VibeCoding und MCP-Servern."><span>KI & VibeCoding für SQL und Datenbanken</span></a>
<div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/seminare/postgresql/migration" class="sidebar-category-link" onclick="event.stopPropagation();"><span>Migration</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-115-items" aria-label="Unterpunkte von Migration auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-115-items">
<a href="/seminare/postgresql/migration/migration-von-oracle-zu-postgresql" class="sidebar-item" data-tooltip="Vermittelt Architekturunterschiede, Datentyp-Mapping, PL/SQL zu PL/pgSQL Konvertierung und Datenübernahme-Strategien."><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor"><path d="M224,48V152a16,16,0,0,1-16,16H99.31l10.35,10.34a8,8,0,0,1-11.32,11.32l-24-24a8,8,0,0,1,0-11.32l24-24a8,8,0,0,1,11.32,11.32L99.31,152H208V48H96v8a8,8,0,0,1-16,0V48A16,16,0,0,1,96,32H208A16,16,0,0,1,224,48ZM168,192a8,8,0,0,0-8,8v8H48V104H156.69l-10.35,10.34a8,8,0,0,0,11.32,11.32l24-24a8,8,0,0,0,0-11.32l-24-24a8,8,0,0,0-11.32,11.32L156.69,88H48a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16H160a16,16,0,0,0,16-16v-8A8,8,0,0,0,168,192Z"></path></svg></span><span>PostgreSQL Migration von Oracle</span></a>
<a href="/seminare/postgresql/migration/postgresql-migration-von-sql-server" class="sidebar-item" data-tooltip="Dreitägiges Praxis-Seminar zur Migration von SQL Server zu PostgreSQL: Architektur, Schema- und Code-Migration (T-SQL -> PL/pgSQL), Datenübernahme, Performance und Betrieb. Online oder inhouse vor Or…"><span>PostgreSQL Migration von Microsoft SQL Server</span></a>
<a href="/seminare/postgresql/migration/postgresql-migration-von-db2" class="sidebar-item" data-tooltip="Behandelt die Ablösung von Db2, die Übersetzung von SQL PL, das Handling spezieller Datentypen und die Partitions-Migration."><span>PostgreSQL Migration von DB2</span></a>
<a href="/seminare/postgresql/migration/postgresql-migration-von-sybase" class="sidebar-item" data-tooltip="Erklärt die Migration von Sybase (ASE/SQL Anywhere) inkl. T-SQL Konvertierung, Locking-Unterschieden und Massendatentransfer."><span>PostgreSQL Migration von Sybase</span></a>
<a href="/seminare/postgresql/migration/postgresql-migration-von-informix" class="sidebar-item" data-tooltip="Fokus auf den Wechsel von Informix, inkl. SPL zu PL/pgSQL Konvertierung, Datentyp-Mapping und Performance-Tuning."><span>PostgreSQL Migration von Informix</span></a>
<a href="/seminare/postgresql/migration/postgresql-migration-von-ms-access" class="sidebar-item" data-tooltip="Zeigt die Migration von Datenstrukturen und die Anpassung von VBA-Code, um Access performant als Frontend für PostgreSQL weiterzunutzen."><span>PostgreSQL Migration von MS Access</span></a>
</div>
</div>
</div>
</div>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/tipps-und-tricks" class="sidebar-category-link" onclick="event.stopPropagation();"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M560-564v-68q33-14 67.5-21t72.5-7q26 0 51 4t49 10v64q-24-9-48.5-13.5T700-600q-38 0-73 9.5T560-564Zm0 220v-68q33-14 67.5-21t72.5-7q26 0 51 4t49 10v64q-24-9-48.5-13.5T700-380q-38 0-73 9t-67 27Zm0-110v-68q33-14 67.5-21t72.5-7q26 0 51 4t49 10v64q-24-9-48.5-13.5T700-490q-38 0-73 9.5T560-454ZM260-320q47 0 91.5 10.5T440-278v-394q-41-24-87-36t-93-12q-36 0-71.5 7T120-692v396q35-12 69.5-18t70.5-6Zm260 42q44-21 88.5-31.5T700-320q36 0 70.5 6t69.5 18v-396q-33-14-68.5-21t-71.5-7q-47 0-93 12t-87 36v394Zm-40 118q-48-38-104-59t-116-21q-42 0-82.5 11T100-198q-21 11-40.5-1T40-234v-482q0-11 5.5-21T62-752q46-24 96-36t102-12q58 0 113.5 15T480-740q51-30 106.5-45T700-800q52 0 102 12t96 36q11 5 16.5 15t5.5 21v482q0 23-19.5 35t-40.5 1q-37-20-77.5-31T700-240q-60 0-116 21t-104 59ZM280-494Z"/></svg></span><span>Tipps und Tricks</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-51-items" aria-label="Unterpunkte von Tipps und Tricks auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-51-items">
<div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/tipps-und-tricks/postgresql" class="sidebar-category-link" onclick="event.stopPropagation();"><span>PostgreSQL</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-121-items" aria-label="Unterpunkte von PostgreSQL auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-121-items">
<a href="/tipps-und-tricks/postgresql/hugepages" class="sidebar-item" data-tooltip="Praxis-Leitfaden: PostgreSQL mit Explicit HugePages spürbar beschleunigen — von shared_buffers über vm.nr_hugepages und max_worker_processes bis THP, mit Verifikation und sicherem Rollback."><span>PostgreSQL HugePages aktivieren</span></a>
<a href="/tipps-und-tricks/postgresql/vergleich" class="sidebar-item" data-tooltip="PostgreSQL gegen Oracle, SQL Server, MySQL, Db2 und Co.: Lizenz, SQL-Features, Transaktionen und Limits in klaren Vergleichstabellen — verständlich erklärt."><span>PostgreSQL im Vergleich</span></a>
<a href="/tipps-und-tricks/postgresql/sec-daten-architektur" class="sidebar-item" data-tooltip="Architektur einer Hochleistungs-Finanzdatenbank: Wie Inside-Filings Millionen SEC-Meldungen, Bilanzen und Insiderdaten mit PostgreSQL in Millisekunden verarbeitet."><span>Millionen SEC-Meldungen in PostgreSQL: Architektur einer hochperformanten Finanzdaten-Plattform</span></a>
<a href="/tipps-und-tricks/postgresql/performance-settings" class="sidebar-item" data-tooltip="Überblick aller performance-relevanten Settings"><span>PostgreSQL Performance-Settings</span></a>
<a href="/tipps-und-tricks/postgresql/index-optimization" class="sidebar-item" data-tooltip="Index-Pflege — unused Indexes finden, Duplikate erkennen, Bloat messen, fehlende Indexe aufspüren, Index-Typen richtig wählen"><span>PostgreSQL Indexe optimieren — Wartung, Monitoring, Einrichtung</span></a>
<a href="/tipps-und-tricks/postgresql/wartung-vacuum-reindex-cluster" class="sidebar-item" data-tooltip="Wann brauche ich was, > welche Parameter haben welche Bedeutung, welche locken die Tabelle, welche laufen > online, und wie stelle ich Autovacuum ein"><span>PostgreSQL Wartung — VACUUM, REINDEX, CLUSTER</span></a>
<a href="/tipps-und-tricks/postgresql/pgvector-ki-suche" class="sidebar-item" data-tooltip="Vektorsuche, Embeddings und RAG ohne zweite Datenbank: Was pgvector kann, wann es sich lohnt — und wann nicht. Jetzt verstehen."><span>pgvector: KI-Suche direkt in PostgreSQL</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/tipps-und-tricks/php" class="sidebar-category-link" onclick="event.stopPropagation();"><span>PHP</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-122-items" aria-label="Unterpunkte von PHP auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-122-items">
<a href="/tipps-und-tricks/php/apcu-shared-memory-fpm" class="sidebar-item" data-tooltip="APCu Shared Memory für PHP optimal konfigurieren: Wie Shared Memory unter PHP-FPM, Apache mod_php, FrankenPHP und CLI funktioniert und wie du In-Memory-Caching ohne Redis nutzt."><span>APCu Shared Memory für PHP konfigurieren: FPM, Apache mod_php und CLI im Vergleich</span></a>
<a href="/tipps-und-tricks/php/performance-anti-pattern" class="sidebar-item" data-tooltip="Die acht teuersten Muster im PHP-Code — je mit Symptom, Codebeispiel, Messung und Auflösung."><span>PHP-Performance: die acht teuersten Fehler im Code</span></a>
<a href="/tipps-und-tricks/php/konfiguration-performance" class="sidebar-item" data-tooltip="Welche PHP-Einstellungen wirklich wirken, welche nur Speicher kosten und wie du den Unterschied nachmisst."><span>PHP schneller konfigurieren: OPcache, Preloading, FPM</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/tipps-und-tricks/sql-server" class="sidebar-category-link" onclick="event.stopPropagation();"><span>SQL Server</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-123-items" aria-label="Unterpunkte von SQL Server auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-123-items">
<a href="/tipps-und-tricks/sql-server/verbindungen-trennen" class="sidebar-item" data-tooltip="Eine SQL-Server-Datenbank lässt sich nur umbenennen, über eine bestehende Fassung wiederherstellen oder löschen, wenn niemand sonst darauf zugreift. Der Beitrag zeigt, wie du angemeldete Benutzer mit…"><span>SQL Server: Angemeldete Benutzer trennen und Datenbank umbenennen</span></a>
<a href="/tipps-und-tricks/sql-server/audit-trigger" class="sidebar-item" data-tooltip="Änderungen in SQL Server protokollieren: DML-Trigger mit INSERTED und DELETED, typische Fallstricke — und wann CDC oder Temporal Tables besser sind."><span>SQL Server Audit-Trigger: Änderungen sauber protokollieren</span></a>
<a href="/tipps-und-tricks/sql-server/string-split" class="sidebar-item" data-tooltip="Zeichenketten in SQL Server zerlegen: STRING_SPLIT im Detail, typische Lücken bis 2022 und wann XML, OPENJSON oder Tally-Tabellen schneller sind."><span>T-SQL: Zeichenketten zerlegen — STRING_SPLIT und die Wege davor</span></a>
<a href="/tipps-und-tricks/sql-server/datumsformat" class="sidebar-item" data-tooltip="Datum ist nicht gleich Datum"><span>SQL Datumsformat</span></a>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/tipps-und-tricks/betriebssystem" class="sidebar-category-link" onclick="event.stopPropagation();"><span>Betriebssystem & Linux</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-124-items" aria-label="Unterpunkte von Betriebssystem & Linux auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-124-items">
<a href="/tipps-und-tricks/betriebssystem/optimierung-postgresql" class="sidebar-item" data-tooltip="Speicher, I/O, CPU und Grenzwerte unter PostgreSQL — welche Kernel-Einstellungen wirken, was sie kosten und wie du den Effekt nachmisst."><span>Das Betriebssystem unter PostgreSQL</span></a>
<a href="/tipps-und-tricks/betriebssystem/optimierung-datenbankserver" class="sidebar-item" data-tooltip="Rechte, Virenschutz, I/O und Takt unter Windows — welche Einstellungen wirken, welche überholt sind und wie du den Unterschied nachmisst."><span>Windows unter dem Datenbankserver</span></a>
</div>
</div><a href="/tipps-und-tricks/windows" class="sidebar-item sidebar-item--single" data-tooltip="Lüfter dreht hoch? Mit zwei WMI-Abfragen in PowerShell findest du den Prozess, der die CPU wirklich auslastet — samt Laufzeit, Startbefehl und Elternprozess — und beendest ihn gezielt. Getestet unter…"><span>Windows</span></a>
<div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/tipps-und-tricks/ki" class="sidebar-category-link" onclick="event.stopPropagation();"><span>KI</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-95-items" aria-label="Unterpunkte von KI auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-95-items">
<a href="/tipps-und-tricks/ki/ollama-dauerbetrieb" class="sidebar-item" data-tooltip="Abgeschnittene Antworten, plötzliche Langsamkeit, fremde Felder, hängende Läufe: sieben Fehlerbilder aus dem echten Ollama-Dauerbetrieb, die nicht am Modell liegen — je mit Symptom, Ursache, Messwert…"><span>Ollama im Dauerbetrieb: sieben Fehler, die wie Modellfehler aussehen — und es nicht sind</span></a>
<a href="/tipps-und-tricks/ki/lokale-ki-im-unternehmen" class="sidebar-item" data-tooltip="Lokale KI im Unternehmen statt Cloud-Abo: Betriebsgeheimnisse bleiben im Haus, Kosten werden planbar. Was offene Modelle leisten, welche Hardware nötig ist und ab wann es sich rechnet — für Entscheid…"><span>Lokale KI im Unternehmen: Volle Power, Daten bleiben im Haus</span></a>
<a href="/tipps-und-tricks/ki/ollama-lokale-ki-modelle" class="sidebar-item" data-tooltip="Welches offene KI-Modell passt zu Code, SQL, Chat oder RAG? Ratgeber mit Einsatzzweck-Matrix, Erklärung der B-Zahl (3B bis 70B) und Hardware-Empfehlung für Ollama und Co."><span>Ollama und offene KI-Modelle: Welches Modell für welchen Zweck?</span></a>
<a href="/tipps-und-tricks/ki/lokale-ki-modelle-deutsch-test" class="sidebar-item" data-tooltip="14 lokale KI-Modelle im Blindtest an echten Geschäftsberichten: Welches schreibt brauchbares Deutsch — und welche Metrik führt in die Irre?"><span>Welches lokale KI-Modell schreibt das beste Deutsch?</span></a>
</div>
</div>
</div>
</div><div class="sidebar-category sidebar-category--collapsible">
<div class="sidebar-category-title" onclick="app.toggleSidebarCategory(this)">
<a href="/produkte" class="sidebar-category-link" onclick="event.stopPropagation();"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M440-120v-240h80v80h320v80H520v80h-80Zm-320-80v-80h240v80H120Zm160-160v-80H120v-80h160v-80h80v240h-80Zm160-80v-80h400v80H440Zm160-160v-240h80v80h160v80H680v80h-80Zm-480-80v-80h400v80H120Z"/></svg></span><span>Produkte</span></a>
<span class="sidebar-arrow" role="button" tabindex="0" aria-expanded="false" aria-controls="sidebar-cat-34-items" aria-label="Unterpunkte von Produkte auf- oder zuklappen"></span>
</div>
<div class="sidebar-category-items" id="sidebar-cat-34-items">
<a href="/produkte/docudown" class="sidebar-item" data-tooltip="DocuDown – Bank-Kontoauszüge, Amazon-Rechnungen & Versicherungsdokumente automatisch herunterladen"><span class="sidebar-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" role="img" aria-label="DocuDown DoDo Logo" preserveAspectRatio="xMidYMid meet">
<defs>
<radialGradient id="dodo-bg" cx="0.4" cy="0.35" r="0.75">
<stop offset="0" stop-color="#6EE7B7"/>
<stop offset="0.55" stop-color="#10B981"/>
<stop offset="1" stop-color="#047857"/>
</radialGradient>
<filter id="dodo-shadow" x="-25%" y="-25%" width="150%" height="150%">
<feGaussianBlur in="SourceAlpha" stdDeviation="5"/>
<feOffset dx="0" dy="4" result="off"/>
<feComponentTransfer><feFuncA type="linear" slope="0.28"/></feComponentTransfer>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<radialGradient id="dodo-highlight" cx="0.35" cy="0.25" r="0.4">
<stop offset="0" stop-color="#FFFFFF" stop-opacity="0.45"/>
<stop offset="1" stop-color="#FFFFFF" stop-opacity="0"/>
</radialGradient>
</defs>
<circle cx="128" cy="128" r="120" fill="url(#dodo-bg)" filter="url(#dodo-shadow)"/>
<circle cx="128" cy="128" r="120" fill="url(#dodo-highlight)"/>
<text x="128" y="186" text-anchor="middle" font-size="170" font-family="'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif">🦤</text>
</svg></span><span>DocuDown</span></a>
<a href="/produkte/ssrs-barcode-qrcode-custom-report-item" class="sidebar-item" data-tooltip="SSRS Barcode & QR-Code: Kostenlose Custom Report Item Extension"><span class="sidebar-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="GlückBarQrCode Logo"><defs><linearGradient id="bq-bg" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#F59E0B"/><stop offset="100%" stop-color="#B45309"/></linearGradient></defs><circle cx="64" cy="64" r="62" fill="url(#bq-bg)"/><rect x="26" y="34" width="4" height="60" rx="1.5" fill="#FFFFFF"/><rect x="33" y="34" width="2.5" height="60" rx="1" fill="#FFFFFF"/><rect x="38.5" y="34" width="6" height="60" rx="1.5" fill="#FFFFFF"/><rect x="47.5" y="34" width="3" height="60" rx="1.5" fill="#FFFFFF"/><rect x="53.5" y="34" width="4.5" height="60" rx="1.5" fill="#FFFFFF"/><rect x="66" y="34" width="36" height="36" rx="4" fill="none" stroke="#FFFFFF" stroke-width="4"/><rect x="75" y="43" width="18" height="18" rx="2" fill="#FFFFFF"/><rect x="66" y="77" width="9" height="9" rx="2" fill="#FFFFFF"/><rect x="80" y="77" width="9" height="9" rx="2" fill="#FFFFFF"/><rect x="93" y="77" width="9" height="9" rx="2" fill="#FFFFFF"/><rect x="66" y="90" width="9" height="4" rx="1.5" fill="#FFFFFF"/><rect x="80" y="90" width="22" height="4" rx="1.5" fill="#FFFFFF"/></svg></span><span>GlückBarQrCode</span></a>
<a href="/produkte/backswift" class="sidebar-item" data-tooltip="Backswift sichert Dateien parallel auf mehrere Ziele, optional mit AES-256. Single-File-Binary für Windows, Linux und macOS. Kostenlos herunterladen."><span class="sidebar-icon"><?xml version="1.0" encoding="UTF-8"?>
<svg aria-hidden="true" focusable="false" width="128" height="128" viewBox="0 0 124 124" xmlns="http://www.w3.org/2000/svg" font-family="Segoe UI, Roboto, Helvetica, Arial, sans-serif">
<defs>
<linearGradient id="bsLogo" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#0EA5E9"/>
<stop offset="1" stop-color="#1D4ED8"/>
</linearGradient>
</defs>
<circle cx="62" cy="62" r="62" fill="url(#bsLogo)"/>
<text x="56" y="96" font-size="96" font-weight="700" fill="#FFFFFF" text-anchor="middle">B</text>
<text x="92" y="92" font-size="80" font-weight="800" fill="#0b1220" opacity="0.55">»</text>
<text x="90" y="90" font-size="80" font-weight="800" fill="#FFCC00">»</text>
</svg></span><span>Backswift — schlankes Datei-Backup mit ZIP/AES für Windows, Linux und macOS</span></a>
<a href="/produkte/ugnaz" class="sidebar-item" data-tooltip="ugnaz — Modulare Plattform für Portale, Rollen, Multi-Domain, Prüfungen und Analytics."><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="logo-bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#0D1B2A"/>
<stop offset="100%" style="stop-color:#1B3A4B"/>
</linearGradient>
<linearGradient id="logo-accent" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#00BFA6"/>
<stop offset="100%" style="stop-color:#00897B"/>
</linearGradient>
<linearGradient id="logo-glow" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#26C6DA"/>
<stop offset="100%" style="stop-color:#0097A7"/>
</linearGradient>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="40" fill="url(#logo-bg)"/>
<!-- Outer ring — modularity -->
<circle cx="100" cy="100" r="72" fill="none" stroke="#ffffff08" stroke-width="12"/>
<!-- Module blocks — arranged as interlocking segments around center -->
<!-- Top-left block: CMS/Content -->
<rect x="42" y="42" width="48" height="48" rx="8" fill="url(#logo-accent)" opacity="0.9"/>
<!-- Top-right block: Reporting -->
<rect x="110" y="42" width="48" height="48" rx="8" fill="url(#logo-glow)" opacity="0.75"/>
<!-- Bottom-left block: Security -->
<rect x="42" y="110" width="48" height="48" rx="8" fill="url(#logo-glow)" opacity="0.6"/>
<!-- Bottom-right block: Quiz/Export -->
<rect x="110" y="110" width="48" height="48" rx="8" fill="url(#logo-accent)" opacity="0.7"/>
<!-- Center connector — the platform core -->
<circle cx="100" cy="100" r="20" fill="#0D1B2A" stroke="url(#logo-accent)" stroke-width="3"/>
<!-- Center icon: interlocking node -->
<circle cx="100" cy="100" r="6" fill="#00BFA6"/>
<!-- Connection lines from center to blocks -->
<line x1="85" y1="85" x2="66" y2="66" stroke="#00BFA650" stroke-width="2" stroke-linecap="round"/>
<line x1="115" y1="85" x2="134" y2="66" stroke="#26C6DA50" stroke-width="2" stroke-linecap="round"/>
<line x1="85" y1="115" x2="66" y2="134" stroke="#26C6DA40" stroke-width="2" stroke-linecap="round"/>
<line x1="115" y1="115" x2="134" y2="134" stroke="#00BFA640" stroke-width="2" stroke-linecap="round"/>
<!-- Subtle icons inside blocks -->
<!-- CMS: document lines -->
<rect x="52" y="54" width="20" height="3" rx="1" fill="#ffffff60"/>
<rect x="52" y="61" width="28" height="2" rx="1" fill="#ffffff30"/>
<rect x="52" y="67" width="24" height="2" rx="1" fill="#ffffff30"/>
<rect x="52" y="73" width="28" height="2" rx="1" fill="#ffffff30"/>
<!-- Reporting: mini bar chart -->
<rect x="120" y="72" width="6" height="14" rx="1" fill="#ffffff50"/>
<rect x="129" y="64" width="6" height="22" rx="1" fill="#ffffff40"/>
<rect x="138" y="56" width="6" height="30" rx="1" fill="#ffffff60"/>
<!-- Security: shield shape -->
<path d="M66,120 L74,116 L74,128 Q74,136 66,140 Q58,136 58,128 L58,116 Z" fill="#ffffff40"/>
<!-- Export: arrow down -->
<path d="M134,122 L134,136 M128,130 L134,136 L140,130" fill="none" stroke="#ffffff50" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></span><span>ugnaz — Die modulare Business-Plattform für Ihr digitales Projekt</span></a>
<a href="/produkte/report-engine" class="sidebar-item" data-tooltip="Interaktive Pivot-Tabellen über echte SEC-Marktdaten mit Inline-Micro-Charts — eine Live-Demonstration unserer Report-Engine."><span class="sidebar-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Report-Engine Logo"><defs><linearGradient id="re-bg" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#4F46E5"/><stop offset="100%" stop-color="#1E1B4B"/></linearGradient><linearGradient id="re-bar1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#818CF8"/><stop offset="100%" stop-color="#4F46E5"/></linearGradient><linearGradient id="re-bar2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#38BDF8"/><stop offset="100%" stop-color="#0284C7"/></linearGradient></defs><circle cx="64" cy="64" r="62" fill="url(#re-bg)"/><line x1="26" y1="96" x2="102" y2="96" stroke="#ffffff" stroke-opacity="0.3" stroke-width="2.5" stroke-linecap="round"/><rect x="32" y="66" width="13" height="30" rx="3" fill="url(#re-bar1)"/><rect x="50" y="48" width="13" height="48" rx="3" fill="url(#re-bar2)"/><rect x="68" y="34" width="13" height="62" rx="3" fill="#38BDF8"/><rect x="86" y="54" width="13" height="42" rx="3" fill="url(#re-bar1)"/><path d="M26 62L46 48L64 28L88 44L102 30" fill="none" stroke="#F43F5E" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="64" cy="28" r="4.5" fill="#FFFFFF" stroke="#F43F5E" stroke-width="2.5"/><circle cx="102" cy="30" r="4.5" fill="#FFFFFF" stroke="#F43F5E" stroke-width="2.5"/></svg></span><span>Live-Datenanalyse – unsere Report-Engine im Einsatz</span></a>
<a href="/produkte/pg-clusterbackup" class="sidebar-item" data-tooltip="Automatisches Backup aller Datenbanken über alle laufenden PostgreSQL-Cluster in PHP, Bash und PowerShell."><span class="sidebar-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="pg-clusterbackup Logo"><defs><linearGradient id="pgcb-grad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#336791"/><stop offset="100%" stop-color="#18324a"/></linearGradient><linearGradient id="pgcb-disk" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#4B89BF"/><stop offset="100%" stop-color="#2D5F8A"/></linearGradient></defs><circle cx="64" cy="64" r="62" fill="url(#pgcb-grad)"/><path d="M34 40v14c0 6 13.4 11 30 11s30-5 30-11V40" fill="url(#pgcb-disk)" stroke="#ffffff" stroke-width="2.5"/><ellipse cx="64" cy="40" rx="30" ry="11" fill="#5c9dcf" stroke="#ffffff" stroke-width="2.5"/><path d="M34 56v14c0 6 13.4 11 30 11s30-5 30-11V56" fill="url(#pgcb-disk)" stroke="#ffffff" stroke-width="2.5"/><path d="M34 72v14c0 6 13.4 11 30 11s30-5 30-11V72" fill="url(#pgcb-disk)" stroke="#ffffff" stroke-width="2.5"/><circle cx="92" cy="92" r="22" fill="#0c1926" stroke="#38BDF8" stroke-width="3"/><path d="M92 78a14 14 0 1 1-10.2 4.4M81.8 78v8.5h8.5" fill="none" stroke="#38BDF8" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/></svg></span><span>pg-clusterbackup — Automatisches Multi-Cluster-Backup für PostgreSQL</span></a>
<a href="/produkte/postgresql-konfigurator" class="sidebar-item" data-tooltip="Interaktiver Tuning-Rechner für Multi-Core-CPUs, RAM, NVMe und Parallel-Worker"><span class="sidebar-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="PostgreSQL Konfigurator Logo"><defs><linearGradient id="pgconf-bg" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#336791"/><stop offset="100%" stop-color="#1a2d42"/></linearGradient></defs><circle cx="64" cy="64" r="62" fill="url(#pgconf-bg)"/><line x1="30" y1="42" x2="98" y2="42" stroke="#ffffff" stroke-opacity="0.3" stroke-width="4" stroke-linecap="round"/><line x1="30" y1="42" x2="52" y2="42" stroke="#38BDF8" stroke-width="4" stroke-linecap="round"/><circle cx="52" cy="42" r="7" fill="#38BDF8" stroke="#ffffff" stroke-width="2.5"/><line x1="30" y1="64" x2="98" y2="64" stroke="#ffffff" stroke-opacity="0.3" stroke-width="4" stroke-linecap="round"/><line x1="30" y1="64" x2="76" y2="64" stroke="#38BDF8" stroke-width="4" stroke-linecap="round"/><circle cx="76" cy="64" r="7" fill="#38BDF8" stroke="#ffffff" stroke-width="2.5"/><line x1="30" y1="86" x2="98" y2="86" stroke="#ffffff" stroke-opacity="0.3" stroke-width="4" stroke-linecap="round"/><line x1="30" y1="86" x2="40" y2="86" stroke="#38BDF8" stroke-width="4" stroke-linecap="round"/><circle cx="40" cy="86" r="7" fill="#38BDF8" stroke="#ffffff" stroke-width="2.5"/></svg></span><span>PostgreSQL Performance- & Konfigurations-Rechner</span></a>
<a href="/produkte/ollama-top" class="sidebar-item" data-tooltip="Zero-Dependency Terminal-Monitor (otop) für Ollama, GPUs, Multi-Instance Inferenz und Datenbanken unter Windows & Linux."><span class="sidebar-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="ollama-top Logo"><defs><linearGradient id="otop-bg" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#0F172A"/><stop offset="100%" stop-color="#020617"/></linearGradient><linearGradient id="otop-term" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#1E293B"/><stop offset="100%" stop-color="#0B132B"/></linearGradient><linearGradient id="otop-accent" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#10B981"/><stop offset="100%" stop-color="#38BDF8"/></linearGradient><linearGradient id="otop-bar1" x1="0%" y1="100%" x2="0%" y2="0%"><stop offset="0%" stop-color="#059669"/><stop offset="100%" stop-color="#10B981"/></linearGradient><linearGradient id="otop-bar2" x1="0%" y1="100%" x2="0%" y2="0%"><stop offset="0%" stop-color="#0284C7"/><stop offset="100%" stop-color="#38BDF8"/></linearGradient></defs><circle cx="64" cy="64" r="62" fill="url(#otop-bg)" stroke="#38BDF8" stroke-width="2.5"/><rect x="20" y="24" width="88" height="68" rx="8" fill="url(#otop-term)" stroke="#475569" stroke-width="2"/><path d="M20 32a8 8 0 0 1 8-8h72a8 8 0 0 1 8 8v8H20v-8z" fill="#0F172A"/><line x1="20" y1="40" x2="108" y2="40" stroke="#334155" stroke-width="1.5"/><circle cx="29" cy="32" r="2.8" fill="#EF4444"/><circle cx="38" cy="32" r="2.8" fill="#F59E0B"/><circle cx="47" cy="32" r="2.8" fill="#10B981"/><rect x="74" y="30.5" width="24" height="3" rx="1.5" fill="#64748B" opacity="0.6"/><path d="M29 50L37 56L29 62" fill="none" stroke="#10B981" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><line x1="42" y1="62" x2="49" y2="62" stroke="#38BDF8" stroke-width="3" stroke-linecap="round"/><rect x="56" y="53" width="5.5" height="11" rx="1.5" fill="url(#otop-bar1)"/><rect x="65" y="47" width="5.5" height="17" rx="1.5" fill="url(#otop-bar1)"/><rect x="74" y="44" width="5.5" height="20" rx="1.5" fill="url(#otop-bar2)"/><rect x="83" y="50" width="5.5" height="14" rx="1.5" fill="url(#otop-bar2)"/><rect x="92" y="45" width="5.5" height="19" rx="1.5" fill="#818CF8"/><path d="M28 78L44 78L50 71L56 83L62 74L68 79L74 78L100 78" fill="none" stroke="url(#otop-accent)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/><circle cx="94" cy="94" r="22" fill="#0B132B" stroke="#10B981" stroke-width="3"/><path d="M82 98a13 13 0 1 1 24 0" fill="none" stroke="#334155" stroke-width="3" stroke-linecap="round"/><path d="M82 98a13 13 0 0 1 18-11" fill="none" stroke="#10B981" stroke-width="3" stroke-linecap="round"/><line x1="94" y1="94" x2="102" y2="86" stroke="#38BDF8" stroke-width="2.5" stroke-linecap="round"/><circle cx="94" cy="94" r="3" fill="#FFFFFF"/></svg></span><span>ollama-top — Terminal-Monitor für Ollama, GPUs, Multi-Instance LLMs & Enterprise-Datenbanken</span></a>
</div>
</div><a href="/ki-gestuetzte-projektumsetzung" class="sidebar-item sidebar-item--single" data-tooltip="Datenbanken, APIs, Berichte und Migrationen — mit KI-Unterstützung schneller, günstiger und in höherer Qualität umgesetzt."><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M240-80v-172q-57-52-88.5-121.5T120-520q0-150 105-255t255-105q125 0 221.5 73.5T827-615l55 218q4 14-5 25.5T853-360h-93v140q0 24.75-17.62 42.37Q724.75-160 700-160H600v80h-60v-140h160v-200h114l-45-180q-24-97-105-158.5T480-820q-125 0-212.5 86.5T180-522.46q0 64.42 26.32 122.39Q232.65-342.09 281-297l19 18v199h-60Zm257-370Zm-48 76h60l3-44q12-2 22.47-8.46Q544.94-432.92 553-441l42 14 28-48-30-24q5-14 5-29t-5-29l30-24-28-48-42 14q-8.33-7.69-19.17-13.85Q523-635 512-638l-3-44h-60l-3 44q-11 3-21.83 9.15Q413.33-622.69 405-615l-42-14-28 48 30 24q-5 14-5 29t5 29l-30 24 28 48 42-14q8.06 8.08 18.53 14.54Q434-420 446-418l3 44Zm-19.5-104.38q-20.5-20.38-20.5-49.5t20.38-49.62q20.38-20.5 49.5-20.5t49.62 20.38q20.5 20.38 20.5 49.5t-20.38 49.62q-20.38 20.5-49.5 20.5t-49.62-20.38Z"/></svg></span><span>KI-gestützte Projektumsetzung</span></a>
<a href="/kontakt" class="sidebar-item sidebar-item--single" data-tooltip="Kontaktformular"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm320-280L160-640v400h640v-400L480-440Zm0-80 320-200H160l320 200ZM160-640v-80 480-400Z"/></svg></span><span>Kontakt</span></a>
<a href="/partnerschaft" class="sidebar-item sidebar-item--single" data-tooltip="Partnerschaft GFU AG"><span class="sidebar-icon"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="currentColor"><path d="M240-40q-50 0-85-35t-35-85q0-50 35-85t85-35q14 0 26 3t23 8l57-71q-28-31-39-70t-5-78l-81-27q-17 25-43 40t-58 15q-50 0-85-35T0-580q0-50 35-85t85-35q50 0 85 35t35 85v8l81 28q20-36 53.5-61t75.5-32v-87q-39-11-64.5-42.5T360-840q0-50 35-85t85-35q50 0 85 35t35 85q0 42-26 73.5T510-724v87q42 7 75.5 32t53.5 61l81-28v-8q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35q-32 0-58.5-15T739-515l-81 27q6 39-5 77.5T614-340l57 70q11-5 23-7.5t26-2.5q50 0 85 35t35 85q0 50-35 85t-85 35q-50 0-85-35t-35-85q0-20 6.5-38.5T624-232l-57-71q-41 23-87.5 23T392-303l-56 71q11 15 17.5 33.5T360-160q0 50-35 85t-85 35ZM120-540q17 0 28.5-11.5T160-580q0-17-11.5-28.5T120-620q-17 0-28.5 11.5T80-580q0 17 11.5 28.5T120-540Zm120 420q17 0 28.5-11.5T280-160q0-17-11.5-28.5T240-200q-17 0-28.5 11.5T200-160q0 17 11.5 28.5T240-120Zm240-680q17 0 28.5-11.5T520-840q0-17-11.5-28.5T480-880q-17 0-28.5 11.5T440-840q0 17 11.5 28.5T480-800Zm0 440q42 0 71-29t29-71q0-42-29-71t-71-29q-42 0-71 29t-29 71q0 42 29 71t71 29Zm240 240q17 0 28.5-11.5T760-160q0-17-11.5-28.5T720-200q-17 0-28.5 11.5T680-160q0 17 11.5 28.5T720-120Zm120-420q17 0 28.5-11.5T880-580q0-17-11.5-28.5T840-620q-17 0-28.5 11.5T800-580q0 17 11.5 28.5T840-540ZM480-840ZM120-580Zm360 120Zm360-120ZM240-160Zm480 0Z"/></svg></span><span>Partnerschaft</span></a>
</nav>
</aside>
<script>
try {
if (window.innerWidth > 768 && localStorage.getItem('sidebarCollapsed') === '1') {
const sidebar = document.getElementById('app-sidebar');
sidebar.classList.add('collapsed');
const collapseBtn = sidebar.querySelector('.sidebar-collapse-btn--cms');
if (collapseBtn) collapseBtn.setAttribute('aria-expanded', 'false');
}
} catch (e) {}
</script>
<div class="sidebar-overlay" id="sidebar-overlay" onclick="app.closeMobileSidebar()"></div>
<div class="cms-main">
<button class="sidebar-hamburger noprint" id="sidebar-hamburger" onclick="app.openMobileSidebar()" title="Menü öffnen" aria-label="Menü öffnen">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="24" height="24">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</button>
<main class="app-workspace">
<article class="cms-article">
<section class="cms-content-block"><section class="landing-hero">
<span class="landing-hero__badge">Entwicklung · Beratung · Schulung</span>
<h1 class="landing-hero__title">Wissenstransfer statt Abhängigkeit.</h1>
<p class="landing-hero__subtitle">Ich entwickle, berate und schule rund um datengetriebene Software – von der Datenbank über das Berichtswesen bis zum Einsatz von KI. Das Ziel: Euer Team kann es danach selbst.</p>
<div class="landing-hero__actions">
<a href="/kontakt/kontakt" class="btn btn--primary btn--lg">Vorhaben besprechen</a>
<a href="#wege" class="btn btn--secondary btn--lg">So arbeite ich</a>
</div>
<svg class="landing-hero__img landing-hero__img--wide" viewBox="0 0 760 320" role="img" aria-labelledby="start-fig1-title" aria-describedby="start-fig1-desc" xmlns="http://www.w3.org/2000/svg">
<title id="start-fig1-title">Aus vielen Technologien wird ein Ergebnis</title>
<desc id="start-fig1-desc">Viele Linien für Datenbanken, Sprachen und Datenformate – SQL Server, PostgreSQL, SSRS, SSAS, T-SQL, PL/pgSQL, Oracle, Access, PHP, Java, JavaScript, C, C++, JSON, XML, Excel und KI – laufen in einem Zentrum zusammen und werden zu Berichten, Anwendungen und Entscheidungen, dargestellt als Dashboard.</desc>
<defs>
<linearGradient id="start-h-line" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="440" y2="0"><stop offset="0%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0"/><stop offset="45%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.35"/><stop offset="100%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.95"/></linearGradient>
<linearGradient id="start-h-line2" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="440" y2="0"><stop offset="0%" style="stop-color: var(--text-muted); stop-opacity: 0"/><stop offset="50%" style="stop-color: var(--text-muted); stop-opacity: 0.25"/><stop offset="100%" style="stop-color: var(--text-muted); stop-opacity: 0.55"/></linearGradient>
<linearGradient id="start-h-out" gradientUnits="userSpaceOnUse" x1="560" y1="0" x2="610" y2="0"><stop offset="0%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.95"/><stop offset="100%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.25"/></linearGradient>
<radialGradient id="start-h-glow" cx="50%" cy="50%" r="50%"><stop offset="0%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.45"/><stop offset="100%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0"/></radialGradient>
<linearGradient id="start-h-hex" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#ffffff" stop-opacity="0.35"/><stop offset="50%" stop-color="#ffffff" stop-opacity="0.06"/><stop offset="100%" stop-color="#000000" stop-opacity="0.12"/></linearGradient>
<filter id="start-h-shadow" x="-30%" y="-30%" width="160%" height="170%"><feDropShadow dx="0" dy="12" stdDeviation="14" flood-opacity="0.3"/></filter>
<filter id="start-h-blur" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="2.2"/></filter>
</defs>
<ellipse cx="500" cy="160" rx="190" ry="140" fill="url(#start-h-glow)"/>
<g fill="none" stroke-linecap="round">
<path d="M0 4.0 C 230 8.0, 305 121.5, 436 146.5" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 22.5 C 197 37.5, 308 113.0, 436 147.4" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 26.0 C 184 10.0, 343 126.9, 436 148.3" stroke="url(#start-h-line)" stroke-width="2.2"/>
<path d="M0 36.4 C 198 19.4, 298 118.3, 436 149.2" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 45.9 C 171 55.9, 342 121.6, 436 150.1" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 62.4 C 213 80.4, 333 133.4, 436 151.0" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 67.9 C 193 79.9, 338 119.7, 436 151.9" stroke="url(#start-h-line)" stroke-width="2.2"/>
<path d="M0 84.4 C 224 67.4, 337 135.4, 436 152.8" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 91.9 C 183 100.9, 290 130.5, 436 153.7" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 100.3 C 162 113.3, 338 142.1, 436 154.6" stroke="url(#start-h-line)" stroke-width="2.2"/>
<path d="M0 109.8 C 214 117.8, 299 148.0, 436 155.5" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 127.3 C 178 113.3, 300 150.2, 436 156.4" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 134.8 C 223 142.8, 295 153.0, 436 157.3" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 145.3 C 162 128.3, 331 153.0, 436 158.2" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 154.8 C 163 140.8, 322 158.2, 436 159.1" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 167.2 C 226 152.2, 291 161.4, 436 160.0" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 177.7 C 160 163.7, 320 165.3, 436 160.9" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 182.2 C 215 182.2, 313 165.1, 436 161.8" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 199.7 C 147 190.7, 345 174.2, 436 162.7" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 207.2 C 190 205.2, 327 175.4, 436 163.6" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 213.7 C 154 208.7, 304 178.5, 436 164.5" stroke="url(#start-h-line)" stroke-width="2.2"/>
<path d="M0 228.1 C 201 224.1, 305 178.3, 436 165.4" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 241.6 C 207 235.6, 342 182.6, 436 166.3" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 251.1 C 175 251.1, 345 180.9, 436 167.2" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 255.6 C 223 257.6, 314 197.7, 436 168.1" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 267.1 C 196 256.1, 342 196.8, 436 169.0" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 284.6 C 196 286.6, 298 211.0, 436 169.9" stroke="url(#start-h-line)" stroke-width="2.2"/>
<path d="M0 292.0 C 196 302.0, 317 205.1, 436 170.8" stroke="url(#start-h-line)" stroke-width="1.6"/>
<path d="M0 305.5 C 210 314.5, 312 212.4, 436 171.7" stroke="url(#start-h-line2)" stroke-width="1.2"/>
<path d="M0 314.0 C 221 312.0, 297 198.8, 436 172.6" stroke="url(#start-h-line)" stroke-width="2.2"/>
</g>
<g style="fill: var(--btn-primary-bg)">
<circle cx="120" cy="46" r="2.4" opacity="0.9"/><circle cx="120" cy="46" r="6.24" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="210" cy="92" r="1.8" opacity="0.9"/><circle cx="210" cy="92" r="4.68" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="168" cy="140" r="2.2" opacity="0.9"/><circle cx="168" cy="140" r="5.72" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="262" cy="128" r="1.6" opacity="0.9"/><circle cx="262" cy="128" r="4.16" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="96" cy="204" r="2" opacity="0.9"/><circle cx="96" cy="204" r="5.2" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="230" cy="214" r="2.4" opacity="0.9"/><circle cx="230" cy="214" r="6.24" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="318" cy="186" r="1.8" opacity="0.9"/><circle cx="318" cy="186" r="4.68" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="150" cy="262" r="1.6" opacity="0.9"/><circle cx="150" cy="262" r="4.16" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="340" cy="150" r="2.2" opacity="0.9"/><circle cx="340" cy="150" r="5.72" opacity="0.5" filter="url(#start-h-blur)"/>
<circle cx="60" cy="118" r="1.6" opacity="0.9"/><circle cx="60" cy="118" r="4.16" opacity="0.5" filter="url(#start-h-blur)"/>
</g>
<g font-family="inherit" font-size="12" font-weight="700">
<rect x="18" y="7" width="86" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--btn-primary-bg)" fill-opacity="0.92"/><text x="61.0" y="22" text-anchor="middle" style="fill: var(--btn-primary-bg)">SQL Server</text>
<rect x="152" y="25" width="86" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--btn-primary-bg)" fill-opacity="0.92"/><text x="195.0" y="40" text-anchor="middle" style="fill: var(--btn-primary-bg)">PostgreSQL</text>
<rect x="268" y="63" width="46" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--btn-primary-bg)" fill-opacity="0.92"/><text x="291.0" y="78" text-anchor="middle" style="fill: var(--btn-primary-bg)">SSRS</text>
<rect x="308" y="205" width="46" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--btn-primary-bg)" fill-opacity="0.92"/><text x="331.0" y="220" text-anchor="middle" style="fill: var(--btn-primary-bg)">SSAS</text>
<rect x="40" y="67" width="53" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="66.5" y="82" text-anchor="middle" style="fill: var(--text-main)">T-SQL</text>
<rect x="118" y="97" width="60" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="148.0" y="112" text-anchor="middle" style="fill: var(--text-main)">Oracle</text>
<rect x="214" y="145" width="46" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="237.0" y="160" text-anchor="middle" style="fill: var(--text-main)">JSON</text>
<rect x="24" y="141" width="40" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="44.0" y="156" text-anchor="middle" style="fill: var(--text-main)">PHP</text>
<rect x="92" y="163" width="46" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="115.0" y="178" text-anchor="middle" style="fill: var(--text-main)">Java</text>
<rect x="30" y="221" width="73" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--btn-primary-bg)" fill-opacity="0.92"/><text x="66.5" y="236" text-anchor="middle" style="fill: var(--btn-primary-bg)">PL/pgSQL</text>
<rect x="150" y="217" width="40" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="170.0" y="232" text-anchor="middle" style="fill: var(--text-main)">XML</text>
<rect x="196" y="269" width="33" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--btn-primary-bg)" fill-opacity="0.92"/><text x="212.5" y="284" text-anchor="middle" style="fill: var(--btn-primary-bg)">KI</text>
<rect x="56" y="275" width="86" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="99.0" y="290" text-anchor="middle" style="fill: var(--text-main)">JavaScript</text>
<rect x="250" y="99" width="53" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="276.5" y="114" text-anchor="middle" style="fill: var(--text-main)">Excel</text>
<rect x="74" y="37" width="60" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="104.0" y="52" text-anchor="middle" style="fill: var(--text-main)">Access</text>
<rect x="250" y="241" width="27" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="263.5" y="256" text-anchor="middle" style="fill: var(--text-main)">C</text>
<rect x="110" y="247" width="40" height="22" rx="11" style="fill: var(--bg-panel); stroke: var(--border-color)" fill-opacity="0.92"/><text x="130.0" y="262" text-anchor="middle" style="fill: var(--text-main)">C++</text>
</g>
<polygon points="500.0,64.0 583.1,112.0 583.1,208.0 500.0,256.0 416.9,208.0 416.9,112.0" fill="none" stroke-width="1.5" style="stroke: var(--btn-primary-bg)" opacity="0.35"/>
<polygon points="500.0,48.0 597.0,104.0 597.0,216.0 500.0,272.0 403.0,216.0 403.0,104.0" fill="none" stroke-width="1" style="stroke: var(--btn-primary-bg)" opacity="0.18"/>
<g filter="url(#start-h-shadow)">
<polygon points="500.0,82.0 567.5,121.0 567.5,199.0 500.0,238.0 432.5,199.0 432.5,121.0" style="fill: var(--btn-primary-bg)"/>
</g>
<polygon points="500.0,82.0 567.5,121.0 567.5,199.0 500.0,238.0 432.5,199.0 432.5,121.0" fill="url(#start-h-hex)"/>
<polygon points="500.0,94.0 557.2,127.0 557.2,193.0 500.0,226.0 442.8,193.0 442.8,127.0" fill="none" stroke="#ffffff" stroke-opacity="0.4" stroke-width="1.2"/>
<g fill="none" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" style="stroke: var(--btn-primary-text)">
<ellipse cx="486" cy="136" rx="16" ry="5.5"/>
<path d="M470 136 v28 c0 3 7 5.5 16 5.5 s16 -2.5 16 -5.5 v-28"/>
<path d="M470 150 c0 3 7 5.5 16 5.5 s16 -2.5 16 -5.5"/>
</g>
<g style="fill: var(--btn-primary-text)">
<rect x="510" y="160" width="6" height="14" rx="1.5"/><rect x="519" y="150" width="6" height="24" rx="1.5"/><rect x="528" y="142" width="6" height="32" rx="1.5"/>
</g>
<text x="500" y="282" text-anchor="middle" font-family="inherit" font-size="12" font-weight="600" style="fill: var(--text-muted)">Berichte · Anwendungen · Entscheidungen</text>
<g fill="none" stroke="url(#start-h-out)" stroke-linecap="round" stroke-width="2.2">
<path d="M566 150 C 588 150, 592 120, 612 118"/><path d="M570 160 L 612 160"/><path d="M566 170 C 588 170, 592 200, 612 202"/>
</g>
<g filter="url(#start-h-shadow)">
<rect x="606" y="70" width="148" height="180" rx="16" style="fill: var(--bg-panel); stroke: var(--border-color)"/>
</g>
<g>
<circle cx="622" cy="86" r="3.5" style="fill: var(--text-muted)" opacity="0.5"/><circle cx="633" cy="86" r="3.5" style="fill: var(--text-muted)" opacity="0.5"/><circle cx="644" cy="86" r="3.5" style="fill: var(--btn-primary-bg)"/>
<rect x="618" y="100" width="58" height="34" rx="8" style="fill: var(--btn-primary-bg)" opacity="0.14"/><rect x="684" y="100" width="58" height="34" rx="8" style="fill: var(--btn-primary-bg)" opacity="0.14"/>
<rect x="626" y="110" width="30" height="5" rx="2.5" style="fill: var(--text-muted)" opacity="0.6"/><rect x="626" y="120" width="40" height="7" rx="3" style="fill: var(--btn-primary-bg)"/>
<rect x="692" y="110" width="30" height="5" rx="2.5" style="fill: var(--text-muted)" opacity="0.6"/><rect x="692" y="120" width="34" height="7" rx="3" style="fill: var(--btn-primary-bg)"/>
<rect x="622" y="176" width="10" height="22" rx="2" style="fill: var(--btn-primary-bg)" opacity="0.45"/><rect x="636" y="164" width="10" height="34" rx="2" style="fill: var(--btn-primary-bg)" opacity="0.7"/><rect x="650" y="154" width="10" height="44" rx="2" style="fill: var(--btn-primary-bg)"/><rect x="664" y="170" width="10" height="28" rx="2" style="fill: var(--btn-primary-bg)" opacity="0.6"/>
<path d="M684 192 C 696 188, 702 166, 714 170 S 732 152, 742 148" fill="none" stroke-width="2.4" stroke-linecap="round" style="stroke: var(--btn-primary-bg)"/><circle cx="742" cy="148" r="3.5" style="fill: var(--btn-primary-bg)"/>
<rect x="618" y="212" width="124" height="6" rx="3" style="fill: var(--text-muted)" opacity="0.35"/><rect x="618" y="226" width="92" height="6" rx="3" style="fill: var(--text-muted)" opacity="0.25"/>
</g>
</svg>
</section>
<section class="landing-section landing-section--alt" id="wege">
<div class="landing-section__inner">
<div class="landing-section__header">
<span class="landing-overline">Vier Leistungen, ein Ziel</span>
<h2 class="landing-section__title">Wie ich mit euch arbeite</h2>
<p class="landing-section__intro">Ob ich Berichte baue, Code schreibe, Entscheidungen begleite oder schule, hängt davon ab, was euer Vorhaben gerade braucht. Oft ist es eine Mischung – und das Wissen soll immer bei euch bleiben.</p>
</div>
<div class="landing-grid landing-grid--2">
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3v18h18"/><path d="M7 15l4-4 3 3 5-6"/></svg></div>
<h3 class="landing-card__title">Datenanalyse und Reporting</h3>
<p class="landing-card__tagline">Wissen in den Zahlen</p>
<p class="landing-card__desc">Aus Rohdaten werden Berichte und Auswertungen, die regelmäßig und automatisch bei den richtigen Leuten ankommen – mit SQL Server Reporting Services, Analysis Services oder direkt mit SQL.</p>
<ul class="landing-card__benefits">
<li>Berichte und Dashboards für Fachabteilungen</li>
<li>Analytische Modelle für viele Dimensionen</li>
<li>Automatische Verteilung statt Handarbeit</li>
</ul>
<p class="landing-card__more"><a href="/seminare/sql-server/sql-server-reporting-services-seitenbasierte-berichte">Berichte mit Reporting Services</a></p>
</div>
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg></div>
<h3 class="landing-card__title">Entwicklung</h3>
<p class="landing-card__tagline">Wissen im Code</p>
<p class="landing-card__desc">Ich arbeite in eurem Projekt mit: Datenbankschicht, Berichte, Schnittstellen, Datenverarbeitung. Entscheidungen und Kniffe stehen im Repository, nicht nur in meinem Kopf.</p>
<ul class="landing-card__benefits">
<li>Mitarbeit im bestehenden Code</li>
<li>Pläne, Tests und Doku im Repository</li>
<li>Übergabe ans Team als fester Teil</li>
</ul>
<p class="landing-card__more"><a href="/projekt/projektunterstuetzung">Projektunterstützung</a></p>
</div>
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 18h6"/><path d="M10 22h4"/><path d="M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z"/></svg></div>
<h3 class="landing-card__title">Beratung</h3>
<p class="landing-card__tagline">Wissen in den Entscheidungen</p>
<p class="landing-card__desc">Datenmodell, Berichtswesen, Abfrage-Performance, Migration, Einsatz von KI: Ich schaue mir eure Systeme an, messe statt zu raten und begründe jede Empfehlung so, dass ihr sie selbst prüfen könnt.</p>
<ul class="landing-card__benefits">
<li>Befund mit Messwerten statt Bauchgefühl</li>
<li>Empfehlungen mit Begründung und Aufwand</li>
<li>Begleitung bei der Umsetzung</li>
</ul>
<p class="landing-card__more"><a href="/projekt/consulting-rheinland">Beratung im Rheinland und remote</a></p>
</div>
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg></div>
<h3 class="landing-card__title">Seminare und Coaching</h3>
<p class="landing-card__tagline">Wissen im Team</p>
<p class="landing-card__desc">Workshops und Seminare für euer Team, inhouse oder remote – auf Wunsch an euren eigenen Daten und eurem eigenen Code. Dazu Coaching am Arbeitsplatz, wenn es um ein konkretes Problem geht.</p>
<ul class="landing-card__benefits">
<li>Inhalte auf euer Team zugeschnitten</li>
<li>Übungen an euren Systemen möglich</li>
<li>Coaching direkt am Projekt</li>
</ul>
<p class="landing-card__more"><a href="/seminare/seminar">Seminare und Workshops</a></p>
</div>
</div>
</div>
</section>
<section class="landing-section">
<div class="landing-section__inner">
<div class="landing-section__header">
<span class="landing-overline">Breite</span>
<h2 class="landing-section__title">Was ich mitbringe</h2>
<p class="landing-section__intro">Ein Ausschnitt aus den Themen, zu denen es bei mir Projekte, Seminare und Workshops gibt – von der Datenbank bis zur Anwendung.</p>
</div>
<div class="landing-grid landing-grid--2">
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"/><path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"/></svg></div>
<h3 class="landing-card__title">Datenbanken</h3>
<p class="landing-card__desc">Datenbankdesign, SQL und schnelle Abfragen, PostgreSQL-Administration und Migrationen nach PostgreSQL – mit dem Ziel, dass dabei nichts überrascht.</p>
<ul class="landing-tags">
<li class="landing-tags__item">Microsoft SQL Server</li>
<li class="landing-tags__item">PostgreSQL</li>
<li class="landing-tags__item">Migration von Oracle, DB2, Informix, Sybase und MS Access</li>
</ul>
<p class="landing-card__more"><a href="/seminare/sql-server">SQL-Server-Seminare</a> · <a href="/seminare/postgresql">PostgreSQL-Seminare</a></p>
</div>
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3v18h18"/><rect x="7" y="11" width="3" height="6"/><rect x="12" y="7" width="3" height="10"/><rect x="17" y="13" width="3" height="4"/></svg></div>
<h3 class="landing-card__title">Reporting und BI</h3>
<p class="landing-card__desc">Berichte, die regelmäßig und automatisch bei den richtigen Leuten ankommen, und analytische Modelle für Auswertungen über viele Dimensionen. Dazu mein eigenes Produkt: Databula Reporting, ein Berichtssystem für den eigenen Betrieb – Berichte im Browser gestalten, im eigenen Portal veröffentlichen und automatisch per E-Mail verteilen.</p>
<ul class="landing-tags">
<li class="landing-tags__item">SQL Server Reporting Services</li>
<li class="landing-tags__item">Analysis Services</li>
<li class="landing-tags__item">Databula Reporting</li>
<li class="landing-tags__item">Berichtsdesign</li>
<li class="landing-tags__item">Datenanalyse mit SQL</li>
</ul>
<p class="landing-card__more"><a href="/seminare/sql-server/sql-server-reporting-services-seitenbasierte-berichte">Reporting Services</a> · <a href="/seminare/sql-server/sql-server-analysis-services-molap">Analysis Services</a> · <a href="https://databula.de/">Databula Reporting</a></p>
</div>
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg></div>
<h3 class="landing-card__title">Programmierung</h3>
<p class="landing-card__desc">Von der Programmierung in der Datenbank bis zur Anwendung im Web – objektorientiert, testbar und wartbar.</p>
<ul class="landing-tags">
<li class="landing-tags__item">T-SQL</li>
<li class="landing-tags__item">PL/pgSQL</li>
<li class="landing-tags__item">PHP</li>
<li class="landing-tags__item">JavaScript</li>
<li class="landing-tags__item">HTML und CSS</li>
<li class="landing-tags__item">C und C++</li>
</ul>
<p class="landing-card__more"><a href="/seminare/programmieren">Programmier-Seminare</a></p>
</div>
<div class="landing-card">
<div class="landing-card__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3"/></svg></div>
<h3 class="landing-card__title">KI in der Softwareentwicklung</h3>
<p class="landing-card__desc">KI-Agenten verlässlich im Team einsetzen, KI-Funktionen in eigene Anwendungen einbauen und lokale Modelle betreiben, wenn Daten das Haus nicht verlassen dürfen.</p>
<ul class="landing-tags">
<li class="landing-tags__item">Claude Code</li>
<li class="landing-tags__item">KI-Agenten im Team</li>
<li class="landing-tags__item">Ollama und lokale Modelle</li>
<li class="landing-tags__item">RAG</li>
<li class="landing-tags__item">KI-Funktionen in Anwendungen</li>
</ul>
<p class="landing-card__more"><a href="/seminare/programmieren/ki-programmierung/professionelle-softwareentwicklung-mit-ki-agenten">Softwareentwicklung mit KI-Agenten</a> · <a href="/seminare/programmieren/ki-programmierung">KI-Seminare</a></p>
</div>
</div>
</div>
</section>
<section class="landing-section landing-section--alt">
<div class="landing-split landing-split--reverse">
<div class="landing-split__media">
<svg viewBox="0 0 440 380" role="img" aria-labelledby="start-fig2-title" aria-describedby="start-fig2-desc" xmlns="http://www.w3.org/2000/svg">
<title id="start-fig2-title">Zwei Datenbank-Welten, ein Ergebnis</title>
<desc id="start-fig2-desc">Daten aus Microsoft SQL Server fließen über Reporting Services und Analysis Services, Daten aus PostgreSQL in Anwendungen – beides führt zu Berichten, Analysen und Anwendungen.</desc>
<defs>
<linearGradient id="start-p-bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" style="stop-color: var(--surface-container-high)"/>
<stop offset="100%" style="stop-color: var(--surface-container)"/>
</linearGradient>
<radialGradient id="start-p-glow" cx="50%" cy="30%" r="60%">
<stop offset="0%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.28"/>
<stop offset="100%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0"/>
</radialGradient>
<linearGradient id="start-p-cyl" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" style="stop-color: var(--primary-container)"/>
<stop offset="55%" style="stop-color: var(--btn-primary-bg)"/>
<stop offset="100%" style="stop-color: var(--primary-container)"/>
</linearGradient>
<linearGradient id="start-p-flow" gradientUnits="userSpaceOnUse" x1="0" y1="268" x2="0" y2="222">
<stop offset="0%" style="stop-color: var(--btn-primary-bg); stop-opacity: 0.2"/>
<stop offset="100%" style="stop-color: var(--btn-primary-bg); stop-opacity: 1"/>
</linearGradient>
<filter id="start-p-shadow" x="-20%" y="-20%" width="140%" height="160%">
<feDropShadow dx="0" dy="10" stdDeviation="12" flood-opacity="0.25"/>
</filter>
</defs>
<rect x="0" y="0" width="440" height="380" rx="24" fill="url(#start-p-bg)"/>
<rect x="0" y="0" width="440" height="380" rx="24" fill="url(#start-p-glow)"/>
<g filter="url(#start-p-shadow)">
<rect x="40" y="34" width="360" height="140" rx="18" style="fill: var(--bg-panel); stroke: var(--border-color)"/>
</g>
<g font-family="inherit">
<text x="64" y="66" font-size="14" font-weight="700" style="fill: var(--text-main)">Berichte · Analysen · Anwendungen</text>
<rect x="64" y="122" width="22" height="34" rx="4" style="fill: var(--btn-primary-bg)" opacity="0.45"/>
<rect x="94" y="104" width="22" height="52" rx="4" style="fill: var(--btn-primary-bg)" opacity="0.7"/>
<rect x="124" y="88" width="22" height="68" rx="4" style="fill: var(--btn-primary-bg)"/>
<rect x="154" y="110" width="22" height="46" rx="4" style="fill: var(--btn-primary-bg)" opacity="0.6"/>
<path d="M200 140 C 230 132, 250 96, 280 104 S 330 84, 376 78" fill="none" stroke-width="3" stroke-linecap="round" style="stroke: var(--btn-primary-bg)"/>
<circle cx="376" cy="78" r="5" style="fill: var(--btn-primary-bg)"/>
</g>
<g font-family="inherit" font-size="11" font-weight="700" text-anchor="middle">
<rect x="12" y="192" width="128" height="24" rx="12" style="fill: var(--bg-panel); stroke: var(--border-color)"/>
<text x="76" y="208" style="fill: var(--text-main)">Reporting Services</text>
<rect x="146" y="192" width="120" height="24" rx="12" style="fill: var(--bg-panel); stroke: var(--border-color)"/>
<text x="206" y="208" style="fill: var(--text-main)">Analysis Services</text>
<rect x="290" y="192" width="104" height="24" rx="12" style="fill: var(--bg-panel); stroke: var(--border-color)"/>
<text x="342" y="208" style="fill: var(--text-main)">Anwendungen</text>
</g>
<g fill="none" stroke="url(#start-p-flow)" stroke-width="3" stroke-linecap="round">
<path d="M76 222 C 76 244, 134 236, 134 250"/>
<path d="M206 222 C 206 244, 134 236, 134 250"/>
<path d="M342 222 L 342 250"/>
</g>
<g filter="url(#start-p-shadow)">
<path d="M80 262 a54 14 0 0 0 108 0 v62 a54 14 0 0 1 -108 0 z" fill="url(#start-p-cyl)"/>
<path d="M288 262 a54 14 0 0 0 108 0 v62 a54 14 0 0 1 -108 0 z" fill="url(#start-p-cyl)"/>
</g>
<ellipse cx="134" cy="262" rx="54" ry="14" style="fill: var(--btn-primary-bg)"/>
<ellipse cx="134" cy="262" rx="54" ry="14" fill="#ffffff" opacity="0.18"/>
<ellipse cx="342" cy="262" rx="54" ry="14" style="fill: var(--btn-primary-bg)"/>
<ellipse cx="342" cy="262" rx="54" ry="14" fill="#ffffff" opacity="0.18"/>
<g fill="none" stroke="#ffffff" stroke-opacity="0.25" stroke-width="1.5">
<path d="M80 284 a54 14 0 0 0 108 0"/>
<path d="M80 304 a54 14 0 0 0 108 0"/>
<path d="M288 284 a54 14 0 0 0 108 0"/>
<path d="M288 304 a54 14 0 0 0 108 0"/>
</g>
<g font-family="inherit" font-size="13" font-weight="800" text-anchor="middle">
<text x="134" y="356" style="fill: var(--text-main)">SQL Server</text>
<text x="342" y="356" style="fill: var(--text-main)">PostgreSQL</text>
</g>
</svg>
</div>
<div class="landing-split__body">
<span class="landing-overline">Aus der Praxis</span>
<h2 class="landing-split__title">Aus eigener Praxis, nicht aus dem Lehrbuch</h2>
<p class="landing-split__text">Ich entwickle seit 1986 Software und gebe mein Wissen seit über 30 Jahren als Dozent weiter. Daraus sind über 1.000 Schulungen und Projekte geworden – quer durch Datenbanken, Berichtswesen, Programmierung, Webentwicklung und vieles mehr.</p>
<p class="landing-split__text">Viel davon dreht sich heute um das Berichtswesen mit SQL Server Reporting Services und Analysis Services, um PostgreSQL und um den Einsatz von KI in der Softwareentwicklung.</p>
<p class="landing-split__text">Wie tief das in die Technik geht, zeigt ein eigenes Projekt: eine Plattform, die täglich öffentliche Meldungen der US-Börsenaufsicht in PostgreSQL auswertet – den Aufbau beschreibt <a href="/tipps-und-tricks/postgresql/sec-daten-architektur">der Artikel zur Architektur der Datenplattform</a>. Dazu kommen eigene Werkzeuge wie <a href="/produkte/pg-clusterbackup">pg-clusterbackup</a> und <a href="/produkte/ollama-top">ollama-top</a>.</p>
<div class="landing-stats">
<div class="landing-stats__grid">
<div class="landing-stats__item"><strong class="landing-stats__value">über 1.000</strong><span class="landing-stats__label">Schulungen und Projekte über alle Themen</span></div>
<div class="landing-stats__item"><strong class="landing-stats__value">seit 1986</strong><span class="landing-stats__label">in der Softwareentwicklung</span></div>
<div class="landing-stats__item"><strong class="landing-stats__value">über 30 Jahre</strong><span class="landing-stats__label">als Dozent und Trainer</span></div>
<div class="landing-stats__item"><strong class="landing-stats__value">inhouse & remote</strong><span class="landing-stats__label">direkt an euren Systemen</span></div>
</div>
</div>
</div>
</div>
</section>
<h2>Häufige Fragen (FAQ)</h2>
<h3>Was heißt Wissenstransfer konkret?</h3>
<p>Dass euer Team nach der Zusammenarbeit selbst weiterkommt. Beim Mitentwickeln stehen Entscheidungen und Begründungen im Repository, bei der Beratung sind Empfehlungen so begründet, dass ihr sie nachprüfen könnt, und bei Schulungen arbeitet ihr möglichst an euren eigenen Systemen.</p>
<h3>Muss ich mich zwischen Entwicklung, Beratung und Schulung entscheiden?</h3>
<p>Nein. Viele Vorhaben beginnen mit einer Analyse, gehen in gemeinsame Umsetzung über und enden mit einem Workshop für das Team. Was sinnvoll ist, klären wir im ersten Gespräch.</p>
<h3>Mit welchen Technologien arbeitest du?</h3>
<p>Mit relationalen Datenbanken – vor allem Microsoft SQL Server und PostgreSQL, dazu Oracle und weitere Systeme bei Migrationen –, mit dem Berichtswesen in SQL Server Reporting Services und Analysis Services, mit Programmiersprachen von T-SQL und PL/pgSQL über PHP und JavaScript bis C und C++ sowie mit KI in der Softwareentwicklung (Claude Code, lokale Modelle mit Ollama).</p>
<h3>Findet die Zusammenarbeit vor Ort oder remote statt?</h3>
<p>Beides ist möglich: remote oder bei euch vor Ort, im Raum Köln/Leverkusen und bundesweit.</p>
<h3>Wie fängt eine Zusammenarbeit an?</h3>
<p>Mit einem Gespräch über euer Vorhaben. Danach bekommt ihr einen Vorschlag, wie ich unterstützen kann. Die Anfrage ist unverbindlich und kostenlos.</p>
<section class="landing-cta landing-cta--dark">
<div class="landing-cta__glow"></div>
<h2 class="landing-cta__title">Worum geht es bei euch?</h2>
<p class="landing-cta__text">Erzählt mir kurz von eurem Vorhaben – ich melde mich mit einem Vorschlag, wie ich unterstützen kann.</p>
<div class="landing-cta__actions">
<a href="/kontakt/kontakt" class="btn btn--primary btn--lg">Vorhaben besprechen</a>
</div>
</section>
</section>
</article>
</main>
<footer class="site-footer noprint">
<div class="footer-inner">
<span class="footer-copy">© 2026 dozent.net</span>
<nav class="footer-links">
<a href="/informationen/agb">AGB</a>
<a href="/informationen/impressum">Impressum</a>
<a href="/kontakt/kontakt">Kontakt</a>
<a href="/informationen/datenschutz">Datenschutzerklärung</a>
</nav>
</div>
</footer>
</div>
</div>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://dozent.net/ |
|
2026-10-16 19:09:07 |
| 2 |
https://www.rtwenterprisesinc.com/ |
|
2026-10-16 19:09:07 |
| 3 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:06 |
| 4 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:06 |
| 5 |
https://www.texarkanatwins.com/%25… |
|
2026-10-16 19:09:06 |
| 6 |
https://intensedebate.com/people/r… |
|
2026-10-16 19:09:05 |
| 7 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:05 |
| 8 |
https://www.texarkanatwins.com/%25… |
|
2026-10-16 19:09:05 |
| 9 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:05 |
| 10 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:04 |
| 11 |
https://garrisono098huj2.hyperionw… |
|
2026-10-16 19:09:04 |
| 12 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-16 19:09:03 |
| 13 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:03 |
| 14 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:03 |
| 15 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:02 |
| 16 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:02 |
| 17 |
https://www.texarkanatwins.com/%25… |
|
2026-10-16 19:09:01 |
| 18 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:01 |
| 19 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-16 19:09:00 |
| 20 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:09:00 |