<?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 href="https://www.yellowduck.be" rel="alternate"/>
  <link href="https://www.yellowduck.be/posts/feed" rel="self"/>
  <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-06-03T17:00:00Z</updated>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/computer-use-is-45x-more-expensive-than-structured-apis" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;A benchmark study shows that AI agents using computer vision to navigate web interfaces are 45 times more expensive than those using structured APIs, largely due to higher token consumption and performance variance. While vision-based agents are still necessary for third-party software, auto-generating API surfaces for internal tools provides a far more efficient and cost-effective deployment strategy.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://reflex.dev/blog/computer-use-is-45x-more-expensive-than-structured-apis/&quot;&gt;Continue reading on &lt;strong&gt;reflex.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/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;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-06-03T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/computer-use-is-45x-more-expensive-than-structured-apis</id>
    <title>🔗 Computer use is 45x more expensive than structured APIs</title>
    <updated>2026-06-03T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/why-developers-should-and-shouldnt-use-llms-in-our-development" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Why should I use AI? This pressing question is at the forefront of our evolving software development landscape. In the wake of LLMs like ChatGPT, developers must decide how to harness this technology effectively. While LLMs excel at handling repetitive tasks or producing prototypes quickly, they can compound security risks and tech debt if misused. I found that the clients I work with sometimes desire AI solutions even when they&apos;re unnecessary. This muddles our understanding of their actual needs, highlighting the importance of expert insight over flashy trends. I’ve noticed the most significant shifts in our workflow center on using LLMs to free developers from rote tasks, allowing us to focus on creative problem-solving instead. However, caution can&apos;t be overlooked: without proper review, LLM-generated code can lead to serious vulnerabilities.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://tighten.com/insights/pragmatic-ai-why-devs-should-and-shouldnt-use-llms/&quot;&gt;Continue reading on &lt;strong&gt;tighten.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-06-03T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/why-developers-should-and-shouldnt-use-llms-in-our-development</id>
    <title>🔗 Why developers should – and shouldn’t – use LLMs in our development</title>
    <updated>2026-06-03T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/the-robots-are-replacing-the-packages" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The way AI-assisted development is changing how developers handle package installations is striking. Manual coding may have taken time, but with intelligent agents automating the background work, developers can focus on high-level tasks. The article categorizes common scenarios developers face in package decision-making: shared problems where robots excel, complex issues requiring thorough modeling, external dependencies needing ongoing maintenance, and opinionated frameworks shaping project direction. By understanding which problems to delegate to robots versus those that require human oversight, developers make smarter choices. The piece emphasizes a shift from finding solutions to knowing whether one wants to own a particular problem, marking a significant evolution in software development practices.&lt;/p&gt;
