<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Christian Spoo</title><link>https://www.christian-spoo.de/</link><description>Recent content on Christian Spoo</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 06 May 2026 09:25:12 +0200</lastBuildDate><atom:link href="https://www.christian-spoo.de/index.xml" rel="self" type="application/rss+xml"/><item><title>The night DNSSEC broke .de</title><link>https://www.christian-spoo.de/posts/2026/05/the-night-dnssec-broke-.de/</link><pubDate>Wed, 06 May 2026 09:00:00 +0200</pubDate><guid>https://www.christian-spoo.de/posts/2026/05/the-night-dnssec-broke-.de/</guid><description>&lt;p&gt;Last night, large parts of the German internet quietly broke.
Not for everyone — which made it more confusing, not less.
Bahn.de, Spiegel.de, and thousands of other &lt;code&gt;.de&lt;/code&gt; domains returned &lt;code&gt;SERVFAIL&lt;/code&gt; to anyone using a security-conscious DNS resolver.
The culprit was DENIC, the registry responsible for the &lt;code&gt;.de&lt;/code&gt; top-level domain, and a botched key rollover in their DNSSEC setup.&lt;/p&gt;
&lt;h2 id="what-dnssec-is-supposed-to-do"&gt;What DNSSEC is supposed to do&lt;/h2&gt;
&lt;p&gt;DNS — the system that translates domain names like &lt;code&gt;spiegel.de&lt;/code&gt; into IP addresses — was designed in an era when the internet was a considerably more trusting place.
It has no built-in mechanism to verify that the answers you receive are genuine and haven&amp;rsquo;t been tampered with in transit.
An attacker positioned between you and your DNS resolver can, in principle, return fake records and silently redirect you to a malicious server.&lt;/p&gt;</description></item><item><title>Get shit done with Claude Code, Gemini and OpenAI Codex</title><link>https://www.christian-spoo.de/posts/2026/04/get-shit-done-with-claude-code-gemini-and-openai-codex/</link><pubDate>Sun, 05 Apr 2026 18:20:00 +0200</pubDate><guid>https://www.christian-spoo.de/posts/2026/04/get-shit-done-with-claude-code-gemini-and-openai-codex/</guid><description>&lt;p&gt;Over the last few weeks, I picked up an old codebase of mine again: &lt;strong&gt;miniOS&lt;/strong&gt;, a small x86_64 hobby operating system kernel that dates back to my university days.
It had been sitting around for a long time in that familiar state many personal systems projects eventually reach:
promising, educational, and full of interesting ideas, but also weighed down by old design decisions and unresolved blockers.&lt;/p&gt;
&lt;p&gt;That combination makes such projects oddly difficult to resume.
You still remember why they matter to you.
You still know there is something worthwhile inside them.
But every attempt to continue starts with the same exhausting phase of reconstructing context, rediscovering broken edges, and trying to remember why some piece of code was written that way in the first place.&lt;/p&gt;</description></item><item><title>When your address doesn't exist — a Telekom story</title><link>https://www.christian-spoo.de/posts/2026/02/when-your-address-doesnt-exist-a-telekom-story/</link><pubDate>Tue, 17 Feb 2026 22:31:00 +0100</pubDate><guid>https://www.christian-spoo.de/posts/2026/02/when-your-address-doesnt-exist-a-telekom-story/</guid><description>&lt;h2 id="the-setup"&gt;The setup&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve been living in a newly developed neighbourhood for just over three years now.
Our street has no gas supply and no traditional copper telephone infrastructure — it was built from scratch, and the only utilities laid down were power and fibre optic connections.
Our internet comes via Deutsche Glasfaser, and that&amp;rsquo;s the only option here.
The Telekom never built out infrastructure in this area, so they have no fixed-line presence on our street whatsoever.&lt;/p&gt;</description></item><item><title>Why I chose Hugo over WordPress for this blog</title><link>https://www.christian-spoo.de/posts/2026/01/why-i-chose-hugo-over-wordpress-for-this-blog/</link><pubDate>Fri, 23 Jan 2026 14:30:00 +0100</pubDate><guid>https://www.christian-spoo.de/posts/2026/01/why-i-chose-hugo-over-wordpress-for-this-blog/</guid><description>&lt;p&gt;When I decided to start this blog, one of the first questions I had to answer was: which platform should I use?
For many people, WordPress is the obvious choice—it powers over 40% of all websites on the internet, after all.
Unlike many others, however, I&amp;rsquo;ve never really liked WordPress.
Part of this stems from its terribly grown, unstructured codebase that has accumulated technical debt over nearly two decades.
More recently, political turmoil within the WordPress project around the behavior of Matt Mullenweg and the company Automattic has further soured my view of the platform.
After working with Hugo for a while now, I&amp;rsquo;ve found it suits my needs much better—particularly for static content like a personal blog.&lt;/p&gt;</description></item><item><title>Welcome, 2026! My past, present and future</title><link>https://www.christian-spoo.de/posts/2026/01/welcome-2026-my-past-present-and-future/</link><pubDate>Tue, 06 Jan 2026 18:34:00 +0100</pubDate><guid>https://www.christian-spoo.de/posts/2026/01/welcome-2026-my-past-present-and-future/</guid><description>&lt;p&gt;It&amp;rsquo;s only a week into the new year of 2026, and quite a lot has already happened.&lt;/p&gt;
&lt;p&gt;Looking back, Christmas 2025 and the quiet days “between the years” felt like the perfect moment to start this blog.
I had a simple plan in mind: to write about technology, my small side projects, and the experiments that keep me curious in my spare time.
I never imagined that the first week of 2026 would hit with such dramatic events.&lt;/p&gt;</description></item><item><title>About</title><link>https://www.christian-spoo.de/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.christian-spoo.de/about/</guid><description>&lt;p&gt;Hi, I am Christian, a software developer and technology enthusiast with a strong focus on web development, open-source ecosystems, and practical engineering solutions.&lt;/p&gt;
&lt;p&gt;I’ve been working with modern web technologies for many years, with a particular interest in PHP-based platforms, TYPO3, DevOps workflows, and automation.
I enjoy building reliable, maintainable systems that are designed to scale — from complex web applications to infrastructure tooling and experimental side projects.
Clean architectures, reproducible environments, and long-term maintainability are important to me.&lt;/p&gt;</description></item><item><title>Imprint</title><link>https://www.christian-spoo.de/imprint/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.christian-spoo.de/imprint/</guid><description>&lt;h2 id="information-pursuant-to-5-of-the-german-telemedia-act-tmg"&gt;Information pursuant to §5 of the German Telemedia Act (TMG)&lt;/h2&gt;
&lt;address&gt;
 Christian Spoo&lt;br&gt;
 Pfarrer-Erich-Fuchs-Ring 12&lt;br&gt;
 41812 Erkelenz&lt;br&gt;
 
&lt;/address&gt;

&lt;h2 id="contact"&gt;Contact&lt;/h2&gt;
&lt;p&gt;E-Mail: &lt;a href="mailto:christian@fam-spoo.de"&gt;christian@fam-spoo.de&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="privacy-policy"&gt;Privacy policy&lt;/h2&gt;
&lt;h3 id="preamble"&gt;Preamble&lt;/h3&gt;
&lt;p&gt;With the following privacy policy, we would like to inform you about the types of personal data (hereinafter also referred to as “data”) we process, for what purposes, and to what extent. The privacy policy applies to all processing of personal data carried out by us, both in the context of providing our services and, in particular, on our websites, in mobile applications, and within external online presences, such as our social media profiles (hereinafter collectively referred to as “online offering”).&lt;/p&gt;</description></item></channel></rss>