Open Reader

Building ambitious software — Jonathan Kelley, Dioxus Labs & Cognition

completed 19:14 Sep 11, 2026 Watch on YouTube

Current Status

completed

Video ID

H7vFrcNWXzs

RAG / Chat

Enabled
Building ambitious software — Jonathan Kelley, Dioxus Labs & Cognition
Description

The Dioxus team got excited, maxed out their coding agent subscriptions, and turned out tens of thousands of lines of Rust covering features they had wanted for years. Almost none of it cleared the bar for merging. Those lines sat in draft, and Jonathan Kelley says they are sitting there still. He calls the failure mode becoming a slop cannon. Kelley founded Dioxus Labs five years ago, spending his last undergraduate summer on a cross platform Rust app framework instead of taking an internship, and the project now carries roughly 37,000 GitHub stars and an estimated 200 million cumulative end users across apps from voting software to collision avoidance for satellites. Getting there meant building almost everything from scratch, including a rendering engine with a browser grade CSS engine lifted out of Firefox, and a hot reload engine that patches running native code in place in about 100 milliseconds. The interesting turn is what changed when the agents got good at Rust. Kelley's team spent five years trying to file down Rust's learning curve, and now treats that curve as a feature, because the agents absorb the borrow checker and the edge cases on the developer's behalf. He is specific about where this pays and where it does not. Deeply integrated Kotlin and Swift build plugins went from years of hand written work to weeks. Release checklists, backports, and documentation accuracy became tractable for a team of three. Tests did not, because agents write tests for any API but rarely the right ones, though they excel at fuzzing harnesses. His verdict: code is cheap now, quality is not, and architecture is where the time goes. Speaker info: - https://www.linkedin.com/in/jonathan-r-kelley - https://jonathan-kelley.com - https://github.com/dioxuslabs/dioxus Timestamps: 0:00 - Five years ago, a first commit 2:49 - Where the project stands now 4:35 - Blitz and Subsecond 6:15 - The moment agents got good at Rust 7:07 - Why a hard language became an advantage 10:32 - Ag

Summary

Generated by gpt-5.6-terra

At-a-Glance

  • Verdict: Watch fully
  • Core thesis: AI coding agents can dramatically accelerate ambitious software work, but they make architecture, intent specification, testing judgment, and code review more—not less—important.
  • Why it matters: This is a concrete account from a three-engineer team maintaining a production-grade, cross-platform Rust framework, with reusable lessons for using agents without allowing high-velocity code generation to degrade a critical codebase.
  • Best use: Use it to calibrate an AI-assisted engineering operating model: delegate research, integrations, maintenance, and harness-building to agents while retaining human ownership of architecture, test strategy, and merge quality.

Executive Summary

Jonathan Kelley explains how Dioxus Labs built Dioxus, a Rust-based cross-platform application framework, by taking on infrastructure typically supplied by whole ecosystems: reactivity, rendering, hot reload, bundling, and ultimately an HTML/CSS engine named Blitz. The project reportedly grew from a 2021 experiment into a framework with nearly 37,000 GitHub stars, millions of downloads, and applications reaching an estimated 200 million end users.

Dioxus initially treated AI coding skeptically. When agents became strong at Rust, the team generated tens of thousands of lines and many desired features, but discovered that little was mergeable at its production-quality bar. Their key lesson was that unconstrained agent use creates a “slop cannon”: output volume rises much faster than maintainable, well-integrated software.

The team now gets exceptional leverage from agents on knowledge-heavy work—reading specifications and unfamiliar APIs, reverse engineering behavior, debugging CSS issues, building platform integrations, and completing release-maintenance tasks. Kelley says Kotlin and Swift plugins deeply integrated with Dioxus’s build system were implemented in roughly two to three weeks, with the core implementation completed in about a day and most remaining time spent testing on real devices.

But agents are not trusted to determine system architecture or blindly author meaningful tests. Dioxus still manually defines important test conditions, performs line-by-line PR review, and spends more development time deciding how systems should evolve than writing implementation code. The operating conclusion is blunt: code is cheap now, while quality remains scarce; engineering advantage shifts toward architectural foresight, explicit intent, review discipline, and a strong existing substrate.

