<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://www.yellowduck.be/pretty-atom-feed-v3.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <link rel="alternate" href="https://www.yellowduck.be"/>
  <link rel="self" href="https://www.yellowduck.be/posts/feed"/>
  <author>
    <name>Pieter Claerhout</name>
    <email>pieter@yellowduck.be</email>
  </author>
  <id>https://www.yellowduck.be/posts/feed</id>
  <title>🐥 YellowDuck.be</title>
  <updated>2026-04-16T08:00:00Z</updated>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/google-sheets-integration-elixir-data-management-guide"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This article presents a practical guide to integrating Google Sheets with an Elixir application using the Phoenix Framework. It outlines the steps to extract, organize, and analyze data from a Google Sheets spreadsheet for attendance and ship usage statistics in a gaming context.&lt;/p&gt;
&lt;p&gt;By implementing Google APIs for both Sheets and Drive, the post provides insights into creating a seamless data management experience. Detailed snippets of Elixir code are provided to illustrate the interaction with Google Sheets, data manipulation, and how to set up a Phoenix application for real-world applications.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.curiosum.com/blog/interacting-with-google-sheets-in-elixir?__readwiseLocation=&quot;&gt;Continue reading on &lt;strong&gt;www.curiosum.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/database&quot;&gt;#database&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-16T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/google-sheets-integration-elixir-data-management-guide</id>
    <title>🔗 Google Sheets integration: Elixir data management guide</title>
    <updated>2026-04-16T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/thinking-elixir-podcast-299-dont-paste-that-into-your-terminal"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The EEF needs your support for a major security grant, Hex.pm completes its first security audit, José Valim drops a massive Tidewave update, and we discuss the ClickFix supply chain attack that hit Axios, and more!&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://podcast.thinkingelixir.com/299&quot;&gt;Continue reading on &lt;strong&gt;podcast.thinkingelixir.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-15T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/thinking-elixir-podcast-299-dont-paste-that-into-your-terminal</id>
    <title>🔗 Thinking Elixir Podcast 299: Don&apos;t Paste That Into Your Terminal</title>
    <updated>2026-04-15T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/the-2-minute-claude-code-upgrade-youre-probably-missing-lsp"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Right now, every Claude Code user is running without &lt;code&gt;LSP&lt;/code&gt;. This means searching for definitions is akin to using &lt;code&gt;grep&lt;/code&gt;, leading to delays and inaccuracies in large codebases. Enabling &lt;code&gt;LSP&lt;/code&gt; changes everything; with it, queries like asking where &lt;code&gt;processPayment&lt;/code&gt; is defined return precise results in 50 milliseconds, compared to 30-60 seconds without it. &lt;code&gt;LSP&lt;/code&gt; separates language intelligence from the editor, making it more efficient. It opens up advanced capabilities such as automatic error correction and precise code navigation, eliminating the frustration of traditional text searches. Enabling it is straightforward and takes only a couple of minutes. You add a flag in your settings and install the relevant language server binaries. This transforms how you interact with your code, enhancing accuracy and speed significantly.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://karanbansal.in/blog/claude-code-lsp/&quot;&gt;Continue reading on &lt;strong&gt;karanbansal.in&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/tools&quot;&gt;#tools&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-15T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-2-minute-claude-code-upgrade-youre-probably-missing-lsp</id>
    <title>🔗 The 2-minute Claude code upgrade you&apos;re probably missing: LSP</title>
    <updated>2026-04-15T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/how-to-optimize-sonarqube-for-reviewing-ai-generated-code"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;AI-generated code can introduce various quality issues, including technical debt and security vulnerabilities. This post emphasizes the need for a stricter quality gate and quality profile tailored for AI-generated code within SonarQube Cloud.&lt;/p&gt;
