<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Gabriel Garcia</title>
        <link>https://garciat.com/</link>
        <description>The personal website of Gabriel Garcia, a software engineer based in Amsterdam.</description>
        <lastBuildDate>Mon, 07 Sep 2026 06:15:23 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <atom:link href="https://garciat.com/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Java Pattern: Algebraic Data Types]]></title>
            <link>https://garciat.com/posts/java-adt/</link>
            <guid isPermaLink="true">https://garciat.com/posts/java-adt/</guid>
            <pubDate>Thu, 07 May 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Exploring the implementation of Algebraic Data Types in Java.]]></description>
        </item>
        <item>
            <title><![CDATA[My Programming Principles in 2020]]></title>
            <link>https://garciat.com/posts/programming-principles-2020/</link>
            <guid isPermaLink="true">https://garciat.com/posts/programming-principles-2020/</guid>
            <pubDate>Sun, 20 Dec 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[This is rough brain dump of several principles/ideas that I applied in 2020 while working at Uber.]]></description>
        </item>
        <item>
            <title><![CDATA[Understanding Go generics]]></title>
            <link>https://garciat.com/posts/go-generics/</link>
            <guid isPermaLink="true">https://garciat.com/posts/go-generics/</guid>
            <pubDate>Fri, 17 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A complete brain dump of my understanding of Go generics at the time.]]></description>
        </item>
        <item>
            <title><![CDATA[Adding two integers in CPython]]></title>
            <link>https://garciat.com/posts/cpython-int-add/</link>
            <guid isPermaLink="true">https://garciat.com/posts/cpython-int-add/</guid>
            <pubDate>Sat, 25 Nov 2017 00:00:00 GMT</pubDate>
            <description><![CDATA[Analyzing the cost of adding to integers in CPython.]]></description>
        </item>
        <item>
            <title><![CDATA[Declarative and composable input validation with rich errors in Java]]></title>
            <link>https://garciat.com/posts/java-functional-validation/</link>
            <guid isPermaLink="true">https://garciat.com/posts/java-functional-validation/</guid>
            <pubDate>Sat, 27 Jun 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[I tackled the problem of data validation in Java with declarative & functional programming inspired by Haskell.]]></description>
        </item>
        <item>
            <title><![CDATA[16+ years of gists]]></title>
            <link>https://garciat.com/posts/gists-lookback/</link>
            <guid isPermaLink="true">https://garciat.com/posts/gists-lookback/</guid>
            <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Looking back at 16 years of GitHub gists.]]></description>
        </item>
        <item>
            <title><![CDATA[TypeScript and Haskell: Unions & Singletons]]></title>
            <link>https://garciat.com/posts/haskell-union-types/</link>
            <guid isPermaLink="true">https://garciat.com/posts/haskell-union-types/</guid>
            <pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[I briefly explore union types and singleton types in Haskell and TypeScript.]]></description>
        </item>
        <item>
            <title><![CDATA[Python: Algebraic Effects via async/await]]></title>
            <link>https://garciat.com/posts/python-algebraic-effects-async-await/</link>
            <guid isPermaLink="true">https://garciat.com/posts/python-algebraic-effects-async-await/</guid>
            <pubDate>Sat, 27 Jun 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[I implement some kind of restricted effects system in Python via async/await.]]></description>
        </item>
        <item>
            <title><![CDATA[Calling Haskell from Java]]></title>
            <link>https://garciat.com/posts/haskell-from-java/</link>
            <guid isPermaLink="true">https://garciat.com/posts/haskell-from-java/</guid>
            <pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I put together a self-contained example that calls compiled Haskell from Java using the new Foreign Function & Memory API from JEP 454.]]></description>
        </item>
        <item>
            <title><![CDATA[My own functional SSG for Deno]]></title>
            <link>https://garciat.com/posts/deno-static/</link>
            <guid isPermaLink="true">https://garciat.com/posts/deno-static/</guid>
            <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Looking back at 16 years of GitHub gists.]]></description>
        </item>
        <item>
            <title><![CDATA[Compiling Go to WASM]]></title>
            <link>https://garciat.com/posts/go-wasm/</link>
            <guid isPermaLink="true">https://garciat.com/posts/go-wasm/</guid>
            <pubDate>Thu, 16 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[I share my experience compiling Go to WASM for a side project.]]></description>
        </item>
        <item>
            <title><![CDATA[Programming with Units]]></title>
            <link>https://garciat.com/posts/programming-with-units/</link>
            <guid isPermaLink="true">https://garciat.com/posts/programming-with-units/</guid>
            <pubDate>Fri, 05 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[I describe a code meta-pattern that I have developed and applied in the last year.]]></description>
        </item>
        <item>
            <title><![CDATA[GHC Generics in Java via associated types]]></title>
            <link>https://garciat.com/posts/java-associated-types/</link>
            <guid isPermaLink="true">https://garciat.com/posts/java-associated-types/</guid>
            <pubDate>Sat, 27 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Extending my type class resolution library to support an approximation of associated types, so that I can build something like GHC Generics for Java.]]></description>
        </item>
        <item>
            <title><![CDATA[Understanding Go interfaces]]></title>
            <link>https://garciat.com/posts/go-interfaces/</link>
            <guid isPermaLink="true">https://garciat.com/posts/go-interfaces/</guid>
            <pubDate>Wed, 08 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[I explore the implementation details of Go interfaces.]]></description>
        </item>
        <item>
            <title><![CDATA[New Python library: gean]]></title>
            <link>https://garciat.com/posts/gean/</link>
            <guid isPermaLink="true">https://garciat.com/posts/gean/</guid>
            <pubDate>Sun, 31 May 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[I wrote a tiny DI/IOC library for Python 3.6+ that leverages Type Hints]]></description>
        </item>
        <item>
            <title><![CDATA[Full Haskell-like Type Class resolution in Java]]></title>
            <link>https://garciat.com/posts/java-type-classes/</link>
            <guid isPermaLink="true">https://garciat.com/posts/java-type-classes/</guid>
            <pubDate>Sat, 06 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Typeclasses, Higher-Kinded Types, and Overlapping Instances in Pure Java: A post about re-implementing a mini Haskell in Java, using reflection, generic metadata, and type unification.]]></description>
        </item>
    </channel>
</rss>