Key Takeaways

  • Claim: AI agents are highly effective at solving knowledge-intensive implementation problems that would otherwise require extensive documentation reading, source-code archaeology, and patient debugging. | Evidence: Dioxus used agents to build Kotlin and Swift plugins integrated with its build system in approximately two to three weeks; Kelley says the implementation was largely completed on the first day, followed by two weeks of tests and real-device validation. In Blitz, agents accelerated diagnosis of difficult CSS layout and styling issues by applying detailed knowledge of browser behavior and the CSS specification. | Implication: Ken should assign agents broad research, specification interpretation, integration scaffolding, and debugging tasks where accumulated external knowledge is the bottleneck, but budget human validation as a first-class part of delivery. | Caveat: The claimed speed did not remove validation work; testing on actual devices consumed most of the plugin effort.
  • Claim: Unstructured adoption of coding agents can create large volumes of plausible but unmergeable code rather than durable engineering output. | Evidence: After maxing out cloud coding subscriptions, the Dioxus team produced tens of thousands of lines of Rust across long-desired features, fixes, and integrations, yet much of it remained in draft because it failed the team’s merge-quality standard. Kelley calls this failure mode becoming a “slop cannon.” | Implication: Measure agent-assisted engineering by merged, maintained, and validated changes—not generated lines, completed prompts, or apparent feature throughput. | Caveat: The issue is not that agents are inherently unsuitable for high-quality code; Kelley argues outcomes improve substantially with clear intent and a sound codebase.
  • Claim: A well-designed, strongly constrained codebase can become more attractive in an agentic era because agents can absorb much of the friction of working in difficult languages such as Rust. | Evidence: Dioxus had invested heavily in developer ergonomics, but Kelley found agents did not value those human-oriented conveniences in the same way. Instead, agents could handle Rust’s edge cases and type-checker friction, reducing the cognitive burden that makes Rust harder for humans to write. | Implication: Do not optimize architecture solely around making initial coding easy; strong types, explicit interfaces, and constraints may be more valuable when agents can bear implementation friction. | Caveat: This does not mean codebase readability is irrelevant: the team still depends on humans reading every shipped change and maintaining the system over time.
  • Claim: AI agents are especially valuable for maintenance and release-quality operations that consume scarce senior engineering attention but do not require primary architectural judgment. | Evidence: Dioxus uses agents to verify release checklists, backport fixes to stable releases, check documentation and doc comments for completeness and alignment with code, and automate tedious checks such as archive extraction and editor-extension compatibility. Kelley reports that the team now ships patch releases weekly or multiple times per week, more frequently than before. | Implication: Build agent workflows around recurring operational controls—release verification, compatibility checks, documentation drift, and backports—to increase cadence without diverting core engineers from design work.
  • Claim: Agents can help create testing infrastructure and generate test ideas, but they do not reliably select the tests that matter for complex foundational systems. | Evidence: Kelley says agents tend to write shallow tests, such as merely testing a constructor after receiving one, and struggle to validate complex end-to-end behavior like whether an extension actually installs and works inside Zed. The Dioxus team still manually enumerates critical conditions, designs test APIs, and operates test runners; it has found agents particularly good at building fuzzing harnesses for millions of malformed or adversarial inputs. | Implication: Keep test-oracle ownership with experienced engineers; use agents to accelerate fuzz harnesses, test tooling, and edge-case brainstorming rather than accepting coverage volume as quality. | Caveat: A passing agent-authored test suite can create false confidence if it validates implementation mechanics rather than failure modes, user workflows, or system invariants.
  • Claim: Architecture and explicit communication of intent are now the primary constraints on ambitious software delivery, because agents will implement locally plausible solutions even when they harm long-term system evolution. | Evidence: Kelley says agents generally do not voluntarily initiate major refactors or redesigns when a feature fits poorly; they typically just ship a solution. Dioxus therefore spends much of its development time considering future features and evolution, reviews every PR line by line, and finds implementation quality heavily dependent on the prompt supplied to the model. | Implication: Treat prompts, design briefs, invariants, and acceptance criteria as engineering artifacts. Preserve human review gates for changes that affect architecture, public APIs, security, or long-lived system behavior. | Caveat: AI review is used to identify bugs before human review, but it does not replace reading code. Open-source contributors also often provide weak intent, producing fixes “glued in place.”

Detailed Brief