&lt;p&gt;The recommended approach includes designing a custom quality gate that increases coverage requirements and limits code duplication. Additionally, establishing a custom quality profile will help maintain code readability and enforce stricter validation rules, ensuring that AI-generated outputs meet higher standards.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.sonarsource.com/blog/how-to-optimize-sonarqube-for-reviewing-ai-generated-code/&quot;&gt;Continue reading on &lt;strong&gt;www.sonarsource.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/testing&quot;&gt;#testing&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-15T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/how-to-optimize-sonarqube-for-reviewing-ai-generated-code</id>
    <title>🔗 How to optimize SonarQube for reviewing AI-generated code</title>
    <updated>2026-04-15T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/the-part-of-the-sdlc-nobody-talks-about-and-many-companies-dont-do-properly"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The most overlooked part of the software development lifecycle (SDLC) is decommissioning. Many companies neglect or mishandle this phase, leading to significant costs and inefficiencies. For instance, zombie resources like forgotten databases or unused virtual machines waste an estimated 30% of cloud spending. Despite the common belief that removing resources doesn’t add value, failing to do so increases financial, operational, and security burdens over time. Proper decommissioning requires a clear process with a checklist to ensure no resources are left behind. This includes reviewing service usage, notifying teams, disabling alerts, and thoroughly cleaning up all related components. Ignoring this crucial phase creates unnecessary costs and complicates infrastructure management.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://blog.danskingdom.com/The-part-of-the-SDLC-nobody-talks-about--and-many-companies-dont-do-properly/&quot;&gt;Continue reading on &lt;strong&gt;blog.danskingdom.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/sysadmin&quot;&gt;#sysadmin&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-14T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-part-of-the-sdlc-nobody-talks-about-and-many-companies-dont-do-properly</id>
    <title>🔗 The part of the SDLC nobody talks about, and many companies don’t do properly</title>
    <updated>2026-04-14T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/ashtypescript-typed-channels"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;AshTypescript enables the generation of typed TypeScript event subscriptions using Ash PubSub&apos;s publications. This functionality allows developers to handle server-pushed events in a type-safe manner over Phoenix channels, enhancing the client-side experience with well-defined payload types.&lt;/p&gt;
&lt;p&gt;To implement typed channels, developers can utilize &lt;code&gt;AshTypescript.TypedChannel&lt;/code&gt; for applications that push events to clients. Using transformation functions and specifying event types in the channel module, the TypeScript types are generated, which promotes a seamless integration between the server and the frontend application.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://hexdocs.pm/ash_typescript/0.16.0/typed-channels.html&quot;&gt;Continue reading on &lt;strong&gt;hexdocs.pm&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/typescript&quot;&gt;#typescript&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/frontend&quot;&gt;#frontend&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/announcement&quot;&gt;#announcement&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-14T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/ashtypescript-typed-channels</id>
    <title>🔗 AshTypescript Typed Channels</title>
    <updated>2026-04-14T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/spec-driven-development-from-vibe-coding-to-structured-development"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Spec-driven development (SDD) offers a structured approach to coding, focusing on writing specifications before coding starts. This method counteracts the limitations of vibe coding by ensuring that the AI has a solid foundation to work from, minimizing bugs and architectural drift.&lt;/p&gt;
&lt;p&gt;Tools like GitHub&apos;s Spec Kit, Amazon&apos;s Kiro, and Fission AI&apos;s OpenSpec enhance this process by formalizing the workflow and generating artifacts to guide development. By emphasizing a persistent specification that serves as the source of truth, SDD allows for more coherent and compliant code output, especially in complex environments like payments systems.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://zarar.dev/spec-driven-development-from-vibe-coding-to-structured-development/&quot;&gt;Continue reading on &lt;strong&gt;zarar.dev&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/github&quot;&gt;#github&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-14T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/spec-driven-development-from-vibe-coding-to-structured-development</id>
    <title>🔗 Spec-driven development: From vibe coding to structured development</title>
    <updated>2026-04-14T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/18-months-of-code-gone-heres-what-we-learned"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;We developed this product for over 1.5 years, closed clients left right and center, and now we&apos;re throwing everything away.&lt;/p&gt;
