<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    
    <title>Sebastian Schöner</title>
    
    
    <description>Personal blog of Sebastian Schöner</description>
    
    <link>https://blog.s-schoener.com/</link>
    <atom:link href="https://blog.s-schoener.com/feed.xml" rel="self" type="application/rss+xml" />
    
    
      <item>
        <title>Zig, hot reload, and ABI trouble</title>
        <description>
          
          I was recently overcome by the idea of porting some C code of mine to Zig. In the process, I think I learned a thing or two about situations in which Zig is struggling to replace C for me. The short version is: Zig is pleasant until you need lots...
        </description>
        <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-04-16-zig-abi/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-04-16-zig-abi/</guid>
      </item>
    
      <item>
        <title>What I learned from improving Unity&apos;s Mono codegen, part 2</title>
        <description>
          
          My current sidequest is to improve the codegen for Unity games (and the editor) running on Mono. This post is a continuation of last week’s post about this journey. To LLVM or not to LLVM? As demonstrated last time, Mono’s codegen is often lackluster. The first decision I had to...
        </description>
        <pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-04-13-mono-codegen-2/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-04-13-mono-codegen-2/</guid>
      </item>
    
      <item>
        <title>What I learned from improving Unity&apos;s Mono codegen, part 1</title>
        <description>
          
          My current sidequest is to improve the codegen for Unity games (and the editor) running on Mono. This post and the next two are about this process and what I learned. In this post, I am going to give an example of how code flows through Mono during JIT compilation...
        </description>
        <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-04-07-mono-codegen-1/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-04-07-mono-codegen-1/</guid>
      </item>
    
      <item>
        <title>Better codegen for Unity games on Mono</title>
        <description>
          
          tl;dr: I am tinkering with improved codegen for Mono to get better performance in the Unity Editor and in Unity games that ship with Mono as their runtime. Not done yet, but please do get in touch if your studio is interested in this (mail@s-schoener.com). Unity has for a very...
        </description>
        <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-03-31-better-mono/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-03-31-better-mono/</guid>
      </item>
    
      <item>
        <title>I miss header files</title>
        <description>
          
          I am currently on a side quest to write some Zig code, or more specifically: take some C++ code that is written in a I-can’t-believe-it’s-not-C style and turn it into Zig. This entire adventure started with a curiosity for using Zig’s build system. (Verdict so far: I like it!) I...
        </description>
        <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-03-27-headers/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-03-27-headers/</guid>
      </item>
    
      <item>
        <title>It has never been about the typing</title>
        <description>
          
          My friend Stefan Reinalter is asking: I find this extremely worrying, with many of people I respect saying things like “I no longer write code” or “let LLMs do it”. Why did you start programming? Was it never the journey for you, but only the goal? I genuinely want to...
        </description>
        <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-03-18-not-about-the-typing/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-03-18-not-about-the-typing/</guid>
      </item>
    
      <item>
        <title>Learnings from creating a GUI library</title>
        <description>
          
          I have spent a lot of time recently on creating a GUI library. I have simply not found a library that satisfies my specific list of (partially subjective) requirements: has a C interface, looks reasonably good by default and allows to create things that actually look good, compiles to WASM,...
        </description>
        <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-02-09-gui/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-02-09-gui/</guid>
      </item>
    
      <item>
        <title>Putting slim locks on a diet</title>
        <description>
          
          Let’s talk about reader-writer locks. Reader-writer locks are what you employ when you know that multiple readers can safely access a resource concurrently, but once there is a single writer that writer will need exclusive access to said resource. In my particular case, there is a C# program which is...
        </description>
        <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-01-28-rwlocks/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-01-28-rwlocks/</guid>
      </item>
    
      <item>
        <title>Clauded optimism</title>
        <description>
          
          This post is a continuation of my last post about programming with AI agents. I wanted to specifically talk about one property of Claude Code: The constant “Yes, of course!” and “That’s a brilliant idea!” Instead of joining the choir of people that (rightfully) say that a machine that basically...
        </description>
        <pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2026-01-14-claude-optimism/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2026-01-14-claude-optimism/</guid>
      </item>
    
      <item>
        <title>An early good bye to 2025</title>
        <description>
          
          There are less than 2 weeks left in 2025 and this means it is time to look back at the last year. In last year’s review I ended on this note: For the next year, I hope to spend more timing painting in broad strokes so I get better at...
        </description>
        <pubDate>Fri, 19 Dec 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-12-19-year-2025/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-12-19-year-2025/</guid>
      </item>
    
      <item>
        <title>When better codegen doesn&apos;t help</title>
        <description>
          
          I want to write a few words about what sorts of games benefit from my build postprocessor for Unity il2cpp builds, cpp2better. It’s not the case that every game unconditionally benefits from it to the same extent. cpp2better essentially takes on the role of a compiler: given some program, it...
        </description>
        <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-12-04-when-does-cpp2better-help/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-12-04-when-does-cpp2better-help/</guid>
      </item>
    
      <item>
        <title>How to figure out why C# projects are rebuilding</title>
        <description>
          
          A friend recently joked that all my blog posts are to some level just trauma processing. He is not entirely wrong. Today’s trauma is “why does it take 12s to recompile C# when nothing has changed?” I have found no good answers for google-queries like “how do I profile C#...
        </description>
        <pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-11-24-msbuild-csharp/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-11-24-msbuild-csharp/</guid>
      </item>
    
      <item>
        <title>cpp2better, an il2cpp postprocessor</title>
        <description>
          
          It’s been a while since I last talked about cpp2better. Time for an official “here it is” post. What is cpp2better? cpp2better is a tool that hooks into your build pipeline for Unity to achieve better CPU performance in il2cpp builds. cpp2better achieves this by post-processing the C++ code that...
        </description>
        <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-11-04-cpp2better-release/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-11-04-cpp2better-release/</guid>
      </item>
    
      <item>
        <title>Meta&apos;s support is an embarassing dumpster fire</title>
        <description>
          
          For a while now, I have been helping along a journey to recover an Instagram account, unsuccessfully. As with so many websites it is an infuriating process of stumbling through a set of pages alternatingly labelled “helpcenter” and “support”, until you realize that their links just go in circles. They...
        </description>
        <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-11-03-support/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-11-03-support/</guid>
      </item>
    
      <item>
        <title>Hard links, hard times</title>
        <description>
          
          On Windows, you can’t delete a file while someone else is watching you using it. Or so they say. On Mac or Linux, you can totally delete a file while someone else is using it. This difference has been keeping me busy for a few days. In my concrete scenario,...
        </description>
        <pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-10-07-windows-hard-links/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-10-07-windows-hard-links/</guid>
      </item>
    
      <item>
        <title>What can go wrong in cross compilation</title>
        <description>
          
          I have been unfortunate enough to embark on a journey of C++ cross-compilation, by choice nonetheless. In my case, I use clang to compile on a Linux machine to get binaries for a Windows machine. This is surprisingly approachable nowadays. I do not want to bore you with the details...
        </description>
        <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-09-29-cross-compilation/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-09-29-cross-compilation/</guid>
      </item>
    
      <item>
        <title>Async, too much</title>
        <description>
          
          Over the past years, I have written async code on Windows with both C++ and C#. Compared to C#, the C++ side is poorly documented, full of landmines, and just generally requires a good bit of experience and caution to handle. For a taste, you can scroll through this piece...
        </description>
        <pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-09-22-async-linq/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-09-22-async-linq/</guid>
      </item>
    
      <item>
        <title>How I became the control group in an AI experiment</title>
        <description>
          
          At the risk of alienating almost everyone reading this blog, I wanted to report some first hand experience of interacting with AI for programming. I specifically want to talk about how I accidentally served as a control group for an experiment with an AI agent. Here is the setup: Recently,...
        </description>
        <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-09-17-claude-control/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-09-17-claude-control/</guid>
      </item>
    
      <item>
        <title>TODO TITLE</title>
        <description>
          
          In the past, I used to work in a codebase that had a lot of // @TODO: comments in it. Those TODOs would rank from obvious, small improvements to calls for features that would require an entire rewrite. The TODOs always caused frustration on my end: Why did they not...
        </description>
        <pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-09-08-todo/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-09-08-todo/</guid>
      </item>
    
      <item>
        <title>Unreasonable within reason</title>
        <description>
          
          Over the years I have come to appreciate “unreasonable” coworkers. What a weird sentence to write, right? When it comes to programming, you are usually fairly well advised to be “reasonable.” For example, debugging is much more effective if you have a theory for why things are going wrong and...
        </description>
        <pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate>
        <link>https://blog.s-schoener.com/2025-08-29-reasonably-unreasonable/</link>
        <guid isPermaLink="true">https://blog.s-schoener.com/2025-08-29-reasonably-unreasonable/</guid>
      </item>
    
  </channel>
</rss>