Dioxus as the proof environment

  • Claims: Dioxus was conceived as a unified cross-platform application framework in Rust using HTML and CSS for UI markup and React-inspired reactivity.; Its ambition required replacing or building foundational layers rather than assembling mature off-the-shelf components.; The product strategy is to let developers share a codebase across full-stack web, iOS, and Android applications while minimizing platform-specific code.
  • Evidence: Kelley describes early alternatives as unsatisfactory: React Native was “janky,” Flutter was too slow, and neither handled native APIs as desired.; Dioxus built capabilities including reactivity, font rendering, hot reload, application bundling, native rendering, bundle splitting, and unified tooling.; The project claims nearly 37,000 GitHub stars, millions of downloads, and estimated deployment to more than 200 million end users across uses ranging from AI assistants and voting software to satellite collision-avoidance systems.
  • Caveats: The adoption, download, and end-user figures are speaker-provided claims and are not independently substantiated in the transcript.
  • Implications: The advice is most applicable to durable developer infrastructure, SDKs, control surfaces, and other code products where maintainability and compatibility failures directly affect users.; The case is less directly transferable to disposable prototypes or internal experiments where code quality and long-term support are deliberately lower priorities.

Infrastructure examples that demonstrate the team’s technical bar

  • Claims: Dioxus pursued proprietary core infrastructure to avoid the runtime and packaging costs associated with browser-embedded desktop application stacks.; SubSecond was built as a generic native-code hot-reload layer rather than a framework-specific convenience feature.
  • Evidence: Blitz combines a CSS engine extracted from Firefox, a custom HTML DOM, and a hybrid GPU rendering pipeline. Kelley claims Blitz applications can be under 5 MB and use under 50 MB of runtime RAM, contrasted with Electron’s storage and memory costs.; SubSecond watches Rust, C, and C++ edits, recompiles changed portions, and patches a running application in place in roughly 100 milliseconds; Kelley says it works across major operating systems and on the web through Rust-to-WebAssembly compilation.
  • Caveats: Performance figures and uniqueness claims are presented without benchmark methodology, workload definition, or comparison configuration.
  • Implications: Agent leverage is likely greatest when it augments teams that already have high-quality systems, clear interfaces, and rigorous standards—not when it is expected to compensate for an incoherent platform foundation.

Notable Concepts & Terms

  • Dioxus: A Rust-based cross-platform application framework used as the speaker’s example of maintaining ambitious, production-grade software under AI-assisted development.
  • Blitz: Dioxus’s lightweight HTML/CSS rendering engine, built with a Firefox-derived CSS engine, custom DOM, and GPU pipeline; it illustrates the project’s willingness to own deep infrastructure.
  • SubSecond: A hot-reload engine for Rust, C, and C++ that recompiles changed code and patches running applications; it represents difficult systems work that preceded agent adoption.
  • Slop cannon: Kelley’s term for indiscriminate agent use that generates a large amount of superficially useful code that fails maintainability or merge-quality standards.
  • Substrate: The underlying architecture and codebase quality on which agent-generated changes land; a poor substrate yields poor contributions at higher speed.
  • Fuzzing harness: Test infrastructure that feeds software large numbers of malformed or adversarial inputs; the speaker identifies harness construction as an AI-friendly testing application.
  • Prompt engineering: The practical discipline of expressing implementation intent precisely enough that a coding agent produces an appropriate solution; Kelley treats it as materially consequential, not cosmetic.
  • React Native turbo modules: A comparison point for the difficulty of native language/platform integration; Kelley uses them to emphasize the speed at which agents helped Dioxus ship Kotlin and Swift plugins.

Operator Notes / Why Ken Should Care

  • Establish a merge-quality metric for agentic work: track accepted changes, regressions, maintenance cost, and time-to-validation rather than output volume.
  • Require a short architecture brief before agents implement nontrivial features: desired end state, interfaces, invariants, future extension paths, non-goals, and acceptance tests.
  • Create agent-run release operations for checklists, changelog and documentation drift, backports, artifact inspection, and compatibility smoke tests; retain an accountable human release owner.
  • Use agents to build fuzzers and test harnesses, but require humans to define failure modes, end-to-end scenarios, and the assertions that determine meaningful coverage.
  • Maintain mandatory human review for public API changes, system boundaries, credentials/security-sensitive code, and refactors; use AI review as an additional pre-review filter rather than an approval substitute.
  • Audit whether core repositories provide the constraints agents need—clear module boundaries, strong typing, runnable tests, documented conventions, and reproducible local environments—before scaling agent usage.

Source/Metadata

  • Title: Building ambitious software — Jonathan Kelley, Dioxus Labs & Cognition
  • Transcript words: 3080
  • Duration seconds: 1154
  • Timestamp note: No timestamps or chapters were present in the supplied transcript.

