<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Truong Phung</title>
    <description>The latest articles on Forem by Truong Phung (@truongpx396).</description>
    <link>https://forem.com/truongpx396</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg</url>
      <title>Forem: Truong Phung</title>
      <link>https://forem.com/truongpx396</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/truongpx396"/>
    <language>en</language>
    <item>
      <title>🏗️ 📐 Harness Engineering: The Emerging Discipline of Making AI Agents Reliable 🤖</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Thu, 16 Apr 2026 08:21:39 +0000</pubDate>
      <link>https://forem.com/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-mgc</link>
      <guid>https://forem.com/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-mgc</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf" class="crayons-story__hidden-navigation-link"&gt;🏗️ 📐 Harness Engineering: The Emerging Discipline of Making AI Agents Reliable 🤖&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/truongpx396" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/truongpx396" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Truong Phung
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Truong Phung
                
              
              &lt;div id="story-author-preview-content-3503756" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/truongpx396" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Truong Phung&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 15&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf" id="article-link-3503756"&gt;
          🏗️ 📐 Harness Engineering: The Emerging Discipline of Making AI Agents Reliable 🤖
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            20 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>🏗️ 📐 Harness Engineering: The Emerging Discipline of Making AI Agents Reliable 🤖</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Wed, 15 Apr 2026 08:44:19 +0000</pubDate>
      <link>https://forem.com/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf</link>
      <guid>https://forem.com/truongpx396/harness-engineering-the-emerging-discipline-of-making-ai-agents-reliable-42gf</guid>
      <description>&lt;p&gt;&lt;em&gt;A comprehensive guide to the practice of shaping the environment around AI agents so they can work dependably — based on references from the &lt;a href="https://github.com/walkinglabs/awesome-harness-engineering" rel="noopener noreferrer"&gt;Awesome Harness Engineering&lt;/a&gt; collection.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What Is Harness Engineering?&lt;/li&gt;
&lt;li&gt;Why It Matters Now&lt;/li&gt;
&lt;li&gt;The Core Equation: Agent = Model + Harness&lt;/li&gt;
&lt;li&gt;Foundations &amp;amp; Key Mental Models&lt;/li&gt;
&lt;li&gt;Context Engineering: The Working Memory Budget&lt;/li&gt;
&lt;li&gt;Constraints, Guardrails &amp;amp; Safe Autonomy&lt;/li&gt;
&lt;li&gt;Specs, Agent Files &amp;amp; Workflow Design&lt;/li&gt;
&lt;li&gt;Evals &amp;amp; Observability&lt;/li&gt;
&lt;li&gt;Runtimes, Harnesses &amp;amp; Reference Implementations&lt;/li&gt;
&lt;li&gt;Benchmarks: Measuring Harness Quality&lt;/li&gt;
&lt;li&gt;Practical Playbook: Engineering Your Own Harness&lt;/li&gt;
&lt;li&gt;The Future of Harness Engineering&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;li&gt;References &amp;amp; Further Reading&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  1. What Is Harness Engineering?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Harness engineering&lt;/strong&gt; is the practice of designing, building, and iterating on the environment, tooling, constraints, and feedback loops that surround an AI agent — everything that isn't the model itself. The term gained widespread traction in early 2026, popularized by field reports from OpenAI, Anthropic, LangChain, Thoughtworks, and HumanLayer, all converging on the same insight: &lt;em&gt;the reliability of an AI agent depends less on the model and more on the system wrapped around it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As &lt;a href="https://blog.langchain.com/the-anatomy-of-an-agent-harness/" rel="noopener noreferrer"&gt;LangChain's Vivek Trivedy&lt;/a&gt; crystallized it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Agent = Model + Harness.&lt;/strong&gt; If you're not the model, you're the harness.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A harness includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System prompts&lt;/strong&gt; — the instructions that shape the agent's persona and constraints&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools, skills, and MCP servers&lt;/strong&gt; — capabilities the agent can invoke&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bundled infrastructure&lt;/strong&gt; — filesystem, sandboxes, browsers, observability stacks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestration logic&lt;/strong&gt; — sub-agent spawning, handoffs, model routing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hooks and middleware&lt;/strong&gt; — deterministic control flow for compaction, continuation, lint checks, and verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory and state management&lt;/strong&gt; — progress files, git history, structured knowledge bases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A raw model is &lt;em&gt;not&lt;/em&gt; an agent. It becomes one only when a harness gives it state, tool execution, feedback loops, and enforceable constraints. Harness engineering is the discipline of making all of that work well.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Why It Matters Now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The "Skill Issue" Realization
&lt;/h3&gt;

&lt;p&gt;As &lt;a href="https://www.humanlayer.dev/blog/skill-issue-harness-engineering-for-coding-agents" rel="noopener noreferrer"&gt;HumanLayer argued&lt;/a&gt;, teams that blame weak agent results on model limitations are usually wrong. After hundreds of agent sessions across dozens of projects, the pattern is consistent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's not a model problem. It's a configuration problem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every time a team instinctively says "GPT-6 will fix it" or "we just need better instruction-following," the real fix is almost always in the harness — better context management, smarter tool selection, proper verification loops, or cleaner handoff artifacts.&lt;/p&gt;

&lt;h3&gt;
  
  
  The OpenAI Proof Point
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer"&gt;OpenAI's flagship field report&lt;/a&gt; provided dramatic evidence. A three-person engineering team built and shipped an internal product with &lt;strong&gt;zero manually-written code&lt;/strong&gt; — roughly a million lines across application logic, tests, CI, documentation, and tooling — all generated by Codex agents. The team averaged 3.5 merged PRs per engineer per day, and Codex runs regularly worked autonomously for &lt;strong&gt;six hours or more&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The key insight was that early progress was &lt;em&gt;slower&lt;/em&gt; than expected — not because Codex was incapable, but because &lt;strong&gt;the environment was underspecified&lt;/strong&gt;. The primary job of human engineers became enabling agents to do useful work: building the harness.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Because the only way to make progress was to get Codex to do the work, human engineers always stepped into the task and asked: 'what capability is missing, and how do we make it both legible and enforceable for the agent?'"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Harness Changes Move Benchmarks
&lt;/h3&gt;

&lt;p&gt;LangChain demonstrated that &lt;a href="https://blog.langchain.com/improving-deep-agents-with-harness-engineering/" rel="noopener noreferrer"&gt;harness changes alone can significantly improve benchmark performance&lt;/a&gt; — moving their coding agent from Top 30 to Top 5 on Terminal-Bench 2.0 by only changing the harness, not the model. Anthropic showed that &lt;a href="https://www.anthropic.com/engineering/infrastructure-noise" rel="noopener noreferrer"&gt;infrastructure configuration can move coding benchmark scores by more than many leaderboard gaps&lt;/a&gt;. The implication is profound: benchmarks often measure harness quality as much as — or more than — model quality.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The Core Equation: Agent = Model + Harness
&lt;/h2&gt;

