<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Software-Engineering on Home</title>
    <link>https://blog.rafaelfernandez.dev/tags/software-engineering/</link>
    <description>Recent content in Software-Engineering on Home</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 Rafael Fernandez</copyright>
    <lastBuildDate>Mon, 23 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rafaelfernandez.dev/tags/software-engineering/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>How Query Engines Work 1. The small compiler hiding behind every SQL query</title>
      <link>https://blog.rafaelfernandez.dev/posts/how-query-engines-work-1-from-sql-to-results/</link>
      <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/how-query-engines-work-1-from-sql-to-results/</guid>
      <description>You write a SQL query, hit enter, and a few milliseconds later results appear. In between, a small compiler has already parsed your text, built a plan, optimized it, and executed it. This post walks through that pipeline with a real query and real Rust code using DataFusion.</description>
      
    </item>
    
    <item>
      <title>The Elm Architecture: a loop that fits in your head</title>
      <link>https://blog.rafaelfernandez.dev/posts/the-elm-architecture-a-loop-that-fits-in-your-head/</link>
      <pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/the-elm-architecture-a-loop-that-fits-in-your-head/</guid>
      <description>Model, Update, View. Three pieces, one loop, zero surprises. We explain The Elm Architecture from scratch with side-by-side examples in Rust and Scala, trace where the pattern came from, why it keeps showing up in TUIs and functional codebases, and when it stops being the right tool.</description>
      
    </item>
    
    <item>
      <title>The Curry-Howard Correspondence: when types become proofs</title>
      <link>https://blog.rafaelfernandez.dev/posts/curry-howard-types-as-proofs/</link>
      <pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/curry-howard-types-as-proofs/</guid>
      <description>Every well-typed program is a proof. Every type is a proposition. This is not a metaphor; it is a mathematical theorem discovered in the 1930s that explains why making invalid states unrepresentable actually works.</description>
      
    </item>
    
    <item>
      <title>Making Invalid States Unrepresentable 3: Real bugs from representable nonsense</title>
      <link>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-3-real-bugs/</link>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-3-real-bugs/</guid>
      <description>Null references, UI loading spinners that show errors and data simultaneously, payments that are captured and voided at the same time. These are not hypotheticals. They are the direct consequence of types that lie about the domain.</description>
      
    </item>
    
    <item>
      <title>Making Invalid States Unrepresentable 2: The algebra behind your types</title>
      <link>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-2-algebra-behind-types/</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-2-algebra-behind-types/</guid>
      <description>Types are called algebraic because they obey arithmetic. Product types multiply, sum types add. Understanding this arithmetic explains why an enum with 5 variants is infinitely more precise than 4 boolean flags.</description>
      
    </item>
    
    <item>
      <title>Making Invalid States Unrepresentable 1: Why boolean flags are bugs in disguise</title>
      <link>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-1-boolean-flags/</link>
      <pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.rafaelfernandez.dev/posts/making-invalid-states-unrepresentable-1-boolean-flags/</guid>
      <description>A traffic light that is red and green at the same time. A user who is logged in and logged out simultaneously. Boolean flags make these absurd states perfectly representable, and that is the problem.</description>
      
    </item>
    
  </channel>
</rss>