&lt;p&gt;Robots are taking over package handling, letting us focus on complex problems. Discover the four categories that define when to leverage this AI power.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://spatie.be/blog/the-robots-are-replacing-the-packages&quot;&gt;Continue reading on &lt;strong&gt;spatie.be&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-06-03T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-robots-are-replacing-the-packages</id>
    <title>🔗 The robots are replacing the packages</title>
    <updated>2026-06-03T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/the-language-of-the-boundary" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The article discusses the development journey of creating a JSON Schema validator library for Elixir, detailing the complexities encountered when integrating JSON schema validation with Open API Spex. It emphasizes the necessity of validating data at boundaries, where untrusted external data is handled. The author, reflecting on past experiences, distinguishes between validating solely within Elixir and creating a shared understanding through JSON Schema among various programming teams, particularly in relation to Python and TypeScript. In exploring the challenges of maintaining and implementing validation rules effectively, the piece advocates for treating validation rules as data rather than as code, highlighting the importance of schemas as a means of ensuring compatibility and accuracy across different technologies. Ultimately, the author champions JSON Schema as the preferred solution for establishing clear, functional boundaries in application development.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://lud.codes/blog/why-i-wrote-a-json-schema-validation-library-for-elixir/&quot;&gt;Continue reading on &lt;strong&gt;lud.codes&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/elixir&quot;&gt;#elixir&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-06-02T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-language-of-the-boundary</id>
    <title>🔗 The language of the boundary</title>
    <updated>2026-06-02T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/ai-agents-keep-failing-the-fix-is-40-years-old" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;AI agents often falter due to hidden dependencies in the code, leading to failures in production environments. This issue stems not from the models themselves but from the tight coupling and mutable states in the codebase that AI agents cannot effectively navigate. As Cyrus Radfar points out, while human developers build mental models over time, AI lacks that context, resulting in complicating hidden states that cause cascading errors. To remedy this, he suggests applying long-established principles of functional programming from the 1980s. By ensuring that all functions are pure, with explicit data flows and minimal side effects, AI agents can operate more reliably in scenarios where codebases contain numerous dependencies. This approach enables agents to modify functions without facing the risk of unintended consequences from hidden global states. The implementation of these principles could significantly enhance AI-driven development practices.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://cyrusradfar.com/thoughts/functional-programming-is-the-only-way-to-scale-with-ai&quot;&gt;Continue reading on &lt;strong&gt;cyrusradfar.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-06-02T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/ai-agents-keep-failing-the-fix-is-40-years-old</id>
    <title>🔗 AI agents keep failing. The fix is 40 years old.</title>
    <updated>2026-06-02T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/claude-code-is-a-build-system-not-a-chatbot" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Claude Code redefines the interaction with AI coding by treating it as a build system rather than merely a chatbot. After a year of iteration, the author emphasizes the importance of treating AI like a configurable, layered, and observable engineering system. By moving from passive to active enforcement of coding standards and best practices, projects become less prone to errors, especially when attention drifts. The article explains how to set up automatic checks, the significance of writing standards clearly, and the benefits of using specialized subagents for tasks, plus future-proofing code through systematic hooks. With insights from the author&apos;s experiences across various programming languages, this piece serves as a guide to enhance AI-driven development and maintain consistency and quality in coding practices over time.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://vinny.dev/blog/2026-04-25-claude-code-build-system/&quot;&gt;Continue reading on &lt;strong&gt;vinny.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/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;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-06-01T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/claude-code-is-a-build-system-not-a-chatbot</id>
    <title>🔗 Claude Code is a build system, not a chatbot</title>
    <updated>2026-06-01T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/functional-programmers-need-to-take-a-look-at-zig" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;What if a programming language could change the way functional programmers think about system memory management? In this article, the author examines how Zig introduces innovative memory management solutions that could appeal to functional programmers tired of traditional approaches.&lt;/p&gt;
&lt;p&gt;They dive into the unique aspects of Zig, particularly its &lt;code&gt;comptime&lt;/code&gt; feature, which simplifies type-system programming. The author argues against the reliance on garbage collection in existing functional languages, noting that it hampers performance and obscures the underlying machine language of programming.&lt;/p&gt;
&lt;p&gt;With examples illustrating Zig&apos;s capabilities, the article showcases how this language not only improves performance but also allows developers to express their ideas more clearly and effectively. Zig’s design choices encourage deeper understanding of systems programming while maintaining the benefits of functional programming principles.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://pure-systems.org/posts/2026-04-29-functional-programmers-need-to-take-a-look-at-zig.html&quot;&gt;Continue reading on &lt;strong&gt;pure-systems.org&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/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;/p&gt;</content>
    <published>2026-06-01T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/functional-programmers-need-to-take-a-look-at-zig</id>
    <title>🔗 Functional programmers need to take a look at Zig</title>
    <updated>2026-06-01T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/api-versioning-should-be-your-last-resort" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Versioning doesn&apos;t have to be the go-to solution when evolving an API. Instead, focusing on effective change management can lead to better API longevity. This article emphasizes that &lt;strong&gt;API versioning is a compatibility tool, not a design strategy&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It outlines how many API changes can be managed without resorting to creating new versions. Key principles include keeping existing fields intact, ensuring optional data remains optional, and incorporating new operations instead of modifying old ones. The discussion delves into how breaking changes happen beyond just URL modifications, bringing attention to aspects like request validation and operational shifts.&lt;/p&gt;