&lt;p&gt;LangChain's &lt;a href="https://blog.langchain.com/the-anatomy-of-an-agent-harness/" rel="noopener noreferrer"&gt;Anatomy of an Agent Harness&lt;/a&gt; provides the clearest decomposition. Working backwards from what models &lt;em&gt;cannot&lt;/em&gt; do natively reveals why each harness component exists:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What We Want&lt;/th&gt;
&lt;th&gt;What Models Can't Do Natively&lt;/th&gt;
&lt;th&gt;Harness Solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Persistent memory&lt;/td&gt;
&lt;td&gt;Maintain durable state across interactions&lt;/td&gt;
&lt;td&gt;Filesystem, git, progress files, AGENTS.md&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Autonomous problem-solving&lt;/td&gt;
&lt;td&gt;Execute arbitrary code&lt;/td&gt;
&lt;td&gt;Bash tool, code execution sandboxes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Real-time knowledge&lt;/td&gt;
&lt;td&gt;Access information beyond training cutoff&lt;/td&gt;
&lt;td&gt;Web search, MCP tools, Context7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safe operation&lt;/td&gt;
&lt;td&gt;Understand risk boundaries&lt;/td&gt;
&lt;td&gt;Sandboxes, allow-lists, network isolation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-horizon coherence&lt;/td&gt;
&lt;td&gt;Work across multiple context windows&lt;/td&gt;
&lt;td&gt;Compaction, Ralph Loops, planning files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-verification&lt;/td&gt;
&lt;td&gt;Know if their work is correct&lt;/td&gt;
&lt;td&gt;Test runners, browser automation, linters&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The filesystem emerges as the most foundational harness primitive because it unlocks everything else: agents get a workspace, work can be incrementally persisted, and multiple agents can coordinate through shared files. Git adds versioning so agents can track work, rollback errors, and branch experiments.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Foundations &amp;amp; Key Mental Models
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 Feedforward and Feedback (Thoughtworks)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html" rel="noopener noreferrer"&gt;Birgitta Böckeler's framework at Thoughtworks&lt;/a&gt; provides the most rigorous mental model for harness engineering. She frames it through two control mechanisms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Guides (feedforward controls)&lt;/strong&gt; — anticipate the agent's behavior and steer it &lt;em&gt;before&lt;/em&gt; it acts. They increase the probability of good results on the first attempt. Examples: AGENTS.md files, architecture documentation, skills, coding conventions, reference applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sensors (feedback controls)&lt;/strong&gt; — observe &lt;em&gt;after&lt;/em&gt; the agent acts and help it self-correct. Most powerful when they produce signals optimized for LLM consumption. Examples: linters with custom error messages, test suites, code review agents, browser screenshots.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without guides, the agent keeps repeating mistakes. Without sensors, the agent encodes rules but never finds out whether they worked. A good harness requires both.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2 Computational vs. Inferential
&lt;/h3&gt;

&lt;p&gt;Each control can be either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Computational&lt;/strong&gt; — deterministic and fast, run by the CPU. Tests, linters, type checkers, structural analysis. Milliseconds to seconds; results are reliable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inferential&lt;/strong&gt; — semantic analysis, AI code review, "LLM as judge." Slower, more expensive, non-deterministic — but capable of richer judgment.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control&lt;/th&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coding conventions&lt;/td&gt;
&lt;td&gt;Feedforward&lt;/td&gt;
&lt;td&gt;Inferential&lt;/td&gt;
&lt;td&gt;AGENTS.md, Skills&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structural tests&lt;/td&gt;
&lt;td&gt;Feedback&lt;/td&gt;
&lt;td&gt;Computational&lt;/td&gt;
&lt;td&gt;ArchUnit tests checking module boundaries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code review agent&lt;/td&gt;
&lt;td&gt;Feedback&lt;/td&gt;
&lt;td&gt;Inferential&lt;/td&gt;
&lt;td&gt;A review skill using a strong model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bootstrap scripts&lt;/td&gt;
&lt;td&gt;Feedforward&lt;/td&gt;
&lt;td&gt;Both&lt;/td&gt;
&lt;td&gt;Skill with instructions and a bootstrap script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code mods&lt;/td&gt;
&lt;td&gt;Feedforward&lt;/td&gt;
&lt;td&gt;Computational&lt;/td&gt;
&lt;td&gt;OpenRewrite recipes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  4.3 The Cybernetic Governor
&lt;/h3&gt;

&lt;p&gt;The harness acts as a &lt;strong&gt;cybernetic governor&lt;/strong&gt; — combining feedforward and feedback to regulate the codebase toward its desired state. Böckeler identifies three regulation dimensions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Maintainability harness&lt;/strong&gt; — internal code quality (linters, complexity checks, coverage). The most mature category with extensive pre-existing tooling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture fitness harness&lt;/strong&gt; — system characteristics (performance, observability, security). Essentially &lt;a href="https://www.thoughtworks.com/en-de/radar/techniques/architectural-fitness-function" rel="noopener noreferrer"&gt;architectural fitness functions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behaviour harness&lt;/strong&gt; — functional correctness. The hardest category: how do we verify that the application does what we need? This remains the elephant in the room.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4.4 The Three Pillars (Thoughtworks)
&lt;/h3&gt;

&lt;p&gt;Thoughtworks frames harness work into three pillars:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Context engineering&lt;/strong&gt; — managing what the agent knows and when&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architectural constraints&lt;/strong&gt; — enforcing invariants mechanically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Garbage collection&lt;/strong&gt; — fighting entropy and drift continuously&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4.5 Control–Agency–Runtime (CAR) Decomposition
&lt;/h3&gt;

&lt;p&gt;An &lt;a href="https://www.preprints.org/manuscript/202603.1756" rel="noopener noreferrer"&gt;academic position paper&lt;/a&gt; proposes treating the harness layer as a first-class research object with three dimensions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Control&lt;/strong&gt; — constraints, guardrails, permissions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agency&lt;/strong&gt; — planning, decision-making, self-evaluation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime&lt;/strong&gt; — execution environment, tools, infrastructure&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Context Engineering: The Working Memory Budget
&lt;/h2&gt;

&lt;p&gt;Context engineering is the practice of managing the agent's context window as a &lt;strong&gt;working memory budget&lt;/strong&gt; rather than a dumping ground. It is arguably the most critical aspect of harness engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.1 The One Big File Anti-Pattern
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer"&gt;OpenAI learned the hard way&lt;/a&gt; that a monolithic AGENTS.md doesn't scale:&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context is a scarce resource.&lt;/strong&gt; A giant instruction file crowds out the task, the code, and the relevant docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Too much guidance becomes non-guidance.&lt;/strong&gt; When everything is "important," nothing is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It rots instantly.&lt;/strong&gt; A monolithic manual turns into a graveyard of stale rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's hard to verify.&lt;/strong&gt; A single blob doesn't lend itself to mechanical checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Their solution: treat &lt;code&gt;AGENTS.md&lt;/code&gt; as a &lt;strong&gt;table of contents&lt;/strong&gt; (~100 lines) that points to deeper sources of truth in a structured &lt;code&gt;docs/&lt;/code&gt; directory. This enables &lt;strong&gt;progressive disclosure&lt;/strong&gt; — agents start with a small, stable entry point and are taught where to look next.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.2 Progressive Disclosure
&lt;/h3&gt;

