Building Ambitious Software with AI Agents

AI Engineergo watch the original →

AI coding agents excel at implementation and mundane maintenance tasks, but they require a strong architectural foundation to avoid producing low-quality code. Human oversight remains essential for architectural design and high-stakes testing.

The Shift in Development Velocity

Jonathan Kelley describes how the Dioxus team transitioned from manual coding to using AI agents for their cross-platform Rust framework. While agents can generate thousands of lines of code, the team initially struggled with a "slop cannon" effect where generated features failed to meet quality standards. The breakthrough came from treating the agents as patient specialists that handle the cognitive burden of Rust's borrow checker and complex edge cases, allowing the team to focus on high-level architecture.

Effective Agent Workflows

  • Complex Integrations: Agents successfully implemented deeply integrated Kotlin and Swift build plugins in two to three weeks, a task that previously required years of manual effort.
  • Technical Research: Agents act as research assistants by parsing massive documentation sets, such as the CSS specification or browser engine source code, to resolve layout and rendering issues in the Blitz engine.
  • Mundane Automation: Agents handle tedious, high-volume tasks like verifying release checklists, backporting bug fixes to stable versions, and ensuring documentation accuracy, which has enabled the team to maintain a frequent, multi-release weekly cadence.
  • Fuzzing Harnesses: While agents struggle to write meaningful end-to-end tests for foundational software, they are highly effective at generating adversarial fuzzing harnesses to stress-test APIs with malformed inputs.

The Role of Human Oversight

Despite the speed of AI generation, the team continues to review every pull request line by line. Kelley emphasizes that code is now cheap, but quality remains expensive. Because agents lack the context to understand how a codebase should evolve over time, they are prone to producing "spaghetti code" if the underlying architecture is flawed. Consequently, the primary role of the software engineer has shifted toward architecting elegant, flexible systems, as the actual writing of code has become a secondary concern.

  • #ai
  • #dev-tooling
  • #rust

summary by google/gemini-3.1-flash-lite. probably wrong about something. check the source.