Transcript

3059 words en Processed in 99.6s

Hello. My name is Jonathan Kelly. Today we're going to talk about what it means to build ambitious software in the age of AI. Five years ago, I made the first commit ever to a project called Dioxys. I used the last summer I had as an undergraduate, and instead of getting an internship at Google or doing research in AI, like many of my friends at the time, I spent it exploring an idea I had for a cross-platform app framework, written in the Rust programming language. In 2021, Rust was still pretty niche, but the ecosystem was growing, the tooling was improving, and the pitch of native performance, a solid type system, and simple cross-compilation really sold me. The idea for Dioxys was straightforward. What if we had an actually good cross-platform app framework? Instead of wading through dozens of tool chains, programming languages, and IDEs, what if we simply wrote all of our apps in Rust using HTML and CSS as the markup language? This was back in the day, 2021, where React Native was janky, Flutter was too slow, and neither performed well with native APIs. On the flip, with Rust, we could build native apps directly with no VM, no IPC, no JavaScript, and if we used a little bit of HTML and CSS for the UI, and take some inspiration from React for the reactivity, we could reuse vast amounts of web components and web tooling. The goal was an extremely powerful app framework, but was still quite familiar to the average developer. Sounds easy, right? Well, as they say, we choose to build an app framework from scratch, not because it's easy, but because we thought it would be easy. In reality, trying to challenge React Native and Flutter is extremely ambitious. In 2021, there were very few off-the-shelf components you could use to build Dioxys. Everything from reactivity to font rendering to hot reloading and application bundling had to be built from scratch. There's nothing we could use. For us, tasks like building a web browser were just necessary steps along the way. Now, today, in 2026, Dioxys has achieved and far surpassed its original mission. We support all the features we originally set out to build, from cross-platform support to native rendering to Rust hot reload and bundle splitting. We've basically reinvented and improved the entire app development stack. Users can ship a powerful full-stack web application in the exact same code base, sharing components as their iOS and Android apps. The Dioxys project now has nearly 37,000 stars on GitHub with millions of downloads. Apps built in Dioxys are rolled out across the globe, with a cumulative estimate of over 200 million end users. Users have built things like AI assistants, software for voting, data science tools, and even collision avoidance systems for satellites in space. We've put a ton of effort into making Dioxys as user-friendly as possible. Fewer files, unified build tooling, hot reloading, asset optimization, everything you need to easily ship across all platforms. Because Dioxys apps are written in Rust, they are structurally very simple. You rarely need to drop into platform-specific code. Because all Rust projects are alike, it's very easy for developers to dive into a new project. You can completely skip annoying build system setup. All you need is a main.rs to get started. One of the most ambitious goals we had for Dioxys was to ship our own lightweight, but fully-featured HTML and CSS rendering engine, called Blitz. We extracted the browser-grade CSS engine out of Firefox, built our own HTML DOM, and developed a hybrid GPU rendering pipeline. Compared to Electron apps, which are RAM and storage hogs, Blitz apps are lightweight, coming in at less than 5 megabytes bundle sizes, and consume less than 50 megabytes of RAM at runtime. And they're pretty cool. You can write your own custom components, spinning cubes, you can customize the browser however you want. It's a very cool project. We also worked on a tool called SubSecond, which is our generic hot reload engine for Rust, C, and C++. SubSecond watches your code for edits, recompiles parts of the code that changed, and patches the running app in place all in 100 milliseconds. This was an incredibly difficult technical challenge, and is the only hot reload engine for native compiled code to have such wide language and runtime support. It works on every major operating system, and even the web, where Rust is compiled into WebAssembly. No one has done this before. I'm talking about these because these projects we've worked on along the way over the past five years are incredibly ambitious, and are the result of a tiny but capable team of engineers. We've labored over quality, read every line of code with our own two eyes, and maintained a frequent but ambitious release cadence. The most amazing thing, every line of code in Dioxys, until very recently, has been painstakingly written by hand. Why do I say recently? Well, if you aren't aware, software engineering and development has taken a massive turn in the past six months. AI coding agents got really good, and specifically, they got really good at Rust. Our team, a bunch of Rust engineers, has been quite skeptical of AI for a long time. We had not felt the AGI, so to speak, and we definitely weren't using AI in our day-to-day work. We thought the two things were incompatible, shipping high-quality code and using agent coding tools. Seeing them get really good at Rust was a huge surprise to us, so we were finally excited. With this newfound excitement, we started building. Our team maxed out our cloud code subscriptions, turned out tens of thousands of lines of Rust, and built all sorts of features we had long wished to have. Unfortunately, very little of the code cleared our quality bar of should we merge this in. Thousands of lines of new features, bug fixes, and integrations we had wanted for years, sat there in draft, and continued to sit there in draft. We definitely did not know how to properly wield these tools, and it was way too easy to become what we call a slop cannon. So we reflected a bit and studied what worked and what didn't. One thing we realized over all these years, we had put a ton of effort into making Dioxys extremely developer-friendly. Easy to read, easy to write, good tools, good error messages. The coding agents generally don't care about this. We tried to make Rust easy for humans, and in fact, it didn't really matter. Coding agents excel with Dioxys, still, fortunately, because Rust is harder to write. The coding agents deal with the development burden for you, they handle the edge cases, and they fight the type checker, saving you from the cognitive burden of writing Rust apps. The learning curve, which we fought to reduce, is now a feature. So, throughout the process of adopting the coding tools to work on Dioxys, we learned a wide array of lessons. Many of the things the coding agents do really well today, and many things, they just aren't there yet. So in the next couple slides, I want to talk about some of the things we learned, and what it means to build ambitious software projects in the age of AI coding. It's important to talk about first what it means to build an ambitious software project. There's many different types of software out there. It depends on what you ship every day. You might be doing research, and the quality of your code isn't the most important thing. You might be doing prototyping code, and iterating fast and moving quickly is important. You might be building applications, which people don't see the code internally. They just see what it looks like on the outside. But for us, and for Dioxys, we care about a few different things. Primarily, of course, we care that our code works all the time, and that if it breaks, we can easily fix it. I think this is something people don't think about enough these days, that you need to continue to build easily maintainable code, and the velocity that you ship lays down on the substrate that you've built, and if the substrate isn't good, nothing you build on top is going to be good. Secondarily, we care about shipping new features. Our roadmap is really long. It extends into the far future. There's dozens of features we still have yet to build for Dioxys, and we want to ship these quickly to keep up with the times. But we also want to maintain quality. When building a large, ambitious project like Dioxys, there's a constant tension of shipping fast, adding new features, and then also making sure you don't break things, and that in a patch release you're not breaking APIs that millions of people rely on. For a project that people build their businesses on, there's also a high bar for releases. We need to maintain high quality of our documentation, of our examples, of our tests, of our benchmarks. If anything is out of place, people figure it out pretty quickly. So, we really do like coding agents as a form of an excellent assistant for very hard technical problems. Coding agents bring a level of patience and massive knowledge that is very hard to muster as an individual working on a very large software project. Many problems in Dioxys are knowledge problems. Our team can't feasibly know every detail about every build system, every runtime, every operating system, every programming language, every API, every quirk. Fortunately, this is exactly where the coding agents excel. They can quickly sift through thousands of pages of documentation, read all the bespoke APIs, dig into binaries, reverse engineer APIs. They have so much more patience than an individual developer does. We were able to implement things like Kotlin and Swift plugins for Dioxys, deeply integrated into our build system, which is a really hard feature. If you know React Native's turbo modules, these things took many years of development to get right by people writing them by hand. We were able to ship this in like two to three weeks with coding agents. And we probably could have gone faster. I think the implementation was done in like the first day. And we spent two weeks building test cases and testing on real devices. And in Blitz, the thing on the right, our custom web engine, agents have accelerated debugging hard CSS styling and layout issues for us. The agents know the CSS spec exceptionally well. You might be writing a line of code that's trying to resolve some sort of painting or layout issue, and the agents can instantly recall exactly how Google Chrome and Safari do it, can tell you the right way of handling it for your problem, and you don't have to go open the WebKit source code that's nested deep somewhere in Apple's Git repositories. We're able to invest time in doing things the right way, not the hacky way, which interestingly is a turn compared to how we used to do it. We would always gauge a project based on its complexity and tend to take shortcuts as humans to ship things faster, but not at a high-quality bar. So coding agents give us the ability to maintain quality and do things the right way, which is very interesting. A less sexy application of coding agents for ambitious projects is actually doing the extremely mundane tasks. Our team is very small. We have three core engineers working on Dioxys. Any time that we spend, verifying the tarball extracts into the right directory structure is time wasted from us thinking about the architecture and the hard problems of our software. Dioxys is a large project, and it's been a challenge to maintain a high-quality bar across the entire code base, across every release. In one release, we might add an extension for a new editor, like Zed. We might not be able to test that editor every time we do a patch release, and it might be easy to break that. Applying agents to the problem actually lets us automate many of these hard, tedious tasks that would have taken countless hours before. And then, for us, the code is the product. People download the code, they build on the code, users interact with our APIs, they read our docs, and they build on our architecture. So any laziness in the quality of the code, the SDKs that we ship to users, translates directly into a worse developer experience, and people either getting upset, their businesses being stalled, or them turning off the product. So coding agents have been excellent at maintaining tasks, like verifying release checklists, backporting bug fixes onto stable releases, and ensuring our docs and doc comments are of extremely high quality. We still do write a lot of doc comments ourselves, but it's very easy to give the agents a task of making sure everything is documented properly, everything has an example, and everything actually is documenting the thing that it says in the way that it says. As humans, you'll go edit the code, but you won't edit the comments. So a lot of your comments will actually be out of date over time, and things get very confusing. And if you just look at the numbers, we've shipped more patch releases in our most recent Dioxys version than we ever had before. So we've been able to maintain weekly or multiple times a week release cadence for a large, ambitious piece of software in a way that we would be scared to do a release earlier. One thing I'm not 100% convinced yet, we have found varying levels of success, is using AI to write tests, or at least blindly writing tests. One place we've struggled with Dioxys is testing. It can be very hard to test foundational software, especially end-to-end for complex systems. It's hard to test that your extension installs into Zed and works the way you want it to do without literally opening Zed and using the extension. The coding agents struggle here, too, to an extent. They have a tendency to write sloppy tests. You'll give it a constructor, and then it will go test the constructor, and that's not a very interesting test. They can easily write tests for any given API, but much like humans, they fail to write the right tests. So we still find ourselves enumerating test conditions manually, crafting test APIs ourselves, and handling test runners. But it is sometimes a great sounding board to come up with the test ideas for a particular thing you're trying to make sure has coverage, and then enumerating the edge conditions. But one place that we've actually really enjoyed using coding agents to do testing is building test harnesses. So fuzzing is a critical part of building production-grade software, which means taking your application and putting it under millions of different inputs and quite often adversarial inputs, basically malformed inputs or ways of using the software that users should not be using the software, but they can use the software. And coding agents are excellent at building these harnesses. One thing we've found that code architecture is still an art. Coding agents enable you to ship at an exceptionally high velocity. I mentioned this earlier. If the substrate on which your agent's code lands is bad, their contributions will be bad as well. Unlike a human engineer, coding agents aren't typically afraid to voluntarily go on a huge refactor of a system or redesign the architecture when a feature doesn't quite fit. They'll typically just ship. Most of our development time is actually now spent thinking about software architecture, about what features we'll want in the future and how the system will evolve. Just like human engineers can write spaghetti code, so can the agents, but now just faster. However, I will say with Fable-level tools, the actual code quality itself is so high, provided you properly communicate your intent, that proper software architecture will probably take the vast majority of time in the future. Actual code writing, not so much. One thing we do for Dioxys, which maybe you still do, maybe you don't, is we review every PR line by line. We definitely use AI review to spot bugs ahead of time, but we still do read the code that we ship. We receive lots and lots of PRs from strangers, actually. Dioxys is a big open source project. And not every PR is made the same. We find that users can be quite bad at communicating their intent to the models. Contributors don't usually think deeply about how the code base should evolve over time, they just want their bug fix or their feature in. And many solutions are glued in place. So we're not quite at the point where the coding agents can read our minds, and thus we're still limited by the medium of text. And as ridiculous as it sounds, prompt engineering is quite real. The quality of an implementation can be very much dependent on the prompt that you give the model. But in a sense, nothing really has changed. Reading code has always been more important than writing code. Maybe not in the beginning, but eventually as the project evolves, it does. So, my closing thoughts on using coding agents to build ambitious software is that code is now cheap, but quality is not. The job of a software engineer has never really been about putting lines of code on the screen. It's been about architecting elegant solutions to complex problems, about thinking ten steps ahead about how a system will evolve, about retaining flexibility in the face of changing requirements. These facts have not changed, and the bar for software engineering is higher than ever. If you would like to work on the tools of the next generation of software, Cognition, the people who have acquired Dioxys, are hiring. Again, the Dioxys team joined Cognition to be part of the future, and hopefully you will too. Thank you. Thank you.