&lt;p&gt;Progressive disclosure is the principle that agents should only receive specific instructions, knowledge, or tools when they actually need them. Loading everything upfront pushes the agent into what HumanLayer calls &lt;strong&gt;"the dumb zone"&lt;/strong&gt; — where context window fill degrades performance even on simple tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://research.trychroma.com/context-rot" rel="noopener noreferrer"&gt;Chroma's research on context rot&lt;/a&gt; provides empirical backing: models perform measurably worse at longer context lengths, and degradation is steeper when there's low semantic similarity between the query and the relevant information in context.&lt;/p&gt;

&lt;p&gt;Skills solve this: they're activated on demand, bringing in focused knowledge only when needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.3 Context-Efficient Backpressure
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.humanlayer.dev/blog/context-efficient-backpressure" rel="noopener noreferrer"&gt;HumanLayer's backpressure philosophy&lt;/a&gt; is essential: verification mechanisms must be &lt;strong&gt;context-efficient&lt;/strong&gt;. Running a full test suite after every change floods the context window with thousands of lines of passing tests. The agent loses track of its actual task.&lt;/p&gt;

&lt;p&gt;The rule: &lt;strong&gt;success is silent, only failures produce output.&lt;/strong&gt; Swallow the output of passing checks and only surface errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.4 Sub-Agents as Context Firewalls
&lt;/h3&gt;

&lt;p&gt;Sub-agents provide &lt;strong&gt;context isolation&lt;/strong&gt; — each gets a fresh, small, high-relevance context window for its task, and only the condensed result flows back to the parent. This is far more powerful than simply making context windows bigger:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A bigger context window doesn't make the model better at finding the needle — it just makes the haystack bigger."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Effective sub-agent tasks: codebase exploration, grep/search operations, tracing information flow, research tasks — anything with a straightforward question and simple answer that requires many intermediate tool calls.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.5 Lessons from Manus
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus" rel="noopener noreferrer"&gt;Manus' playbook&lt;/a&gt; contributed specific techniques: KV-cache locality optimization, tool masking, filesystem memory, and keeping useful failures in-context while discarding noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.6 OpenHands Context Condensation
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://openhands.dev/blog/openhands-context-condensensation-for-more-efficient-ai-agents" rel="noopener noreferrer"&gt;OpenHands' approach&lt;/a&gt; to bounded conversation memory preserves goals, progress, critical files, and failing tests while condensing everything else — keeping long-running coding sessions efficient without losing essential state.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Constraints, Guardrails &amp;amp; Safe Autonomy
&lt;/h2&gt;

&lt;h3&gt;
  
  
  6.1 Enforcing Invariants, Not Micromanaging
&lt;/h3&gt;

&lt;p&gt;OpenAI's approach is instructive: &lt;strong&gt;enforce boundaries centrally, allow autonomy locally.&lt;/strong&gt; They require Codex to parse data shapes at the boundary (&lt;a href="https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/" rel="noopener noreferrer"&gt;parse, don't validate&lt;/a&gt;), but don't prescribe how. Each business domain follows a fixed layered architecture (Types → Config → Repo → Service → Runtime → UI) with strictly validated dependency directions enforced by &lt;strong&gt;custom linters and structural tests&lt;/strong&gt; — all Codex-generated.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This is the kind of architecture you usually postpone until you have hundreds of engineers. With coding agents, it's an early prerequisite: the constraints are what allows speed without decay."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Custom linter error messages are written to &lt;strong&gt;inject remediation instructions into agent context&lt;/strong&gt; — a positive form of prompt injection that guides self-correction.&lt;/p&gt;

&lt;h3&gt;
  
  
  6.2 Sandboxing and Controlled Execution
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/claude-code-sandboxing" rel="noopener noreferrer"&gt;Anthropic's work on sandboxing&lt;/a&gt; focuses on reducing approval friction without losing control. Rather than prompting humans for every action, better sandboxing and policy design allow agents to work more autonomously while staying within safe boundaries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/code-execution-with-mcp" rel="noopener noreferrer"&gt;MCP-based code execution&lt;/a&gt; gives agents controlled execution power through explicit, inspectable tool boundaries — making it clear what the agent can and cannot do.&lt;/p&gt;

&lt;h3&gt;
  
  
  6.3 Tool Design for Safety
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/writing-tools-for-agents" rel="noopener noreferrer"&gt;Anthropic's guidance on writing tools for agents&lt;/a&gt; emphasizes that tool interfaces should be easy for models to call correctly and safely. Poorly designed tools lead to misuse; well-designed tools guide the agent toward correct behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  6.4 Prompt Injection Defense
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://openhands.dev/blog/mitigating-prompt-injection-attacks-in-software-agents" rel="noopener noreferrer"&gt;OpenHands' practical guide&lt;/a&gt; covers confirmation mode, analyzers, sandboxing, and hard policies for reducing prompt-injection risk. This is especially important given that MCP server tool descriptions are injected into system prompts — never connect to one you don't trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  6.5 Quality Checks in the Loop
&lt;/h3&gt;

&lt;p&gt;Rather than relying on after-the-fact manual review, &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/ccmenu-quality.html" rel="noopener noreferrer"&gt;Thoughtworks advocates&lt;/a&gt; moving quality checks into the agent's own loop. &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/anchoring-to-reference.html" rel="noopener noreferrer"&gt;Anchoring agents to reference applications&lt;/a&gt; constrains output with concrete exemplars. The question for humans becomes not "how do I review every line?" but &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/humans-and-agents.html" rel="noopener noreferrer"&gt;"where should I strengthen the harness?"&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Specs, Agent Files &amp;amp; Workflow Design
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 AGENTS.md and Agent Files
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/agentsmd/agents.md" rel="noopener noreferrer"&gt;AGENTS.md&lt;/a&gt; is a lightweight open format for repo-local instructions that tell agents how to work inside a codebase. A related effort, &lt;a href="https://github.com/agentmd/agent.md" rel="noopener noreferrer"&gt;agent.md&lt;/a&gt;, pursues machine-readable agent instructions across projects and tools.&lt;/p&gt;