&lt;p&gt;Overall, this piece encourages a mindset shift towards compatibility and thoughtful management rather than adhering to versioning as a default approach.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.milanjovanovic.tech/blog/api-versioning-should-be-your-last-resort&quot;&gt;Continue reading on &lt;strong&gt;www.milanjovanovic.tech&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-06-01T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/api-versioning-should-be-your-last-resort</id>
    <title>🔗 API versioning should be your last resort</title>
    <updated>2026-06-01T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/how-i-write-http-servers" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;No one enjoys redundant tasks, yet composing and testing HTTP servers from scratch often leads to repetition. In this article, Blain Smith shares his experience crafting HTTP servers, focusing on creating REST APIs with vital features like JSON/XML support and authorization tokens. He emphasizes the importance of starting from individual handlers rather than the main server, which aids in identifying dependencies.&lt;/p&gt;
&lt;p&gt;The article also dives into setting up request/response lifecycle tests without needing an actual server. By employing middleware for logging and authorization, he showcases how each component can be efficiently layered, making handlers both functional and secure. This approach not only promotes cleaner code but also lays the groundwork for robust server architectures.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://blainsmith.com/articles/how-i-write-http-servers/&quot;&gt;Continue reading on &lt;strong&gt;blainsmith.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/golang&quot;&gt;#golang&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/http&quot;&gt;#http&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-05-31T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/how-i-write-http-servers</id>
    <title>🔗 How I write HTTP servers</title>
    <updated>2026-05-31T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/i-dont-want-your-prs-anymore" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;With the rise of LLMs, code contributions are losing their value. The author articulates a stance against merging pull requests (PRs) because of concerns about malicious intent and the escalating complexity of code reviews. Instead, the article suggests alternative methods for collaboration which include providing feedback, discussing ideas, and reporting bugs. It highlights that while code writing is becoming automated, the need for meaningful insights and unique perspectives remains crucial. Rather than submitting PRs, contributors are encouraged to fork projects, prototype changes, and share their findings. This shift emphasizes a more collaborative and efficient approach to software development, reflecting the evolving landscape of coding and maintenance.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://dpc.pw/posts/i-dont-want-your-prs-anymore/&quot;&gt;Continue reading on &lt;strong&gt;dpc.pw&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-05-31T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/i-dont-want-your-prs-anymore</id>
    <title>🔗 I don&apos;t want your PRs anymore</title>
    <updated>2026-05-31T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/the-age-of-refinement-optimizing-search-performance-for-mcp-systems" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Search isn’t finished when it works; it’s finished when you can prove it works—and refine it when it doesn’t. Christoph Beck’s article on search performance optimization for MCP systems highlights the importance of crafting good questions for effective search evaluation. This involves creating a dataset of specific queries tied to relevant document chunks, allowing teams to measure and improve their search strategies accurately. By focusing on metrics like precision and recall, Beck explains how to transition search from a black box to an iterative, improvable system, ultimately enhancing user experience and system reliability. His insights make it clear that understanding the nuances of search can significantly impact overall performance in MCP environments.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://bitcrowd.dev/the-age-of-refinement-evaluating-optimizing-search-performance-mcp-systems/&quot;&gt;Continue reading on &lt;strong&gt;bitcrowd.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/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-05-30T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-age-of-refinement-optimizing-search-performance-for-mcp-systems</id>
    <title>🔗 The age of refinement: optimizing search performance for MCP systems</title>
    <updated>2026-05-30T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/openapi-dsls-the-silent-developer-productivity-killer" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;I learned that relying on Domain-Specific Languages (DSLs) for OpenAPI documentation can lead to significant productivity pitfalls. In a recent experience with Elixir, I faced a convoluted mess when trying to manage my API specs embedded within controller logic. The DSL library imposed rigid structures, causing unnecessary complexity and confusion. The result? I had to switch back to a straightforward YAML specification, which not only simplified the process but also reduced errors when interacting with AI tools like ChatGPT. Without the added abstraction, the YAML format was easier to read, and it became apparent that the claimed benefits of the DSL didn&apos;t outweigh its drawbacks. In the end, simpler often means better.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.curiosum.com/blog/openapi-dsls&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/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;/p&gt;</content>
    <published>2026-05-30T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/openapi-dsls-the-silent-developer-productivity-killer</id>
    <title>🔗 OpenAPI DSLs: The silent developer productivity killer</title>
    <updated>2026-05-30T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/10-lessons-for-agentic-coding" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Devs should use AI for fast implementation and automation while focusing their human expertise on testing, documentation, and high-value architectural decisions.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.dbreunig.com/2026/05/04/10-lessons-for-agentic-coding.html&quot;&gt;Continue reading on &lt;strong&gt;www.dbreunig.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-05-30T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/10-lessons-for-agentic-coding</id>
    <title>🔗 10 lessons for agentic coding</title>
    <updated>2026-05-30T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/programming-in-2026-excitement-dread-and-the-coming-wave" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;A big part of software engineering is now communicating with an alien technology we don&apos;t - and can&apos;t - fully understand.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://amontalenti.com/2026/04/23/excitement-and-dread&quot;&gt;Continue reading on &lt;strong&gt;amontalenti.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-05-29T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/programming-in-2026-excitement-dread-and-the-coming-wave</id>
    <title>🔗 Programming in 2026: excitement, dread, and the coming wave</title>
    <updated>2026-05-29T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/when-everyone-has-ai-and-the-company-still-learns-nothing" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Individual AI productivity gains don&apos;t automatically become organizational ones. Companies are past the &quot;buy seats and run training&quot; phase and into a messier stage where adoption is uneven, partially hidden, and disconnected from real learning. The key question isn&apos;t whether people use AI, but whether the organization captures what changed because of it. That requires linking operational control, loop-level feedback, and capability sharing into something that builds learning velocity over time.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.robert-glaser.de/when-everyone-has-ai-and-the-company-still-learns-nothing/&quot;&gt;Continue reading on &lt;strong&gt;www.robert-glaser.de&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-05-29T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/when-everyone-has-ai-and-the-company-still-learns-nothing</id>
    <title>🔗 When everyone has AI and the company still learns nothing</title>
    <updated>2026-05-29T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/claude-code-is-not-making-your-product-better" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;At the frontier, it&apos;s not clear that spending on tokens produces any economic value at all. The bottleneck at that level is tastemakers. The taste to delete, compress, and refuse is more valuable now that the floor is rising. AI makes it possible for anyone to create generic products, but it won&apos;t help the highest-level artisans create better products.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://ethanding.substack.com/p/claude-code-is-not-making-your-product&quot;&gt;Continue reading on &lt;strong&gt;ethanding.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;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-05-28T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/claude-code-is-not-making-your-product-better</id>
    <title>🔗 Claude code is not making your product better</title>
    <updated>2026-05-28T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/s3-files-and-the-changing-face-of-s3" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The frustrating process of moving large datasets is all too familiar in many industries. In the article, Andy Warfield recounts his experiences with genomics researchers at UBC, who spent excessive time managing data rather than analyzing it. He introduced &lt;code&gt;S3 Files&lt;/code&gt; to bridge this gap between S3 and local filesystems, simplifying data workflows. The introduction of unified data primitives like &lt;code&gt;S3 Tables&lt;/code&gt; and &lt;code&gt;S3 Vectors&lt;/code&gt; supports structured data and semantic search more effectively. With &lt;code&gt;S3 Files&lt;/code&gt;, any existing S3 data can now be accessed directly as a network-attached filesystem, paving the way for enhanced data interaction across various tools.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.allthingsdistributed.com/2026/04/s3-files-and-the-changing-face-of-s3.html&quot;&gt;Continue reading on &lt;strong&gt;www.allthingsdistributed.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/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;/p&gt;</content>
    <published>2026-05-28T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/s3-files-and-the-changing-face-of-s3</id>
    <title>🔗 S3 Files and the changing face of S3</title>
    <updated>2026-05-28T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/phoenix-liveview-widgets-with-hooks-a-reusable-pattern" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Reusable Phoenix widgets have often been a challenge in Elixir applications, especially when managing state and events without complicating the parent LiveView. This article highlights a unique pattern for creating stateful and interactive components using function components and hooks. The method allows components to be self-contained, managing their own state while seamlessly integrating into the LiveView lifecycle.&lt;/p&gt;