&lt;p&gt;In case you don&apos;t know me (or &lt;a href=&quot;https://getautonoma.com&quot;&gt;Autonoma&lt;/a&gt;), we&apos;re no strangers to pivots. Funnily enough, we pivoted like 4 times already (enterprise search, documentation generation, coding agent, QA testing platform). The reasons are beyond the scope of this article. In all cases, we knew bugs were painful, we just didn’t know what was the best way of solving the problem.&lt;/p&gt;
&lt;p&gt;On our last pivot, we actually started getting customers and raised a round from one of the biggest names in the industry. We hired a team of 14 (as I’m writing this article) and started closing clients left right and center. So why would we take such a drastic decision over something that’s working for many customers? Well, many reasons. That’s why I’m writing this article.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://tompiagg.io/posts/we-threw-away-1-5-years-of-code&quot;&gt;Continue reading on &lt;strong&gt;tompiagg.io&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/testing&quot;&gt;#testing&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-13T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/18-months-of-code-gone-heres-what-we-learned</id>
    <title>🔗 18 months of code, gone. Here&apos;s what we learned.</title>
    <updated>2026-04-13T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/fixing-full-recompiles-of-elixir-caused-by-claude-code"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;At work, many of us were having a persistent issue where our Elixir app was having to do a full recompile very frequently, despite not having touched the dependencies, &lt;code&gt;mix.exs&lt;/code&gt;, and so on. We were finally able to narrow it down to affecting the people who use Claude Code and Mise together (it may affect ASDF users as well?).&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://tylerayoung.com/2026/03/11/elixir-full-recompiles/&quot;&gt;Continue reading on &lt;strong&gt;tylerayoung.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-13T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/fixing-full-recompiles-of-elixir-caused-by-claude-code</id>
    <title>🔗 Fixing full recompiles of Elixir caused by Claude code</title>
    <updated>2026-04-13T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/slow-down-to-speed-up"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;In today&apos;s AI-driven world, there&apos;s a powerful counterintuitive principle: slowing down can lead to faster outcomes. This isn&apos;t just philosophical fluff; it&apos;s based on Daniel Kahneman’s System 1 and System 2 thinking. While AI excels at rapid execution and pattern matching, the crucial first step of clearly defining what to build remains a distinctly human task. Flawed assumptions propagate quickly in the age of fast prototyping, leading to worse outcomes and accumulating technical debt. I learned that deliberate slowness, whether through writing down requirements or running pre-mortems, allows for better decision-making before launching into rapid development. AI can enhance both speed and thoroughness, but I have to know when to harness each effectively. Ultimately, embracing this balance is essential for sustainable innovation in any tech environment.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.theengineeringmanager.com/growth/slow-down-to-speed-up/&quot;&gt;Continue reading on &lt;strong&gt;www.theengineeringmanager.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-13T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/slow-down-to-speed-up</id>
    <title>🔗 Slow down to speed up</title>
    <updated>2026-04-13T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/claude-skill-incoming-generating-postman-collections-with-ai"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This article discusses the introduction of a Claude Skill designed to facilitate the generation of Postman collections from Rails controllers. This tool automates the documentation process, ensuring that QA teams can quickly access up-to-date API documentation without extensive manual effort.&lt;/p&gt;
&lt;p&gt;The skill scans existing Rails controllers for essential data such as routes, actions, and parameters, producing a comprehensive Postman collection in JSON format. While there are limitations regarding its accuracy, particularly without RSpec specifications, the skill effectively reduces the burden of manual documentation in fast-paced development environments.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://thoughtbot.com/blog/claude-skill-incoming-generating-postman-collections-with-ai&quot;&gt;Continue reading on &lt;strong&gt;thoughtbot.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/tools&quot;&gt;#tools&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/announcement&quot;&gt;#announcement&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-12T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/claude-skill-incoming-generating-postman-collections-with-ai</id>
    <title>🔗 Claude Skill incoming! Generating Postman collections with AI</title>
    <updated>2026-04-12T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/good-cte-bad-cte"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;CTEs (Common Table Expressions) are a popular feature among SQL developers, often used to simplify complex queries. However, their actual performance and optimizations have significantly changed in PostgreSQL 12, shifting from always being treated as optimization fences to more flexible handling of CTEs.&lt;/p&gt;
&lt;p&gt;PostgreSQL 12 introduced several optimizations regarding CTE handling, allowing non-recursive, side-effect-free CTEs to be inlined and treated as subqueries. This change improves query performance by enabling predicate pushdown and better index usage, while also providing control over CTE materialization when needed for specific use cases.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://boringsql.com/posts/good-cte-bad-cte/&quot;&gt;Continue reading on &lt;strong&gt;boringsql.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/database&quot;&gt;#database&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/postgresql&quot;&gt;#postgresql&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/sql&quot;&gt;#sql&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-12T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/good-cte-bad-cte</id>
    <title>🔗 Good CTE, bad CTE</title>
    <updated>2026-04-12T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/building-a-blog-with-elixir-and-phoenix"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This post describes building a blog using Elixir and Phoenix with server-side rendering, NimblePublisher for markdown processing, and Tailwind CSS for styling. The setup uses no database, compiles all posts at build time, and achieves fast performance through pre-compiled HTML generation.&lt;/p&gt;
&lt;p&gt;The blog runs on a self-hosted Dokploy instance on Hetzner with bunny.net as a CDN, featuring automated CI/CD through GitHub Actions and rolling deploys that complete in 30 seconds. Additional features include RSS feeds, XML sitemaps, blog post redirects, and comprehensive SEO metadata with Open Graph and Twitter Card tags.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://jola.dev/posts/building-a-blog-with-elixir-and-phoenix&quot;&gt;Continue reading on &lt;strong&gt;jola.dev&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/frontend&quot;&gt;#frontend&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-12T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/building-a-blog-with-elixir-and-phoenix</id>
    <title>🔗 Building a blog with Elixir and Phoenix</title>
    <updated>2026-04-12T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/two-soups-two-cookies"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Is the difference between something that works and something that feels right just about the ingredients? I discovered this when I made two soups using the exact same ingredients. The first soup was boiled conventionally, resulting in bland flavors. The second was roasted, allowing the natural sweetness of the veggies to emerge. This simple change in process transformed the dish from decent to exceptional.&lt;/p&gt;
&lt;p&gt;Similarly, my wife enhanced her cookies by paying attention to details. Browning the butter added depth, varying chocolate sizes created texture, and resting the dough improved flavor integration. These adjustments, while optional, made a substantial difference. This approach parallels software development. Many can replicate features and UI, but they miss the critical processes—user feedback, bug fixes, and frustrations—that shape a product&apos;s quality. In essence, it’s not just about the ingredients; it&apos;s about the care and processes that lead to truly great outcomes.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://liamhammett.com/two-soups-two-cookies&quot;&gt;Continue reading on &lt;strong&gt;liamhammett.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-11T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/two-soups-two-cookies</id>
    <title>🔗 Two soups, two cookies</title>
    <updated>2026-04-11T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/getting-started-with-paraxial-io-free-tier"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This guide will walk you through setup for Paraxial.io. Most features require a paid account. If you are on the free tier, email &lt;code&gt;support@paraxial.io&lt;/code&gt; to request a 2 week free trial.&lt;/p&gt;
&lt;p&gt;Application Secure&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Asset management - A full inventory of all your Elixir projects&lt;/li&gt;
&lt;li&gt;Network Scans - Determine which ports are open on your web server&lt;/li&gt;
&lt;li&gt;Code Scans - Source code (SAST) and dependency (SCA) scanning&lt;/li&gt;
&lt;li&gt;GitHub or GitLab App - Get security feedback in your pull request&lt;/li&gt;
&lt;li&gt;License Scans - Determine which open source licenses are in use&lt;/li&gt;
&lt;li&gt;App Audit - A runtime inventory of all your dependency versions&lt;/li&gt;
&lt;li&gt;Exploit Guard - runtime detection of deserialization exploits&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bot Defense&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ingesting HTTP traffic&lt;/li&gt;
&lt;li&gt;Rate limiting - Ban IPs that do too many login attempts&lt;/li&gt;
&lt;li&gt;Honeypots - Ban IPs that submit a fake form&lt;/li&gt;
&lt;li&gt;Blocking data center/cloud IP attacks&lt;/li&gt;
&lt;li&gt;Banning bots scanning for &lt;code&gt;.php&lt;/code&gt; routes&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://docs.paraxial.io/elixir/started/&quot;&gt;Continue reading on &lt;strong&gt;docs.paraxial.io&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/http&quot;&gt;#http&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-11T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/getting-started-with-paraxial-io-free-tier</id>
    <title>🔗 Getting started with Paraxial.io for Elixir</title>
    <updated>2026-04-11T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/ai-is-forcing-us-to-write-good-code"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Traditional software best practices—comprehensive testing, clear documentation, modular design, static typing—were long treated as optional luxuries. AI coding agents change this calculus entirely. These agents cannot self-correct messy codebases effectively, making rigorous guardrails essential to their success.&lt;/p&gt;
&lt;p&gt;A six-person team at Logic Inc. has implemented several practices to support agentic development: mandatory 100% code coverage (which eliminates ambiguity about what needs testing), thoughtful file organization using semantic naming, fast ephemeral development environments enabling rapid iteration, and end-to-end typing throughout the stack. Together these practices create constraints that guide AI models toward correct solutions rather than allowing them to drift through poor choices.&lt;/p&gt;
&lt;p&gt;The argument inverts the usual cost-benefit analysis: what seemed like optional overhead for human teams becomes fundamental infrastructure for AI-assisted development. Organizations adopting agents should budget these improvements intentionally rather than hoping agents adapt to existing messy codebases.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://bits.logic.inc/p/ai-is-forcing-us-to-write-good-code&quot;&gt;Continue reading on &lt;strong&gt;bits.logic.inc&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/tools&quot;&gt;#tools&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-11T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/ai-is-forcing-us-to-write-good-code</id>
    <title>🔗 AI is forcing us to write good code</title>
    <updated>2026-04-11T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/9-advanced-postgresql-features-i-wish-i-knew-sooner"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;A few months ago, I struggled with a planning system. I needed to ensure that no two plans could overlap for the same period. My first instinct was to write application-level validation, but something felt off. Surely PostgreSQL had a better way?&lt;/p&gt;
&lt;p&gt;That’s when I discovered the &lt;code&gt;EXCLUDE&lt;/code&gt; constraint. It reminded me of other PostgreSQL features I’d found over the years that made me think, “Wait, Postgres can do that?!”&lt;/p&gt;
&lt;p&gt;Here are some underused, yet useful PostgreSQL features that I discovered in past projects.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://marmelab.com/blog/2026/02/23/do-you-know-psql.html&quot;&gt;Continue reading on &lt;strong&gt;marmelab.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/database&quot;&gt;#database&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/postgresql&quot;&gt;#postgresql&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/sql&quot;&gt;#sql&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-10T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/9-advanced-postgresql-features-i-wish-i-knew-sooner</id>
    <title>🔗 9 advanced PostgreSQL features I wish I knew sooner</title>
    <updated>2026-04-10T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/a-unix-manifesto-for-the-age-of-ai"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Software development trends toward complexity, incentivized by organizations and the AI revolution. This complexity leads to decisions that prioritize superficial features over essential simplicity, emphasizing the need for human judgment in the engineering process.&lt;/p&gt;
&lt;p&gt;AI can accelerate complexity accumulation, allowing engineers to avoid responsibility in maintaining codebases that lack clarity and documentation. The article advocates for a return to Unix principles, urging an architecture that promotes simplicity and local inference to cultivate a culture of responsibility in engineering, rather than dependency on complex AI platforms.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://linuxtoaster.com/manifesto.html&quot;&gt;Continue reading on &lt;strong&gt;linuxtoaster.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-10T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/a-unix-manifesto-for-the-age-of-ai</id>
    <title>🔗 A Unix manifesto for the age of AI</title>
    <updated>2026-04-10T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/the-value-of-immutability-in-net"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Immutability refers to the state of being unchangeable in software development, particularly with objects once created. This article details how immutability can improve data integrity, thread safety, and debugging by minimizing side effects that often arise from mutable objects.&lt;/p&gt;
&lt;p&gt;The post outlines practical patterns, such as the Builder Pattern, to assist in creating immutable objects efficiently. It also addresses common objections to immutability, arguing for its adoption as best practice in scenarios where object changes are rare, while recognizing situations where mutables may be necessary.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://barretblake.dev/posts/development/2026/03/value-of-immutability/&quot;&gt;Continue reading on &lt;strong&gt;barretblake.dev&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/pattern&quot;&gt;#pattern&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/dotnet&quot;&gt;#dotnet&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-10T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-value-of-immutability-in-net</id>
    <title>🔗 The Value of Immutability in .NET</title>
    <updated>2026-04-10T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/integrate-frontend-frameworks-into-your-phoenix-liveview-app"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Phoenix LiveView lets you build dynamic web apps without writing much JavaScript. But sometimes, you do need a bit of client-side magic - especially for animations or local state that you don&apos;t want to store on the server.&lt;/p&gt;
&lt;p&gt;Instead of throwing LiveView entirely out of the window, you can enhance it by embedding components from your favorite frontend frameworks like &lt;strong&gt;Svelte&lt;/strong&gt;, &lt;strong&gt;Vue&lt;/strong&gt;, or &lt;strong&gt;React&lt;/strong&gt;. Of course, you can achieve similar results using client hooks but in practice, the code often becomes hard to manage, and juggling with phx-update=&quot;ignore&quot; can be annoying.&lt;/p&gt;
&lt;p&gt;That’s where libraries like &lt;strong&gt;LiveSvelte&lt;/strong&gt;, &lt;strong&gt;LiveVue&lt;/strong&gt;, and &lt;strong&gt;LiveReact&lt;/strong&gt; come in. These libraries allow you to embed reactive frontend components directly into your LiveView templates with minimal effort. What’s even better is that by using these packages, you&apos;re not limited to building everything from scratch. You gain access to the entire ecosystem of packages available for your chosen framework.&lt;/p&gt;
&lt;p&gt;We’ll walk through some simple examples - using local state, passing content through slots, and even throwing in some LiveView-style sigils for good measure. The goal is to show how seamlessly these frontend components can blend into your LiveView workflows without giving up the things that make LiveView great.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.curiosum.com/blog/integrate-frontend-frameworks-into-phoenix-liveview-app&quot;&gt;Continue reading on &lt;strong&gt;www.curiosum.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/javascript&quot;&gt;#javascript&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/frontend&quot;&gt;#frontend&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-09T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/integrate-frontend-frameworks-into-your-phoenix-liveview-app</id>
    <title>🔗 Integrate frontend frameworks into your Phoenix LiveView app</title>
    <updated>2026-04-09T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/how-to-instantly-be-better-at-things"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;It’s a funny quirk of the human condition that sometimes simply asking, of a given task, “how would someone much, much better than me approach this?” immediately makes you better at it. Like, right away.&lt;/p&gt;
&lt;p&gt;Weird! It shouldn’t be so easy. But sometimes it is.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://usefulfictions.substack.com/p/how-to-instantly-be-better-at-anything&quot;&gt;Continue reading on &lt;strong&gt;usefulfictions.substack.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-09T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/how-to-instantly-be-better-at-things</id>
    <title>🔗 How to instantly be better at things</title>
    <updated>2026-04-09T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/i-decompiled-the-white-houses-new-app"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The article discusses a thorough decompilation of the White House&apos;s official Android app, revealing significant security issues and privacy concerns. The author uncovers that the app contains a cookie and paywall bypass injector, enabling users to bypass certain restrictions. Additionally, the app is found to track users&apos; GPS locations at intervals of 4.5 minutes, raising alarms about user privacy. It also loads JavaScript content from an external source hosted on a personal GitHub Pages account, which raises further concerns about the security of the application itself and the potential implications for users&apos; data.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://thereallo.dev/blog/decompiling-the-white-house-app&quot;&gt;Continue reading on &lt;strong&gt;thereallo.dev&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/javascript&quot;&gt;#javascript&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/github&quot;&gt;#github&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/android&quot;&gt;#android&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-09T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/i-decompiled-the-white-houses-new-app</id>
    <title>🔗 I Decompiled the White House&apos;s New App</title>
    <updated>2026-04-09T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/im-using-my-engineering-colleagues-as-my-personal-agents"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This article highlights how non-technical product owners can effectively leverage AI agents for software development. By utilizing tools like Craft Agent and Claude Code, a product manager ships features and maintains documentation through automated workflows, eliminating the need for deep programming knowledge.&lt;/p&gt;
&lt;p&gt;The author emphasizes the importance of keeping documentation regularly updated as a crucial part of the development process. They also discuss leveraging an &quot;Expert Review Panel&quot; of specialized AI agents that assess feature specs from multiple perspectives, ensuring efficient and high-quality output in software development.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://madewithlove.com/blog/im-using-my-engineering-colleagues-as-my-personal-agents/&quot;&gt;Continue reading on &lt;strong&gt;madewithlove.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-08T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/im-using-my-engineering-colleagues-as-my-personal-agents</id>
    <title>🔗 I&apos;m using my engineering colleagues as my personal agents</title>
    <updated>2026-04-08T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/tech-interviewing-will-always-be-broken"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Technical interviews continue to face criticism, often labeled as &quot;broken&quot; by candidates and interviewers alike. Despite decades of evolution, the process still struggles to achieve clarity and fairness amid diverse questioning styles and formats.&lt;/p&gt;
&lt;p&gt;Interviews vary widely, from algorithm-focused questions to behavioral discussions, making it challenging to find a one-size-fits-all approach. Interviewers must adapt and understand their questioning strategies while candidates should be prepared for both direct and abstract problem-solving scenarios.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://thefridaydeploy.substack.com/p/tech-interviewing-will-always-be?isFreemail=true&amp;post_id=190837941&amp;publication_id=2552480&amp;r=3nu1c5&amp;triedRedirect=true&quot;&gt;Continue reading on &lt;strong&gt;thefridaydeploy.substack.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-08T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/tech-interviewing-will-always-be-broken</id>
    <title>🔗 Tech interviewing will always be broken</title>
    <updated>2026-04-08T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/jido-2-0-is-now-available"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Jido 2.0 has been launched after 18 months of development, moving away from its initial version that was overengineered. This release focuses on simplifying the framework with a pure functional agent architecture that eases debugging, testing, and integration with AI capabilities.&lt;/p&gt;
&lt;p&gt;The new version introduces the &lt;code&gt;cmd/2&lt;/code&gt; function, allowing actions to be processed while maintaining a clean data structure. It also supports a range of reasoning strategies for AI integration, alongside a growing ecosystem that includes first-class support for the Ash framework, enabling seamless AI tools integration.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://jido.run/blog/jido-2-0-is-here&quot;&gt;Continue reading on &lt;strong&gt;jido.run&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/announcement&quot;&gt;#announcement&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-04-08T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/jido-2-0-is-now-available</id>
    <title>🔗 Jido 2.0 is now available</title>
    <updated>2026-04-08T08:00:00Z</updated>
  </entry>
</feed>