&lt;p&gt;The key insights from practitioners:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep it concise&lt;/strong&gt; — under 60 lines is a good target. HumanLayer's CLAUDE.md is under 60 lines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid auto-generating it&lt;/strong&gt; — LLM-generated agent files actually &lt;em&gt;hurt&lt;/em&gt; performance while costing 20%+ more tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't include directory listings&lt;/strong&gt; — agents discover repository structure on their own just fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use progressive disclosure&lt;/strong&gt; — point to deeper resources rather than inlining everything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make instructions universally applicable&lt;/strong&gt; — avoid conditional rules that confuse the model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7.2 Spec-Driven Development
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/github/spec-kit" rel="noopener noreferrer"&gt;GitHub's Spec Kit&lt;/a&gt; enables spec-driven development where agents execute against explicit product and engineering specifications. &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html" rel="noopener noreferrer"&gt;Thoughtworks' analysis&lt;/a&gt; explains why strong specs make AI-assisted delivery more dependable: they give agents unambiguous goals to work toward.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.3 The 12-Factor Agent
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.humanlayer.dev/blog/12-factor-agents" rel="noopener noreferrer"&gt;HumanLayer's 12-Factor Agents&lt;/a&gt; establishes operating principles for production agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit prompts over implicit behavior&lt;/li&gt;
&lt;li&gt;State ownership — agents manage their own state&lt;/li&gt;
&lt;li&gt;Clean pause-resume behavior&lt;/li&gt;
&lt;li&gt;Context discipline&lt;/li&gt;
&lt;li&gt;Reproducible workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The companion &lt;a href="https://www.12factoragentops.com/" rel="noopener noreferrer"&gt;12-Factor AgentOps&lt;/a&gt; extends these principles to operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.4 Feature Lists for Long-Running Work
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents" rel="noopener noreferrer"&gt;Anthropic's approach&lt;/a&gt; to long-running agents uses an &lt;strong&gt;initializer agent&lt;/strong&gt; that generates a comprehensive feature list (200+ features for a web app), all initially marked as "failing." Subsequent coding agents work through features one at a time, marking them as passing only after verification. This prevents two critical failure modes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The one-shot attempt&lt;/strong&gt; — the agent tries to build everything at once, runs out of context mid-implementation, and leaves a broken state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Premature victory&lt;/strong&gt; — the agent sees existing progress and declares the job done.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The feature list uses JSON rather than Markdown because models are less likely to inappropriately modify structured JSON files.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Evals &amp;amp; Observability
&lt;/h2&gt;

&lt;h3&gt;
  
  
  8.1 Why Evals Are Hard for Agents
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents" rel="noopener noreferrer"&gt;Anthropic's guidance on demystifying evals&lt;/a&gt; highlights the fundamental challenge: agents have &lt;strong&gt;many possible trajectories&lt;/strong&gt; to success or failure. A single task can be completed through vastly different tool-call sequences, making traditional input-output evaluation insufficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  8.2 Eval Taxonomies
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://developers.openai.com/blog/eval-skills/" rel="noopener noreferrer"&gt;OpenAI's eval guide&lt;/a&gt; introduces turning agent traces into repeatable evals with JSONL logs and deterministic checks. &lt;a href="https://blog.langchain.com/evaluating-deep-agents-our-learnings/" rel="noopener noreferrer"&gt;LangChain's breakdown&lt;/a&gt; distinguishes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Single-step evals&lt;/strong&gt; — does one tool call produce the right result?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full-run evals&lt;/strong&gt; — does the complete task get solved?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-turn evals&lt;/strong&gt; — does the agent handle conversations and evolving goals?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8.3 Trace Grading
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://platform.openai.com/docs/guides/trace-grading" rel="noopener noreferrer"&gt;OpenAI's trace grading&lt;/a&gt; enables grading agent traces directly — especially helpful for long multi-step tasks where the final output alone doesn't reveal whether the agent's process was sound.&lt;/p&gt;

&lt;h3&gt;
  
  
  8.4 Verification Stacks
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://openhands.dev/blog/20260305-learning-to-verify-ai-generated-code" rel="noopener noreferrer"&gt;OpenHands' layered verification&lt;/a&gt; uses trajectory critics trained on production traces for reranking, early stopping, and review-time quality control. This goes beyond simple pass/fail testing to assess the quality of the agent's reasoning process.&lt;/p&gt;

&lt;h3&gt;
  
  
  8.5 Skill-Level Evals
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://openhands.dev/blog/evaluating-agent-skills" rel="noopener noreferrer"&gt;OpenHands' playbook&lt;/a&gt; emphasizes measuring whether a specific skill actually helps using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bounded tasks&lt;/li&gt;
&lt;li&gt;Deterministic verifiers&lt;/li&gt;
&lt;li&gt;No-skill baselines&lt;/li&gt;
&lt;li&gt;Trace review&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8.6 Infrastructure Noise
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/infrastructure-noise" rel="noopener noreferrer"&gt;Anthropic's research on infrastructure noise&lt;/a&gt; shows that runtime configuration can move coding benchmark scores by more than many leaderboard gaps — meaning that benchmark results may reflect infrastructure choices more than model intelligence.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Runtimes, Harnesses &amp;amp; Reference Implementations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  9.1 The Framework/Runtime/Harness Distinction
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.langchain.com/agent-frameworks-runtimes-and-harnesses-oh-my/" rel="noopener noreferrer"&gt;LangChain's decomposition&lt;/a&gt; clarifies what belongs where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt; — reusable abstractions for building agents (LangGraph, CrewAI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime&lt;/strong&gt; — execution infrastructure (sandboxes, state management, scheduling)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Harness&lt;/strong&gt; — the task-specific configuration and environment around a particular agent deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9.2 Notable Implementations
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/SWE-agent/SWE-agent" rel="noopener noreferrer"&gt;SWE-agent&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mature research coding agent with inspectable harness, prompt, tools, and environment design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://claude.com/blog/building-agents-with-the-claude-agent-sdk" rel="noopener noreferrer"&gt;Claude Agent SDK&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Production-oriented SDK with sessions, tools, and orchestration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/langchain-ai/deepagents" rel="noopener noreferrer"&gt;deepagents&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;LangChain's open-source project for building deeper, longer-running agents with middleware and harness patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/SethGammon/Citadel" rel="noopener noreferrer"&gt;Citadel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Harness for Claude Code and Codex with isolated worktrees, multi-agent coordination, and persisted memory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/inngest/agent-kit" rel="noopener noreferrer"&gt;AgentKit&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;TypeScript toolkit for building durable, workflow-aware agents on event-driven infrastructure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/harbor-framework/harbor" rel="noopener noreferrer"&gt;Harbor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Generalized harness for evaluating and improving agents at scale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/raphaelchristi/harness-evolver" rel="noopener noreferrer"&gt;Harness Evolver&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Claude Code plugin that autonomously evolves agent harnesses using multi-agent proposers and evaluation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/SWE-agent/SWE-ReX" rel="noopener noreferrer"&gt;SWE-ReX&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Sandboxed code execution infrastructure for AI agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/olo-dot-io/Uni-CLI" rel="noopener noreferrer"&gt;Uni-CLI&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Universal CLI connecting agents to 134 sites via 711 declarative YAML pipelines with self-repair loop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  9.3 Skills Ecosystem
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://skills.sh/" rel="noopener noreferrer"&gt;skills.sh&lt;/a&gt; is a community marketplace for discovering, sharing, and installing reusable AI agent skills across runtimes like Claude Code — making harness capabilities portable and composable. However, caution is warranted: skill registries have already been caught distributing malicious skills, so treat them like &lt;code&gt;npm install random-package&lt;/code&gt; and read what you're installing.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. Benchmarks: Measuring Harness Quality
&lt;/h2&gt;

&lt;p&gt;Benchmarks are especially useful when you want to compare &lt;strong&gt;harness quality&lt;/strong&gt;, not just model quality. They stress context handling, tool calling, environment control, verification logic, and the runtime scaffolding around the model.&lt;/p&gt;