&lt;p&gt;It covers the limitations of LiveComponents and Embedded LiveViews, demonstrating how the pattern can simplify component development by treating the LiveView&apos;s socket as the single source of truth. By implementing hooks, developers intercept events without requiring the parent LiveView to handle internal complexities, enabling multiple instances to run independently in the same context. A practical example involves building a chat widget, detailing the essential steps and considerations to maintain performance and reliability.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://curiosum.com/blog/hooking-up-with-liveview-stateful-widgets-with-function-components&quot;&gt;Continue reading on &lt;strong&gt;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/frontend&quot;&gt;#frontend&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/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-05-28T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/phoenix-liveview-widgets-with-hooks-a-reusable-pattern</id>
    <title>🔗 Phoenix LiveView widgets with hooks: a reusable pattern</title>
    <updated>2026-05-28T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/recursion-as-a-design-pattern" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;What if recursion was the best way to handle list processing in Elixir? This article reveals how recursion isn&apos;t just an alternative to loops but the optimal method in Elixir for list manipulation. Developers often struggle with traditional loop constructs, but Elixir’s approach leverages the accumulator pattern to streamline operations. The article contrasts two recursive styles for summing lists, illustrating how using an accumulator enhances performance by eliminating waiting stacks.&lt;/p&gt;
&lt;p&gt;By understanding this pattern, users can resolve confusion over recursion and recognize it as a natural fit for Elixir&apos;s functional paradigm. Concepts like &lt;code&gt;Enum.reduce&lt;/code&gt; align with the accumulator, making it clearer how to harness recursion efficiently in real-world scenarios. Bruce Tate’s insights underscore the necessity for shifting perspectives about recursion to see it as an inherent feature rather than a workaround.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://grox.io/blog/26-recursion-as-a-design-pattern/&quot;&gt;Continue reading on &lt;strong&gt;grox.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/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/elixir&quot;&gt;#elixir&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-05-27T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/recursion-as-a-design-pattern</id>
    <title>🔗 Recursion as a design pattern</title>
    <updated>2026-05-27T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/dont-let-ai-write-for-you" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Do LLMs enhance or hinder writing? This provocative piece warns against the pitfalls of using AI to generate documents and essays. The author argues that writing is not just about producing text; it’s an opportunity to explore ideas and build understanding. By relying on LLMs, individuals risk undermining their own credibility and authentic thinking. While LLMs can serve functional roles, like idea generation or quick transcription, they should not replace the deep cognitive process associated with writing. The article emphasizes the importance of engaging with the content and reflects on how LLM-generated writing impacts personal trustworthiness. To truly benefit from LLM tools, users must elevate their own thoughtfulness in the writing process.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://alexhwoods.com/dont-let-ai-write-for-you/&quot;&gt;Continue reading on &lt;strong&gt;alexhwoods.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/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-05-27T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/dont-let-ai-write-for-you</id>
    <title>🔗 Don&apos;t let AI write for you</title>
    <updated>2026-05-27T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/the-pulse-token-spend-breaks-budgets-what-next" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;In the past couple of months, spending on AI agents has surged dramatically among tech companies, with many experiencing a nearly 10x increase in costs. Gergely Orosz highlights the trend of &quot;tokenmaxxing,&quot; where developers are incentivized to maximize their AI usage for personal standings on internal leaderboards, raising concerns for leadership about the sustainability of such spending. Insights from 15 businesses showcase that while some companies are currently seeing productivity increase, their token costs are becoming unsustainable. Companies are now considering strategies ranging from limiting model usage to encouraging more efficient token consumption. The article illustrates how firms are navigating this financial pressure amidst a growing embrace of AI in their operations and the shifting perceptions around its costs.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/the-pulse-token-spend-breaks-budgets?isFreemail=true&amp;post_id=196007666&amp;publication_id=458709&amp;r=a3w8x&amp;triedRedirect=true&quot;&gt;Continue reading on &lt;strong&gt;newsletter.pragmaticengineer.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/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/announcement&quot;&gt;#announcement&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-05-26T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-pulse-token-spend-breaks-budgets-what-next</id>
    <title>🔗 The Pulse: token spend breaks budgets – what next?</title>
    <updated>2026-05-26T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/laravel-route-binding-behind-the-curtains" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Laravel&apos;s route binding automates the process of resolving model instances from route parameters, making it a breeze for developers. While it seems straightforward—just type-hint a &lt;code&gt;User $user&lt;/code&gt; in a controller—there’s a complex flow behind the scenes. This article by Wendell Adriel delves into the internals of Laravel&apos;s route binding mechanism, explaining how it captures URI segments and the middleware responsible for substituting raw parameters with their corresponding model instances. It covers the differences between explicit and implicit bindings, how Eloquent queries the database for resolving models, and the nuances of customizing resolution logic. By understanding the lifecycle of route binding, developers can leverage its features more effectively, making their applications cleaner and more efficient.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://wendelladriel.com/blog/laravel-route-binding-behind-the-curtains&quot;&gt;Continue reading on &lt;strong&gt;wendelladriel.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/laravel&quot;&gt;#laravel&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/php&quot;&gt;#php&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/eloquent&quot;&gt;#eloquent&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-05-26T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/laravel-route-binding-behind-the-curtains</id>
    <title>🔗 Laravel Route Binding Behind the Curtains</title>
    <updated>2026-05-26T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/validating-array-inputs-in-laravel-without-the-n-1" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Validating user inputs when submitting a cart can be challenging, especially when facing potential injection attacks. The article examines how relying on &lt;code&gt;exists:products,id&lt;/code&gt; for validating each array item results in an inefficient N+1 query pattern. By showing a naive approach that scales linearly with cart size, it emphasizes the need for a more efficient solution.&lt;/p&gt;
