<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>@typesanitizer's blog</title>
        <link>https://typesanitizer.com/</link>
        <description><![CDATA[Musings on compilers, programming languages and software engineering.]]></description>
        <atom:link href="https://typesanitizer.com//blog/rss.xml" rel="self"
                   type="application/rss+xml" />
        <lastBuildDate>Sat, 01 Nov 2025 00:00:00 GMT</lastBuildDate>
        <item>
    <title>On the purported benefits of effect systems</title>
    <link>https://typesanitizer.com/blog/effects-convo.html</link>
    <description><![CDATA[A close examination on the supposed benefits of effect systems, framed as a conversation between two programming language designers.]]></description>
    <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/effects-convo.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Six programmers and the type system</title>
    <link>https://typesanitizer.com/blog/6-programmers.html</link>
    <description><![CDATA[A spin on the old folk tale Six Blind Men and the Elephant.]]></description>
    <pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/6-programmers.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title> A programmer's field guide to assertions</title>
    <link>https://typesanitizer.com/blog/assertions.html</link>
    <description><![CDATA[An in-depth guide to programming with assertions and advocating for the use of assertions at work, based on ~6 years of experience spread out across a variety of codebases.]]></description>
    <pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/assertions.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>How should we learn from bugs?</title>
    <link>https://typesanitizer.com/blog/bug-analysis.html</link>
    <description><![CDATA[Reflections on a one-line bug fix that took two days to figure out, and the unspoken assumptions in how we talk about bugs.]]></description>
    <pubDate>Sun, 03 Aug 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/bug-analysis.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Deeper theories of program design</title>
    <link>https://typesanitizer.com/blog/deeper-theories.html</link>
    <description><![CDATA[A discussion on substantive theories of program design, with the running example of concurrent file modifications.]]></description>
    <pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/deeper-theories.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>A meta-analysis of three different notions of software complexity</title>
    <link>https://typesanitizer.com/blog/complexity-definitions.html</link>
    <description><![CDATA[Discussion on notions of software complexity as defined by Rich Hickey, John Ousterhout and Zach Tellman.]]></description>
    <pubDate>Sat, 14 Jun 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/complexity-definitions.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>The ability to learn how to judge outcomes is probably a core skill</title>
    <link>https://typesanitizer.com/blog/outcome-judgement.html</link>
    <description><![CDATA[Discussion and counter-points to the necessity of being able to judge outcomes in unfamiliar contexts, for being a good leader.]]></description>
    <pubDate>Sun, 30 Mar 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/outcome-judgement.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>An epic treatise on error models for systems programming languages</title>
    <link>https://typesanitizer.com/blog/errors.html</link>
    <description><![CDATA[Musings on the representation, propagation and handling of errors in existing programming languages, as well as thoughts on future systems. (15K+ words)]]></description>
    <pubDate>Thu, 06 Mar 2025 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/errors.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Our optimizers need a rethink</title>
    <link>https://typesanitizer.com/blog/rethink-optimizers.html</link>
    <description><![CDATA[Thoughts on how compiler and database optimizers should evolve in the future, focusing on predictability and guarantees instead of smarts and heroics]]></description>
    <pubDate>Wed, 23 Oct 2024 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/rethink-optimizers.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>On leaving my last job</title>
    <link>https://typesanitizer.com/blog/leaving-apple.html</link>
    <description><![CDATA[Notes on why I left the Swift team at Apple, with some reflections for job seekers and junior people.]]></description>
    <pubDate>Sun, 29 Sep 2024 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/leaving-apple.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>My first and last Strange Loop</title>
    <link>https://typesanitizer.com/blog/strange-loop.html</link>
    <description><![CDATA[Thoughts, feelings, some personal history and musings on Strange Loop as an event, an experience and as an idea.]]></description>
    <pubDate>Fri, 01 Sep 2023 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/strange-loop.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>TFW UBSan flags a dynamic type error inside Clang</title>
    <link>https://typesanitizer.com/blog/ubsan.html</link>
    <description><![CDATA[Recently, I turned on UBSan for a fledgling work project. It went a little more sideways than I was expecting.]]></description>
    <pubDate>Sun, 01 Jan 2023 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/ubsan.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Zig-style generics are not well-suited for most languages</title>
    <link>https://typesanitizer.com/blog/zig-generics.html</link>
    <description><![CDATA[A discussion of some of the downsides of Zig's implementation of generics, and why other programming languages should think super hard before adopting a similar system.]]></description>
    <pubDate>Sat, 01 Oct 2022 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/zig-generics.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Experience Report: 6 months of Go</title>
    <link>https://typesanitizer.com/blog/go-experience-report.html</link>
    <description><![CDATA[A report of my positive and negative experiences with Go after using it for 6 months at work.]]></description>
    <pubDate>Fri, 01 Apr 2022 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/go-experience-report.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>A compiler's users (part 1)</title>
    <link>https://typesanitizer.com/blog/a-compilers-users-p1.html</link>
    <description><![CDATA[A discussion of different developer tools which (can) build on top of a compiler, and how those affect compiler design.]]></description>
    <pubDate>Mon, 01 Nov 2021 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/a-compilers-users-p1.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Not Rocket Science (Meeting Edition)</title>
    <link>https://typesanitizer.com/blog/not-rocket-science.html</link>
    <description><![CDATA[An argument for why you should have a written agenda and minutes for meetings that you organize. Loosely inspired by Graydon Hoare's "Not Rocket Science rule of Software Engineering."]]></description>
    <pubDate>Sun, 01 Aug 2021 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/not-rocket-science.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Scope Sets as a Piñata for Name Resolution</title>
    <link>https://typesanitizer.com/blog/scope-sets.html</link>
    <description><![CDATA[An introduction to Flatt's "Bindings as Sets of Scopes", with discussion on why scope sets are great, how they could be helpful for implementing name resolution for languages without macros, and what a name resolution library based on scope sets could look like.]]></description>
    <pubDate>Mon, 01 Mar 2021 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/scope-sets.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Are tagged unions overrated?</title>
    <link>https://typesanitizer.com/blog/tagged-unions.html</link>
    <description><![CDATA[A discussion on the benefits and drawbacks on tagged unions and ML-style pattern-matching, originally intended as a response to Nelson Elhage's <a href="https://buttondown.email/nelhage/archive/3a623ec9-86cf-425b-9b19-c2079f293956">Tagged unions are overrated</a>.]]></description>
    <pubDate>Mon, 01 Feb 2021 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/tagged-unions.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Don't Snark</title>
    <link>https://typesanitizer.com/blog/dont-snark.html</link>
    <description><![CDATA[An argument against snarky comments, even tongue-in-cheek ones, in programming communities, suggesting an approach to actively steer a discussion with varying opinions in a more productive direction.]]></description>
    <pubDate>Tue, 01 Sep 2020 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/dont-snark.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>An opinionated beginner's guide to Haskell in mid-2019</title>
    <link>https://typesanitizer.com/blog/haskell-opinions-2019.html</link>
    <description><![CDATA[Guidelines on learning and using Haskell: covers editor integration, CI, library choices, application architecture, debugging, profiling and addresses some common concerns.]]></description>
    <pubDate>Sat, 01 Jun 2019 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/haskell-opinions-2019.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Principled Ad-Hoc Polymorphism</title>
    <link>https://typesanitizer.com/blog/ad-hoc-polymorphism.html</link>
    <description><![CDATA[An informal survey of the design space for ad-hoc polymorphism in a programming language.]]></description>
    <pubDate>Sat, 01 Dec 2018 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/ad-hoc-polymorphism.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>10 Commandments: Compiler in Haskell Edition</title>
    <link>https://typesanitizer.com/blog/10-commandments.html</link>
    <description><![CDATA[In spring 2018, I took the Cornell CS 4120/4121 course on compilers. Our team chose to implement the compiler in Haskell; this is the post-mortem report. It assumes some Haskell knowledge.]]></description>
    <pubDate>Fri, 01 Jun 2018 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/10-commandments.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Language Zoo</title>
    <link>https://typesanitizer.com/blog/language-zoo.html</link>
    <description><![CDATA[A future history of programming languages.]]></description>
    <pubDate>Fri, 01 Dec 2017 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/language-zoo.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Many Numbers</title>
    <link>https://typesanitizer.com/blog/many-numbers.html</link>
    <description><![CDATA[A bedtime story about ordinal numbers.]]></description>
    <pubDate>Tue, 01 Nov 2016 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/many-numbers.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>
<item>
    <title>Alice's Adventures with Project Euler</title>
    <link>https://typesanitizer.com/blog/alice-euler.html</link>
    <description><![CDATA[After her adventures in the strange and esoteric Wonderland, Alice was in a bad mood. She refused to venture outside, lest she fall into a rabbit hole again. Instead, she would sit in front of the computer all day, reading all there was to read on the internet. One of her favourite pastimes was to read about mathematics...]]></description>
    <pubDate>Sun, 01 May 2016 00:00:00 GMT</pubDate>
    <guid>https://typesanitizer.com/blog/alice-euler.html</guid>
    <dc:creator>@typesanitizer</dc:creator>
</item>

    </channel>
</rss>