&lt;h3&gt;
  
  
  10.1 Software Engineering Benchmarks
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.swebench.com/" rel="noopener noreferrer"&gt;SWE-bench Verified&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Real GitHub issues and tests; makes harness choices around retrieval, patching, and validation highly visible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.tbench.ai/" rel="noopener noreferrer"&gt;Terminal-Bench&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Terminal-native agents in shells and filesystems; especially useful for comparing coding-agent harnesses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://openhands.dev/blog/evoclaw-benchmark" rel="noopener noreferrer"&gt;EvoClaw&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Dependent milestone sequences from real repo history; surfaces regression accumulation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  10.2 Web &amp;amp; Browser Benchmarks
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://webarena.dev/" rel="noopener noreferrer"&gt;WebArena&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Self-hostable web environment for evaluating autonomous agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jykoh.com/vwa" rel="noopener noreferrer"&gt;VisualWebArena&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Multimodal web agents with image and screenshot inputs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://huggingface.co/spaces/ServiceNow/browsergym-leaderboard" rel="noopener noreferrer"&gt;BrowserGym&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Reproducible framework comparing harnesses across multiple web benchmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/ServiceNow/WorkArena" rel="noopener noreferrer"&gt;WorkArena&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Enterprise-style web workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  10.3 General &amp;amp; Multi-Domain Benchmarks
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/THUDM/AgentBench" rel="noopener noreferrer"&gt;AgentBench&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Cross-environment: OS, databases, knowledge graphs, web browsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://huggingface.co/datasets/gaia-benchmark/GAIA" rel="noopener noreferrer"&gt;GAIA&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;General AI assistant tasks comparing harness-level choices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://os-world.github.io/" rel="noopener noreferrer"&gt;OSWorld&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Real computer-use across Ubuntu, Windows, macOS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://appworld.dev/" rel="noopener noreferrer"&gt;AppWorld&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Interactive coding agents with state-based and execution-based unit tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://clawbench.net/" rel="noopener noreferrer"&gt;ClawBench&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Search, reasoning, coding, safety, and multi-turn conversation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  10.4 MCP-Specific Benchmarks
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/modelscope/MCPBench" rel="noopener noreferrer"&gt;MCP Bench&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tool accuracy, latency, and token use across MCP server types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/eval-sys/mcpmark" rel="noopener noreferrer"&gt;MCPMark&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Stress-testing on real-world MCP tasks (Notion, GitHub, Postgres)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://osworld-mcp.github.io/" rel="noopener noreferrer"&gt;OSWorld-MCP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Real-world computer tasks using Model Context Protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  10.5 Leaderboards
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Leaderboard&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.agent-arena.com/leaderboard" rel="noopener noreferrer"&gt;Agent Arena&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ELO-style ratings from head-to-head agent battles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://hal.cs.princeton.edu/" rel="noopener noreferrer"&gt;HAL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Holistic agent evaluation with reliability, cost, and broad task coverage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://huggingface.co/spaces/galileo-ai/agent-leaderboard" rel="noopener noreferrer"&gt;Galileo Agent Leaderboard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;LLM agents on task completion and tool calling across business domains&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  11. Practical Playbook: Engineering Your Own Harness
&lt;/h2&gt;

&lt;p&gt;Drawing from all the sources in the Awesome Harness Engineering collection, here is a practical playbook for building an effective harness.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Start with Agent Files (But Keep Them Lean)
&lt;/h3&gt;

&lt;p&gt;Create a concise &lt;code&gt;AGENTS.md&lt;/code&gt; or &lt;code&gt;CLAUDE.md&lt;/code&gt; at the root of your repository:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep it under 60 lines&lt;/li&gt;
&lt;li&gt;Treat it as a table of contents, not an encyclopedia&lt;/li&gt;
&lt;li&gt;Include: build commands, test commands, key conventions, project structure pointers&lt;/li&gt;
&lt;li&gt;Exclude: directory listings, conditional rules, auto-generated content&lt;/li&gt;
&lt;li&gt;Point to deeper &lt;code&gt;docs/&lt;/code&gt; for architectural decisions, design principles, and domain knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Set Up Computational Feedback Loops
&lt;/h3&gt;

&lt;p&gt;These are your highest-leverage, lowest-cost sensors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Type checking&lt;/strong&gt; — catches structural errors deterministically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linting&lt;/strong&gt; with custom error messages that include remediation instructions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast test suites&lt;/strong&gt; — run a targeted subset, not the full suite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structural/architectural tests&lt;/strong&gt; — enforce module boundaries and dependency directions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Critical rule: success is silent.&lt;/strong&gt; Swallow output from passing checks; only surface errors to the agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Add Verification Tools
&lt;/h3&gt;

&lt;p&gt;Give the agent ways to verify its own work as a human would:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Browser automation&lt;/strong&gt; (Puppeteer, Playwright) for end-to-end UI verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot capture&lt;/strong&gt; so the agent can visually inspect results&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observability stack&lt;/strong&gt; — expose logs via LogQL, metrics via PromQL, traces via TraceQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev server per worktree&lt;/strong&gt; — isolate each agent's environment&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4: Implement Hooks for Control Flow
&lt;/h3&gt;

&lt;p&gt;Use harness hooks to create deterministic checkpoints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pre-stop hooks&lt;/strong&gt;: run formatter + type checker before the agent finishes; re-engage on failure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notification hooks&lt;/strong&gt;: alert humans when the agent needs attention&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval hooks&lt;/strong&gt;: auto-approve safe operations, deny dangerous ones (e.g., migrations)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration hooks&lt;/strong&gt;: create PRs, post to Slack, set up preview environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 5: Use Sub-Agents for Context Control
&lt;/h3&gt;

&lt;p&gt;Don't use sub-agents as "frontend engineer" or "backend engineer" personas — that doesn't work. Use them as &lt;strong&gt;context firewalls&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delegate research, grep, and exploration to sub-agents&lt;/li&gt;
&lt;li&gt;Use cheaper models (Sonnet, Haiku) for sub-agents; expensive models (Opus) for the parent&lt;/li&gt;
&lt;li&gt;Return condensed results with source citations (&lt;code&gt;filepath:line&lt;/code&gt; format)&lt;/li&gt;
&lt;li&gt;Keep the parent thread in the "smart zone" with minimal context pollution&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 6: Enforce Architecture Mechanically
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Define layered architecture with fixed dependency directions&lt;/li&gt;
&lt;li&gt;Write custom linters (the agent can write them!)&lt;/li&gt;
&lt;li&gt;Add structural tests that check invariants on every commit&lt;/li&gt;
&lt;li&gt;Encode "taste" as rules: structured logging, naming conventions, file size limits&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 7: Manage Long-Running Work
&lt;/h3&gt;

&lt;p&gt;For tasks spanning multiple context windows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use an &lt;strong&gt;initializer agent&lt;/strong&gt; to set up the environment: &lt;code&gt;init.sh&lt;/code&gt;, progress file, feature list, initial git commit&lt;/li&gt;
&lt;li&gt;Each subsequent &lt;strong&gt;coding agent&lt;/strong&gt; reads progress, works on one feature, commits, and writes a summary&lt;/li&gt;
&lt;li&gt;Always start a session by reading progress files and running a basic health check&lt;/li&gt;
&lt;li&gt;Always end a session with a clean, mergeable state&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 8: Fight Entropy Continuously
&lt;/h3&gt;