&lt;p&gt;A better strategy is presented using the &lt;code&gt;after()&lt;/code&gt; callback to consolidate the existence checks into a single query, but it sacrifices precise error reporting. The author proposes a sweet spot by implementing &lt;code&gt;prepareForValidation()&lt;/code&gt;. This allows for prefetching valid product IDs in a single query while retaining detailed error messages for each specific item in the cart. This method achieves safe, efficient nested array validation in Laravel without the pitfalls of the N+1 issue, maintaining user experience and reliability in input validation.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://daryllegion.com/validating-array-inputs-in-laravel-without-the-n-plus-1&quot;&gt;Continue reading on &lt;strong&gt;daryllegion.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/laravel&quot;&gt;#laravel&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/php&quot;&gt;#php&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;/p&gt;</content>
    <published>2026-05-26T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/validating-array-inputs-in-laravel-without-the-n-1</id>
    <title>🔗 Validating array inputs in Laravel without the N+1</title>
    <updated>2026-05-26T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/the-20-software-engineering-laws" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Most engineers discover the hard truths of software development through experience. Among these are laws that explain why projects fail, systems degrade, and teams struggle. Renowned software engineering expert Dr. Milan Milanović outlines twenty essential laws that resonate even in 2026, such as Brooks’s Law, which states that adding people to a delayed project only amplifies delays. He emphasizes that these laws are not directives but rather explanations of human nature and dynamics in team settings under pressure. The article is a reflection on the wisdom gained from years in the industry, providing insights into common pitfalls and the realities of software engineering. Milanović&apos;s analysis of these laws serves as a guide for navigating the complexities of modern software development.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://newsletter.techworld-with-milan.com/p/the-20-software-engineering-laws&quot;&gt;Continue reading on &lt;strong&gt;newsletter.techworld-with-milan.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/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;/p&gt;</content>
    <published>2026-05-25T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-20-software-engineering-laws</id>
    <title>🔗 The 20 software engineering laws</title>
    <updated>2026-05-25T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link href="https://www.yellowduck.be/posts/ai-now-writes-97-of-my-code-heres-what-i-learned" rel="alternate"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The staggering claim that AI writes 97% of the author&apos;s production code underscores a significant shift in software development. Swizec Teller detailed his experience with Cursor, an AI tool that transformed his workflow, allowing him to implement features without traditional coding methods. This wasn&apos;t just experimentation; real stakes attached to production code skyrocketed the pressure. The author emphasized the importance of clear communication with the AI, giving context and feedback while iterating on features. This hands-off approach led to successful project implementations that might have otherwise been deprioritized. He cautioned, however, about the pitfalls of relying too heavily on elaborate plans without monitoring, stressing simplicity in communication and expectations with AI agents. The article serves as a testament to evolving coding practices, showcasing both potential and risks.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://swizec.com/blog/ai-now-writes-97-of-my-code-heres-what-i-learned/&quot;&gt;Continue reading on &lt;strong&gt;swizec.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/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-05-25T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/ai-now-writes-97-of-my-code-heres-what-i-learned</id>
    <title>🔗 AI now writes 97% of my code. Here&apos;s what I learned</title>
    <updated>2026-05-25T08:00:00Z</updated>
  </entry>
</feed>