<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Markus Spiekermann</title><link>https://www.spiekermann.ing/</link><description>Recent content on Markus Spiekermann</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 30 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.spiekermann.ing/index.xml" rel="self" type="application/rss+xml"/><item><title>Stop Counting Your Tokens</title><link>https://www.spiekermann.ing/posts/stop-counting-your-tokens/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.spiekermann.ing/posts/stop-counting-your-tokens/</guid><description>Why &amp;lsquo;more AI usage&amp;rsquo; is the wrong scoreboard. Cloud has been here before and FinOps followed, and now tokenomics is AI&amp;rsquo;s turn. My take on the paper I wrote with Boris Otto.</description></item><item><title>About</title><link>https://www.spiekermann.ing/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.spiekermann.ing/about/</guid><description>&lt;p&gt;Hi, I&amp;rsquo;m Markus. I live in the Ruhrgebiet in Germany, and I&amp;rsquo;ve been tinkering with software since long before it became my job.&lt;/p&gt;
&lt;p&gt;I started out as a software engineer and never lost the itch to understand how things really work. Over the years I&amp;rsquo;ve come to look at technology from an information systems perspective, which means I care about the economic impact of tech, not just whether it works.&lt;/p&gt;</description></item><item><title>Contact</title><link>https://www.spiekermann.ing/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.spiekermann.ing/contact/</guid><description>&lt;p&gt;If something on this site made you curious, or you want to swap thoughts about industrial AI, digital twins, data exchange or running, I&amp;rsquo;d be happy to hear from you. Use the form below and I&amp;rsquo;ll get back to you as soon as I can.&lt;/p&gt;
&lt;form id="contact-form" class="contact-form" action="https://formspree.io/f/xoeelgwq" method="POST"&gt;
&lt;label for="cf-name"&gt;Name&lt;/label&gt;
&lt;input type="text" id="cf-name" name="name" required autocomplete="name"&gt;
&lt;label for="cf-email"&gt;Email&lt;/label&gt;
&lt;input type="email" id="cf-email" name="email" required autocomplete="email"&gt;
&lt;label for="cf-message"&gt;Message&lt;/label&gt;
&lt;textarea id="cf-message" name="message" rows="7" required&gt;&lt;/textarea&gt;
&lt;div class="cf-hp" aria-hidden="true"&gt;
&lt;label for="cf-gotcha"&gt;Leave this field empty&lt;/label&gt;
&lt;input type="text" id="cf-gotcha" name="_gotcha" tabindex="-1" autocomplete="off"&gt;
&lt;/div&gt;
&lt;button type="submit"&gt;Send message&lt;/button&gt;
&lt;p id="contact-form-status" role="status" aria-live="polite"&gt;&lt;/p&gt;
&lt;p class="cf-note"&gt;I only use your details to reply to your message. &lt;/p&gt;
&lt;/form&gt;
&lt;style&gt;
.contact-form { display: flex; flex-direction: column; gap: 0.6rem; max-width: 560px; margin-top: 1.5rem; }
.contact-form label { font-weight: 600; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
width: 100%;
padding: 0.6rem 0.75rem;
border: 1px solid var(--border);
border-radius: var(--radius);
background: var(--entry);
color: var(--primary);
font: inherit;
}
.contact-form input:focus,
.contact-form textarea:focus { outline: 2px solid var(--primary); outline-offset: 1px; }
.contact-form button {
align-self: flex-start;
padding: 0.6rem 1.4rem;
border: 0;
border-radius: var(--radius);
background: var(--primary);
color: var(--theme);
font: inherit;
font-weight: 600;
cursor: pointer;
}
.contact-form button:disabled { opacity: 0.6; cursor: wait; }
.contact-form .cf-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.contact-form .cf-note { font-size: 0.85rem; color: var(--secondary); margin: 0; }
#contact-form-status { margin: 0; min-height: 1.4em; }
&lt;/style&gt;
&lt;script&gt;
(function () {
var form = document.getElementById("contact-form");
var status = document.getElementById("contact-form-status");
if (!form || !status) return;
form.addEventListener("submit", function (event) {
event.preventDefault();
var button = form.querySelector("button[type=submit]");
button.disabled = true;
status.textContent = "Sending...";
fetch(form.action, {
method: "POST",
body: new FormData(form),
headers: { "Accept": "application/json" }
})
.then(function (response) {
if (response.ok) {
form.reset();
status.textContent = "Thanks! Your message has been sent.";
} else {
status.textContent = "Something went wrong. Please try again or contact me on LinkedIn.";
}
})
.catch(function () {
status.textContent = "Something went wrong. Please try again or contact me on LinkedIn.";
})
.finally(function () {
button.disabled = false;
});
});
})();
&lt;/script&gt;
&lt;p&gt;Prefer a different channel? You can also find me on &lt;a href="https://www.linkedin.com/in/markus-spiekermann-57990b1b9/"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>