&lt;p&gt;OpenAI's "garbage collection" pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Encode &lt;strong&gt;golden principles&lt;/strong&gt; directly in the repository&lt;/li&gt;
&lt;li&gt;Run recurring background agents that scan for deviations&lt;/li&gt;
&lt;li&gt;Open targeted, small refactoring PRs that can be reviewed in under a minute&lt;/li&gt;
&lt;li&gt;Track quality grades per domain and per architectural layer&lt;/li&gt;
&lt;li&gt;Treat technical debt like a high-interest loan: pay it down daily&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 9: Make Knowledge Repository-Local
&lt;/h3&gt;

&lt;p&gt;Everything the agent needs must be in the repo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slack discussions about architecture? Encode them as markdown&lt;/li&gt;
&lt;li&gt;Design decisions? Write ADRs&lt;/li&gt;
&lt;li&gt;Onboarding knowledge? Put it in structured docs&lt;/li&gt;
&lt;li&gt;Knowledge in people's heads? Doesn't exist for the agent&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;"From the agent's point of view, anything it can't access in-context while running effectively doesn't exist."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 10: Iterate Based on Failures
&lt;/h3&gt;

&lt;p&gt;The most important meta-principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Anytime you find an agent makes a mistake, you take the time to engineer a solution such that the agent never makes that mistake again." — Mitchell Hashimoto&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don't design the ideal harness upfront. Bias toward shipping. Add configuration only when the agent actually fails. Throw away things that don't help. Distribute battle-tested configurations via repository-level config.&lt;/p&gt;




&lt;h2&gt;
  
  
  12. The Future of Harness Engineering
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Model-Harness Co-Evolution
&lt;/h3&gt;

&lt;p&gt;Today's frontier coding agents (Claude Code, Codex) are post-trained with models and harnesses in the loop. This creates a feedback cycle where useful primitives are discovered, added to the harness, and then used when training the next generation of models. But this co-evolution has interesting side effects: models can become &lt;strong&gt;over-fitted&lt;/strong&gt; to their training harness, performing worse in alternative harness configurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Harnessability as a Design Criterion
&lt;/h3&gt;

&lt;p&gt;Not every codebase is equally amenable to harnessing. &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html" rel="noopener noreferrer"&gt;Thoughtworks introduces "harnessability"&lt;/a&gt; — the structural properties that make a codebase governable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strongly typed languages naturally have type-checking as a sensor&lt;/li&gt;
&lt;li&gt;Clearly definable module boundaries afford architectural constraint rules&lt;/li&gt;
&lt;li&gt;Mature frameworks abstract away details agents don't need to worry about&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Greenfield teams can bake harnessability in from day one. Legacy teams face the harder problem: the harness is most needed where it is hardest to build.&lt;/p&gt;

&lt;h3&gt;
  
  
  Harness Templates
&lt;/h3&gt;

&lt;p&gt;Enterprises have a few common service topologies (CRUD APIs, event processors, data dashboards). These may evolve into &lt;strong&gt;harness templates&lt;/strong&gt; — bundles of guides and sensors pre-configured for a topology. Teams may start picking tech stacks partly based on what harnesses are already available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Autonomous Harness Evolution
&lt;/h3&gt;

&lt;p&gt;Projects like &lt;a href="https://github.com/raphaelchristi/harness-evolver" rel="noopener noreferrer"&gt;Harness Evolver&lt;/a&gt; point toward a future where agents &lt;strong&gt;autonomously improve their own harnesses&lt;/strong&gt; using multi-agent proposers, evaluation-backed selection, and git worktree isolation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Problems
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How do we keep a harness coherent as it grows, with guides and sensors in sync?&lt;/li&gt;
&lt;li&gt;How far can we trust agents to make trade-offs when instructions conflict?&lt;/li&gt;
&lt;li&gt;If sensors never fire, is that high quality or inadequate detection?&lt;/li&gt;
&lt;li&gt;How do we evaluate harness coverage similar to code coverage?&lt;/li&gt;
&lt;li&gt;How does architectural coherence evolve over years in a fully agent-generated system?&lt;/li&gt;
&lt;li&gt;Can we generalize these findings beyond coding to scientific research, financial modeling, and other domains?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  13. Conclusion
&lt;/h2&gt;

&lt;p&gt;Harness engineering represents a fundamental shift in how we think about AI-assisted software development. The discipline acknowledges a counterintuitive truth: &lt;strong&gt;the model is usually fine; the problem is the system around it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The implications reshape what it means to be a software engineer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Engineers become environment designers&lt;/strong&gt; — specifying intent, building feedback loops, and shaping constraints rather than writing code directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture becomes an early prerequisite&lt;/strong&gt; — not a luxury for large teams, but a necessity for agent reliability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository knowledge becomes the system of record&lt;/strong&gt; — everything the agent needs must be versioned, discoverable, and mechanically verifiable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality is enforced mechanically&lt;/strong&gt; — once encoded, standards apply everywhere at once, at every hour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entropy is managed continuously&lt;/strong&gt; — technical debt is treated as a high-interest loan, paid down daily by background agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html" rel="noopener noreferrer"&gt;Thoughtworks' Böckeler&lt;/a&gt; frames it: building this outer harness is emerging as &lt;strong&gt;an ongoing engineering practice&lt;/strong&gt;, not a one-time configuration. Harnesses externalize what human developer experience brings to the table — conventions, quality intuitions, architectural judgment, organizational alignment — making it explicit, verifiable, and continuously enforceable.&lt;/p&gt;

