Files
moonweb-site/stefankoelle/index.njk
T
stefankoelle 466df3bd04 Consolidate all moonweb.org sites under www.moonweb.org
- Migrate timecapsule (old www.moonweb.org) into monorepo as Eleventy 2.x site
- Change all site URLs from subdomains to subdirectories under www.moonweb.org
- Replace Cloudflare Pages deployment with IONOS SFTP
- Update site-switcher, footer, and all internal links
- Add merge script for combining all sites into single deployment
- Update CI/CD workflow for IONOS SFTP deployment
- Update stefankoelle.de references to use new URLs
- Update AGENTS.md and README.md documentation
2026-09-11 10:53:22 +02:00

248 lines
16 KiB
Plaintext

---
title: "Stefan Koelle"
description: "Experienced Senior Software Developer and Software Architect with over 20 years of experience. Specialized in .NET Core and Kubernetes, with hands-on experience in AI-assisted development using Claude Code."
layout: stefankoelle.njk
---
<div class="headlinespace">
<a id="home"></a>
</div>
<div id="headline">
<h1>Stefan Kölle</h1>
Senior Software Developer & Software&nbsp;Architect
</div>
<div class="space">
<a id="cv"></a>
</div>
{% include "cv-content.njk" %}
<div class="space">
<a id="personalprojects"></a>
</div>
<div id="personalprojectscontent">
<h2>Personal Projects</h2>
<h3>moonweb.org (since 2020)</h3>
<p>My personal corner on the internet, documenting the homelab, smart home setups, infrastructure experiments, retro hardware, and the code that ties it all together. Everything runs on a homelab that has been evolving since the mid-90s.</p>
<ul>
<li><b><a href="https://www.moonweb.org/">hub.moonweb.org</a></b>: Overview of all sites and projects.</li>
<li><b><a href="https://www.moonweb.org/infra/">infra.moonweb.org</a></b>: Proxmox cluster, Synology NAS, Docker containers, networking, and backup strategies.</li>
<li><b><a href="https://www.moonweb.org/smarthome/">smarthome.moonweb.org</a></b>: Home Assistant, MQTT sensors, AirPlay audio, energy monitoring, and ESP32 dashboards.</li>
<li><b><a href="https://www.moonweb.org/code/">code.moonweb.org</a></b>: Curated catalog of public GitHub projects, sorted by topic.</li>
<li><b><a href="https://www.moonweb.org/retro/">retro.moonweb.org</a></b>: Atari ST, Amiga, DOS, MiSTer FPGA, and the retro computing corner.</li>
</ul>
<h3>Home Network Projects (2025-2026)</h3>
<ul>
<li><b>Docker Host (Proxmox PVE)</b><br>Virtualized Docker host with Debian 12.2 running containerized services including Portainer, Prometheus, Grafana, Gitea, monitoring exporters, and more. Full architecture documented on <a href="https://www.moonweb.org/infra//docker/">infra.moonweb.org</a>.</li>
<li><b>InfluxDB Time-Series Integration</b><br>Deployed InfluxDB 2.x for sensor data collection from Tasmota smart plugs and HomematicIP thermostats, replacing older MySQL-based storage with modern time-series architecture.</li>
<li><b>LED Matrix ESP32 InfluxDB Integration</b><br>Data persistence layer for <a href="/ledmatrix/">LED Matrix ESP32</a> sensor systems (DHT22 temperature/humidity) with InfluxDB 2.x backend. Automated collection at 60-second intervals for historical trend analysis.</li>
<li><b>Air Quality Dashboard</b><br>Dynamic HTML5 dashboard consuming real-time sensor data from InfluxDB via Flux query API. Displays temperature and humidity across all network locations, accessible via nginx reverse proxy. See also <a href="https://www.moonweb.org/smarthome//air-quality/">smarthome.moonweb.org</a>.</li>
<li><b>Tasmota Energy Monitoring</b><br>Smart plug energy tracking with 8 Tasmota-enabled devices, integrating MQTT data collection and visualization. See also <a href="https://www.moonweb.org/smarthome//tasmota-energy/">smarthome.moonweb.org</a>.</li>
<li><b>Network Hardware & Monitoring</b><br>Four Zyxel GS1200-8HP managed switches in the server room, living room, and study, plus a <a href="https://www.moonweb.org/infra//openwrt/">Multi-WAN OpenWrt router</a> for failover and VLAN segmentation. All switches feed into <a href="https://www.moonweb.org/infra//monitoring/">Prometheus monitoring</a> via SNMP exporters, and IoT devices are isolated in VLAN 189.</li>
</ul>
<h3>Retro Computing (2022/2023)</h3>
<ul>
<li>MiSTer and MiST FPGA Systems for preservation (see also <a href="https://www.moonweb.org/retro//mist-mister-fpga/">retro.moonweb.org</a>).</li>
<li><a href="https://www.moonweb.org/retro//dos-486-tower/">DOS System</a>, <a href="https://www.moonweb.org/retro//the-a1200/">Amiga System</a>, and <a href="https://www.moonweb.org/retro//atari-mega-st-fleet/">Atari ST System</a> with the environment from the early 90s.</li>
</ul>
<h3>Upgrade of old <a href="https://www.moonweb.org/retro//atari-mega-st-fleet/">Atari Mega 4</a> (2021)</h3>
<ul>
<li>Gotek Drive</li>
<li>More RAM</li>
<li>Alternative TOS ROMs</li>
<li>SD HDD Adapter</li>
</ul>
<h3>Home Automation (since 2018)</h3>
<ul>
<li><a href="/ledmatrix/">LED Matrix ESP32</a> for date, time, weather, and status messages via Web API, with a display in every room.</li>
<li>MQTT for message transfer and remote control via Tasmota RF modules (433MHz).</li>
<li>Power meter monitoring for washing machine and tumbler with info messages on LED matrices when finished.</li>
<li>MP3 player with automated playback (e.g., bathroom radio when light is on).</li>
<li>Raspberry Pi with pilight and RF433 module for remote control power plugs.</li>
</ul>
<h3>Various Docker Systems (since 2016)</h3>
<ul>
<li><b>Monitoring:</b> <a href="https://www.moonweb.org/infra//monitoring/">Prometheus, Grafana, InfluxDB</a>, cAdvisor, Node Exporter, SNMP exporters</li>
<li><b>Smart Home:</b> Mosquitto MQTT broker, <a href="https://www.moonweb.org/smarthome//homematic-mqtt/">Home Assistant</a></li>
<li><b>Infrastructure:</b> Portainer, Nginx Proxy Manager, Authelia (SSO), Watchtower, Healthchecks</li>
<li><b>Applications:</b> Gitea (GitHub mirror), <a href="https://www.moonweb.org/infra//docker/">Stirling PDF</a>, <a href="https://www.moonweb.org/smarthome//tubearchivist/">TubeArchivist</a>, <a href="https://www.moonweb.org/smarthome//tubearchivist/">TubeSync</a>, <a href="https://www.moonweb.org/infra//docker/">SearXNG</a></li>
</ul>
<h3>Walk-on Song (2019)</h3>
<ul>
<li>When someone enters the office, their jingle is played.</li>
<li>ESP32 scans WiFi, if a known device is found for the first time per day, the jingle is played.</li>
<li>MP3 Module for playback on attached speaker.</li>
</ul>
<h3><a href="https://www.moonweb.org/smarthome//kids-rfid-player/">Kids RFID MP3 Player</a> (2018)</h3>
<ul>
<li>Interactive audio playback system utilizing RFID technology.</li>
<li>Powered by an Arduino Nano for compact and efficient operation.</li>
<li>Plays specific audio files when RFID-tagged objects or cards are placed on the device.</li>
<li>Customizable: users can upload and assign personalized audio content to RFID tags.</li>
</ul>
<h3>.NET Community Activity (2009 - 2011)</h3>
<ul>
<li>Attended multiple .NET Open Spaces, including <a href="https://buildbroken.moonweb.org/posts/dotnet-openspace-sued-2009/" target="_blank">Ulm 2009</a> and <a href="https://buildbroken.moonweb.org/posts/dotnet-openspace-leipzig-2009/" target="_blank">Leipzig 2009</a>.</li>
<li>Developed a schema-less object storage system named <a href="https://sourceforge.net/projects/stupiddb/" target="_blank">StupidDB</a>.</li>
<li>Contributed to a <a href="https://buildbroken.moonweb.org/" target="_blank">developer blog</a> with colleagues.</li>
<li>Actively participated in Coding Dojos at AutoScout24.</li>
</ul>
<h3>Owner &amp; Developer, <a href="https://www.inseco.de" target="_blank">inseco.de</a> (2003 - 2008)</h3>
<ul>
<li>Managed approximately 20 clients, primarily from the gastronomy and club sectors.</li>
<li>Developed a CMS system for maintaining their websites, programmed in PHP and MySQL.</li>
<li>Included modules for photo galleries, menus, and events.</li>
</ul>
<h3>Home Network Projects during IT Manager Phase (2000 - 2006)</h3>
<ul>
<li>Set up a home network with various Linux servers and Windows NT 4.0.</li>
<li>Implemented a predecessor to the pfSense firewall.</li>
<li>Managed a FreeBSD server with Apache, Sendmail, and Perl scripts.</li>
<li>Maintained an NT 4.0 file server.</li>
<li>Administered Windows 98 and Windows 2000 hosts.</li>
<li>More info at <a href="https://www.moonweb.org/network/" target="_blank">moonweb.org/network/</a></li>
</ul>
<h3>Mailbox/Fidonet (1994 - 2000)</h3>
<ul>
<li>Operated a BBS and Fidonet Node (see also <a href="https://28k8.moonweb.org/bbs/fido/nodelist/">FidoNet Nodelist</a> on 28k8.moonweb.org).</li>
<li>Managed a node in Augsburg with an uplink directly to the NC in Munich.</li>
<li>Software was running on an OS/2 computer.</li>
<li>Utilized 2x ISDN and 1x MODEM connections.</li>
<li>Had about 20 subnodes and points.</li>
<li>Served as the Bavaria HUB/HOST for various old networks.</li>
<li>Developed several small software tools in Turbo Pascal for DOS.</li>
</ul>
<h3>PC Intro / Game / Software Development (1992 - 1994)</h3>
<ul>
<li>Released <a href="https://www.moonweb.org/phobia/" target="_blank">Phobia Welcome Intro (Sourcecode/Picture/Video)</a> for 486 PC in 1994.</li>
<li>Released <a href="https://www.moonweb.org/tcm/" target="_blank">Tr@anceMission Intros (Sourcecode/Pictures/Videos)</a> in 1992 and 1993.</li>
<li>Developed Turbo Pascal Graphics Library <a href="https://github.com/skoelle/turbopascal-xlib-unit" target="_blank">X-Lib Unit (Sourcecode)</a>.</li>
<li>Used Turbo Pascal and inline assembler for development.</li>
</ul>
<h3>Atari ST Software Development (1990 - 1992)</h3>
<ul>
<li>Completed game 'Atom oh no' in 1992 (GFA Basic)</li>
</ul>
</div>
<div class="space">
<a id="programminglanguages"></a>
</div>
<div id="programminglanguagescontent">
<h2>Programming Languages</h2>
<h3>AI-Assisted Development</h3>
<p>I've fully embraced the AI-assisted development paradigm since early 2025. At work, I've taught <strong>Claude Code</strong> a workflow for handling Jira stories end-to-end: it evaluates requirements, provides feedback to the PO, and creates a detailed implementation plan. From there, it's mostly about supervising the plan while the code generation runs largely autonomously. For code review, we use a second AI (e.g., Codex) as a quality gate to catch issues that might slip through. In migration projects, I define the exact plan upfront and Claude Code executes it with increasing independence. The output gain is massive, delivering in a fraction of the time.</p>
<p>Privately, I work with <strong><a href="https://opencode.ai">OpenCode</a></strong> paired with OpenCode Zen, Merge Gateway, and OpenRouter, mostly for Python-based home lab and automation projects. See my <a href="https://www.moonweb.org/code/">GitHub projects</a> for examples and the <a href="https://www.moonweb.org/infra//dev-environment/">Dev VM setup</a> for the infrastructure behind this workflow.</p>
<h3>.NET Core</h3>
<ul>
<li>Working with .NET Core since 2018 at stellenanzeigen.de GmbH &amp; Co. KG, which became TENHIL GmbH &amp; Co. KG in 2022, where I migrated the old VB and ASP-Classic applications to modern .NET Core.</li>
<li>Built around a dozen microservices, including Jobs Per Mail, JobApply, GeoService, Feedexporter, and Salary Data Service, first hosted on Azure and built with Docker, Terraform, Azure Tables, Azure Blobs, S3 buckets, and PostgreSQL.</li>
<li>Since this year, all of these microservices run in our self-hosted Kubernetes cluster on AWS machines.</li>
<li>Introduced Squidex as a headless CMS for the microservice backend, with Sentry and Loki for monitoring and logging, and Quartz.NET, later Hangfire.NET, for scheduled jobs.</li>
</ul>
<h3>TypeScript</h3>
<ul>
<li>Using Node.js privately for over a decade, TypeScript since its early days, and professionally at TENHIL since 2024.</li>
<li>Since this year, TypeScript is my go-to for AI-built microservices.</li>
<li>Built an MCP (Model Context Protocol) server for ChatGPT integration in 6 half-days using Claude Code.</li>
<li>Implemented a TypeScript widget renderer for AI-driven applications with the OpenAI Chat Kit.</li>
</ul>
<h3>Python</h3>
<ul>
<li>Working with Python since 2020 on private projects, home lab tooling, and automation scripts.</li>
<li>Since this year, increasingly using Python for home network projects, with development accelerated by AI-assisted workflows in OpenCode.</li>
</ul>
<h3>.NET Framework</h3>
<ul>
<li>As CTO at stellenanzeigen.de GmbH &amp; Co. KG (2004-2010), drove the move from ASP Classic to the .NET Framework, replacing the monolithic setup with a layered architecture of SOAP web services.</li>
<li>Hosted applications on Windows IIS with MSSQL as the database.</li>
<li>Introduced TDD and DDD practices and shared that knowledge with the .NET community at OpenSpaces and CodingDojos.</li>
</ul>
<h3>PHP</h3>
<ul>
<li>Developed a website CMS system (activetool.de) for multiple clients from 2003 to 2008.</li>
<li>Created a PHP Ticketing System and worked with MySQL databases.</li>
</ul>
<h3>ASP-Classic</h3>
<ul>
<li>Started with ASP-Classic on PC (Windows) in 1999 while working as a web developer at IXOS AG: managed the web development environment and built internal departmental websites, introduced search functions, request systems, and link checkers to optimize web servers, developed a Visual Basic application for generating static web pages, and designed a workflow for maintaining the website using ASP scripts and SQL databases.</li>
<li>Led the IT and development department at stellenanzeigen.de GmbH &amp; Co. KG from 2000 to 2003, migrating applications from idc/htx to ASP-Classic and developing a multi-client web frontend for newspaper publishers.</li>
</ul>
<h3>Java</h3>
<ul>
<li>Began using Java on PC (Windows) in 1998.</li>
<li>Participated in a Security Hash Team Project at iXOS Software AG, developing the Java frontend.</li>
<li>Utilized development environments such as Kawa and IBM Visual Age.</li>
</ul>
<h3>C++</h3>
<ul>
<li>First used C++ on PC (Windows) in 1997.</li>
<li>Worked on an R/3 Integration Project during practical work at iXOS Software AG.</li>
<li>Completed one semester of C++ on UNIX (Solaris) during studies in 1998.</li>
</ul>
<h3>PASCAL</h3>
<ul>
<li>Started with PASCAL on PC in 1993, using TurboPascal 6.0, 7.0, and Borland Pascal 7.0.</li>
<li>Developed DOSMENU, a menu system for DOS, and tools for Fidonet.</li>
<li>Created two games: a Wheel of Fortune clone and a two-player Tetris.</li>
<li>Studied PASCAL for one year in school (1994) and one semester on UNIX (Solaris) during studies in 1996.</li>
</ul>
<h3>Assembler</h3>
<ul>
<li>Began learning Assembler on the Atari ST in 1992, creating simple programs with Pure Assembler, part of the Pure C Pack.</li>
<li>Developed a small text mode demo with sound using DevPAK.</li>
<li>Gained experience on PC in 1994, creating four demos using inline assembler in TurboPascal.</li>
</ul>
<h3>C</h3>
<ul>
<li>First encountered C on the Atari ST in 1992, creating simple programs with Pure C, an advanced version of Turbo C.</li>
<li>Completed one semester of C during studies in 1997.</li>
</ul>
<h3>BASIC</h3>
<ul>
<li>Gained initial experience with BASIC on the EPSON HX-20 in 1988 and Atari ST in 1989.</li>
<li>Developed two small games (Bowling, LiveStyleCity) using OmicronBasic.</li>
<li>Created games such as AtomOhNo (an Atomix clone) and TOPchangethecolor with GFA-Basic and TOPpack.</li>
<li>Produced graphic demos on the Atari ST around 1991.</li>
<li>Developed simple programs using Amiga Basic in 1991.</li>
<li>Studied BASIC for two years in school (1991-1992), including coding a Snake clone during class.</li>
</ul>
</div>
<div class="space">
<a id="impressum"></a>
</div>
<div id="impressumcontent">
<h2>Legal Notice (Impressum, § 5 DDG)</h2>
<p>Stefan Kölle<br>Neumarkter Str. 86c<br>81673 München</p>
<p>Phone/Fax: +49-(89)-20006547<br>E-Mail: <a id="email-impressum" href="#">[email protected]</a></p>
<p>Responsible for content according to § 18 (2) MStV: Stefan Kölle, address as above.</p>
<p>Full legal notice & privacy policy for this website and the moonweb.org network: <a href="https://www.moonweb.org//impressum/">hub.moonweb.org/impressum</a>
</div>