&lt;p&gt;The field is young, evolving rapidly, and full of open questions. But one thing is clear: the teams that invest in harness engineering — shaping the environment around their agents — will get dramatically better results than those waiting for the next model release to solve their problems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Building software still demands discipline, but the discipline shows up more in the scaffolding rather than the code." — OpenAI&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  14. References &amp;amp; Further Reading
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Foundational Articles
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer"&gt;Harness engineering: leveraging Codex in an agent-first world&lt;/a&gt; — OpenAI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents" rel="noopener noreferrer"&gt;Effective harnesses for long-running agents&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/harness-design-long-running-apps" rel="noopener noreferrer"&gt;Harness design for long-running application development&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.langchain.com/the-anatomy-of-an-agent-harness/" rel="noopener noreferrer"&gt;The Anatomy of an Agent Harness&lt;/a&gt; — LangChain&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html" rel="noopener noreferrer"&gt;Harness Engineering&lt;/a&gt; — Thoughtworks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;Building effective agents&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.humanlayer.dev/blog/skill-issue-harness-engineering-for-coding-agents" rel="noopener noreferrer"&gt;Skill Issue: Harness Engineering for Coding Agents&lt;/a&gt; — HumanLayer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.inngest.com/blog/your-agent-needs-a-harness-not-a-framework" rel="noopener noreferrer"&gt;Your Agent Needs a Harness, Not a Framework&lt;/a&gt; — Inngest&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.preprints.org/manuscript/202603.1756" rel="noopener noreferrer"&gt;Harness Engineering for Language Agents (CAR Decomposition)&lt;/a&gt; — Academic Paper&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Context &amp;amp; Memory
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;Effective context engineering for AI agents&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus" rel="noopener noreferrer"&gt;Context Engineering for AI Agents: Lessons from Building Manus&lt;/a&gt; — Manus&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://martinfowler.com/articles/exploring-gen-ai/context-engineering-coding-agents.html" rel="noopener noreferrer"&gt;Context Engineering for Coding Agents&lt;/a&gt; — Thoughtworks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.humanlayer.dev/blog/advanced-context-engineering" rel="noopener noreferrer"&gt;Advanced Context Engineering for Coding Agents&lt;/a&gt; — HumanLayer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.humanlayer.dev/blog/context-efficient-backpressure" rel="noopener noreferrer"&gt;Context-Efficient Backpressure for Coding Agents&lt;/a&gt; — HumanLayer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openhands.dev/blog/openhands-context-condensensation-for-more-efficient-ai-agents" rel="noopener noreferrer"&gt;OpenHands Context Condensation&lt;/a&gt; — OpenHands&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.humanlayer.dev/blog/writing-a-good-claude-md" rel="noopener noreferrer"&gt;Writing a good CLAUDE.md&lt;/a&gt; — HumanLayer&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Safety &amp;amp; Constraints
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/claude-code-sandboxing" rel="noopener noreferrer"&gt;Beyond permission prompts: making Claude Code more secure&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/code-execution-with-mcp" rel="noopener noreferrer"&gt;Code execution with MCP&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/writing-tools-for-agents" rel="noopener noreferrer"&gt;Writing effective tools for agents&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openhands.dev/blog/mitigating-prompt-injection-attacks-in-software-agents" rel="noopener noreferrer"&gt;Mitigating Prompt Injection Attacks&lt;/a&gt; — OpenHands&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://code.claude.com/docs" rel="noopener noreferrer"&gt;Claude Code: Best practices for agentic coding&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Workflow Design
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/agentsmd/agents.md" rel="noopener noreferrer"&gt;AGENTS.md&lt;/a&gt; — Open Standard&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/github/spec-kit" rel="noopener noreferrer"&gt;GitHub Spec Kit&lt;/a&gt; — GitHub&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.humanlayer.dev/blog/12-factor-agents" rel="noopener noreferrer"&gt;12 Factor Agents&lt;/a&gt; — HumanLayer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.12factoragentops.com/" rel="noopener noreferrer"&gt;12-Factor AgentOps&lt;/a&gt; — AgentOps&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Evals &amp;amp; Observability
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://developers.openai.com/blog/eval-skills/" rel="noopener noreferrer"&gt;Testing Agent Skills Systematically with Evals&lt;/a&gt; — OpenAI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents" rel="noopener noreferrer"&gt;Demystifying Evals for AI Agents&lt;/a&gt; — Anthropic&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.langchain.com/evaluating-deep-agents-our-learnings/" rel="noopener noreferrer"&gt;Evaluating Deep Agents&lt;/a&gt; — LangChain&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.langchain.com/improving-deep-agents-with-harness-engineering/" rel="noopener noreferrer"&gt;Improving Deep Agents with harness engineering&lt;/a&gt; — LangChain&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Courses
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/walkinglabs/learn-harness-engineering" rel="noopener noreferrer"&gt;walkinglabs/learn-harness-engineering&lt;/a&gt; — A project-based course on making Codex and Claude Code more reliable&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Curated Collection
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/walkinglabs/awesome-harness-engineering" rel="noopener noreferrer"&gt;walkinglabs/awesome-harness-engineering&lt;/a&gt; — The comprehensive, community-maintained list that informed this article&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;This article synthesizes insights from the &lt;a href="https://github.com/walkinglabs/awesome-harness-engineering" rel="noopener noreferrer"&gt;Awesome Harness Engineering&lt;/a&gt; collection — a curated list maintained by Walking Labs. All referenced works are credited to their original authors and organizations.&lt;/em&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;If you found this helpful, let me know by leaving a 👍 or a comment!, or if you think this post could help someone, feel free to share it! Thank you very much! 😃&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Sun, 22 Mar 2026 09:52:03 +0000</pubDate>
      <link>https://forem.com/truongpx396/-3m7i</link>
      <guid>https://forem.com/truongpx396/-3m7i</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/nocobase/top-11-open-source-no-code-ai-tools-with-the-most-github-stars-12pp" class="crayons-story__hidden-navigation-link"&gt;Top 11 Open Source No-Code AI Tools with the Most GitHub Stars&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/nocobase" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1349233%2Ffe1061e9-2897-4210-a0b2-a96c044ac3b2.jpg" alt="nocobase profile" class="crayons-avatar__image" width="400" height="400"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/nocobase" class="crayons-story__secondary fw-medium m:hidden"&gt;
              NocoBase
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                NocoBase
                
              
              &lt;div id="story-author-preview-content-2945998" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/nocobase" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1349233%2Ffe1061e9-2897-4210-a0b2-a96c044ac3b2.jpg" class="crayons-avatar__image" alt="" width="400" height="400"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;NocoBase&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/nocobase/top-11-open-source-no-code-ai-tools-with-the-most-github-stars-12pp" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 21 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/nocobase/top-11-open-source-no-code-ai-tools-with-the-most-github-stars-12pp" id="article-link-2945998"&gt;
          Top 11 Open Source No-Code AI Tools with the Most GitHub Stars
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/github"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;github&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/nocode"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;nocode&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/nocobase/top-11-open-source-no-code-ai-tools-with-the-most-github-stars-12pp" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;3&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/nocobase/top-11-open-source-no-code-ai-tools-with-the-most-github-stars-12pp#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            11 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>opensource</category>
      <category>github</category>
      <category>ai</category>
      <category>nocode</category>
    </item>
    <item>
      <title>🚀 Awesome Resources For Learning About System Design ⚡</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Sun, 26 Oct 2025 07:00:11 +0000</pubDate>
      <link>https://forem.com/truongpx396/awesome-resources-for-learning-about-system-design-39go</link>
      <guid>https://forem.com/truongpx396/awesome-resources-for-learning-about-system-design-39go</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="crayons-story__hidden-navigation-link"&gt;🚀 Awesome Resources For Learning About System Design ⚡&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/truongpx396" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/truongpx396" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Truong Phung
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Truong Phung
                
              
              &lt;div id="story-author-preview-content-2086476" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/truongpx396" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Truong Phung&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 8 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" id="article-link-2086476"&gt;
          🚀 Awesome Resources For Learning About System Design ⚡
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/kubernetes"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;kubernetes&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;10&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>webdev</category>
      <category>kubernetes</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>🚀 Awesome Resources For Learning About System Design ⚡</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Fri, 17 Oct 2025 19:09:08 +0000</pubDate>
      <link>https://forem.com/truongpx396/awesome-resources-for-learning-about-system-design-4m2n</link>
      <guid>https://forem.com/truongpx396/awesome-resources-for-learning-about-system-design-4m2n</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="crayons-story__hidden-navigation-link"&gt;🚀 Awesome Resources For Learning About System Design ⚡&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/truongpx396" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/truongpx396" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Truong Phung
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Truong Phung
                
              
              &lt;div id="story-author-preview-content-2086476" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/truongpx396" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Truong Phung&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 8 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" id="article-link-2086476"&gt;
          🚀 Awesome Resources For Learning About System Design ⚡
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/kubernetes"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;kubernetes&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;10&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>webdev</category>
      <category>kubernetes</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>🐹 Golang Integration with Kafka and Uber ZapLog 📨</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Fri, 17 Oct 2025 19:08:17 +0000</pubDate>
      <link>https://forem.com/truongpx396/golang-integration-with-kafka-and-uber-zaplog-51o4</link>
      <guid>https://forem.com/truongpx396/golang-integration-with-kafka-and-uber-zaplog-51o4</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/truongpx396/golang-integration-with-kafka-and-uber-zaplog-2bn7" class="crayons-story__hidden-navigation-link"&gt;🐹 Golang Integration with Kafka and Uber ZapLog 📨&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/truongpx396" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/truongpx396" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Truong Phung
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Truong Phung
                
              
              &lt;div id="story-author-preview-content-2074715" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/truongpx396" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Truong Phung&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/truongpx396/golang-integration-with-kafka-and-uber-zaplog-2bn7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 3 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/truongpx396/golang-integration-with-kafka-and-uber-zaplog-2bn7" id="article-link-2074715"&gt;
          🐹 Golang Integration with Kafka and Uber ZapLog 📨
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/go"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;go&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/kafka"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;kafka&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/truongpx396/golang-integration-with-kafka-and-uber-zaplog-2bn7" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;15&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/truongpx396/golang-integration-with-kafka-and-uber-zaplog-2bn7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              4&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            10 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>webdev</category>
      <category>go</category>
      <category>kafka</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>📘 TypeScript with ReactJS All in One ⚛️</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Fri, 17 Oct 2025 08:12:12 +0000</pubDate>
      <link>https://forem.com/truongpx396/typescript-with-reactjs-all-in-one-b0b</link>
      <guid>https://forem.com/truongpx396/typescript-with-reactjs-all-in-one-b0b</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/truongpx396/typescript-with-reactjs-all-in-one-1oed" class="crayons-story__hidden-navigation-link"&gt;📘 TypeScript with ReactJS All in One ⚛️&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/truongpx396" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/truongpx396" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Truong Phung
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Truong Phung
                
              
              &lt;div id="story-author-preview-content-2099186" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/truongpx396" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Truong Phung&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/truongpx396/typescript-with-reactjs-all-in-one-1oed" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Nov 12 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/truongpx396/typescript-with-reactjs-all-in-one-1oed" id="article-link-2099186"&gt;
          📘 TypeScript with ReactJS All in One ⚛️
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/react"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;react&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/truongpx396/typescript-with-reactjs-all-in-one-1oed" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;8&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/truongpx396/typescript-with-reactjs-all-in-one-1oed#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>👨‍💻 Top Freelancer Platforms and Useful Tips To Get High-Paying Jobs 💸</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Sun, 16 Mar 2025 07:45:39 +0000</pubDate>
      <link>https://forem.com/truongpx396/top-freelancer-platforms-and-useful-tips-to-get-high-paying-jobs-5h82</link>
      <guid>https://forem.com/truongpx396/top-freelancer-platforms-and-useful-tips-to-get-high-paying-jobs-5h82</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/truongpx396" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/truongpx396/top-freelancer-platforms-and-useful-tips-to-get-high-paying-jobs-2422" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;👨‍💻 Top Freelancer Platforms and Useful Tips To Get High-Paying Jobs 💸&lt;/h2&gt;
      &lt;h3&gt;Truong Phung ・ Nov 18 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>🔀 GIT FLOW OVERVIEW AND COMMON GIT COMMANDS 💻</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Fri, 14 Feb 2025 19:46:59 +0000</pubDate>
      <link>https://forem.com/truongpx396/git-flow-overview-and-common-git-commands-56mj</link>
      <guid>https://forem.com/truongpx396/git-flow-overview-and-common-git-commands-56mj</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/truongpx396" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/truongpx396/git-flow-overview-and-common-git-commands-1odh" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🔀 GIT FLOW OVERVIEW AND COMMON GIT COMMANDS 💻&lt;/h2&gt;
      &lt;h3&gt;Truong Phung ・ Oct 16 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#git&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cli&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>git</category>
      <category>cli</category>
      <category>github</category>
    </item>
    <item>
      <title>🛠️ DB Migration For Golang Services, Why it matters? 🐹</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Sat, 01 Feb 2025 17:30:05 +0000</pubDate>
      <link>https://forem.com/truongpx396/db-migration-for-golang-services-why-it-matters-2fnl</link>
      <guid>https://forem.com/truongpx396/db-migration-for-golang-services-why-it-matters-2fnl</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/truongpx396" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/truongpx396/db-migration-for-golang-services-why-it-matters-17a" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🛠️ DB Migration For Golang Services, Why it matters? 🐹&lt;/h2&gt;
      &lt;h3&gt;Truong Phung ・ Oct 22 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#go&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#mysql&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#database&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>go</category>
      <category>mysql</category>
      <category>webdev</category>
      <category>database</category>
    </item>
    <item>
      <title>🚀 Awesome Resources For Learning About System Design ⚡</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Fri, 24 Jan 2025 17:22:10 +0000</pubDate>
      <link>https://forem.com/truongpx396/awesome-resources-for-learning-about-system-design-4ge4</link>
      <guid>https://forem.com/truongpx396/awesome-resources-for-learning-about-system-design-4ge4</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/truongpx396" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/truongpx396/awesome-resources-for-learning-about-system-design-8je" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🚀 Awesome Resources For Learning About System Design ⚡&lt;/h2&gt;
      &lt;h3&gt;Truong Phung ・ Nov 8 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#kubernetes&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>systemdesign</category>
      <category>learning</category>
      <category>architecture</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>🐹 Golang Integration with Kafka and Uber ZapLog 📨</title>
      <dc:creator>Truong Phung</dc:creator>
      <pubDate>Fri, 24 Jan 2025 08:20:11 +0000</pubDate>
      <link>https://forem.com/truongpx396/golang-integration-with-kafka-and-uber-zaplog-35nn</link>
      <guid>https://forem.com/truongpx396/golang-integration-with-kafka-and-uber-zaplog-35nn</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/truongpx396" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2215325%2Ff0dca1b8-525d-45b6-bafc-f3d3141bc934.jpg" alt="truongpx396"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/truongpx396/golang-integration-with-kafka-and-uber-zaplog-2bn7" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🐹 Golang Integration with Kafka and Uber ZapLog 📨&lt;/h2&gt;
      &lt;h3&gt;Truong Phung ・ Nov 3 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#go&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#kafka&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>go</category>
      <category>kafka</category>
      <category>logging</category>
    </item>
  </channel>
</rss>
